Когда интуиция сбивает нас с толку

Стоит ли читать этот пост?

Если вы можете ответить на следующие вопросы и полностью объяснить причину (а не просто дать обоснованное предположение), то этот пост может иметь для вас мало ценности.

  1. Точность теста составляет 95%, и нам говорят, что тест всегда обнаруживает, что 10% испытуемых являются положительными. Мы проводим тест на случайном предмете. Какова вероятность того, что тест вернет истинный положительный результат?
  2. Специфичность теста составляет 95%, а точность - 90%.
    Мы проводим тест на здоровом испытуемом. Какова вероятность того, что тест даст положительный результат?
  3. Чувствительность (отзывчивость) теста составляет 90%, а его специфичность - 90%. Предположим, мы применяем тест к набору данных, где распространенность составляет 1%. Какова вероятность того, что испытуемый заболел, если тест дал положительный результат?
  4. Компания пытается продать вам свой новый тест, который (предположительно) очень точен при обнаружении какого-либо заболевания. Они утверждают, что он имеет чувствительность (отзыв) 95%, специфичность 95% и точность 95%. Неужели это не какой-то маркетинговый трюк и такой тест существует?
  5. Предположим, что тест имеет чувствительность (отзывчивость) 95% и специфичность 95%. Мы также знаем, что распространенность составляет 10%. Мы запускаем тест на 1000 предметов. Сколько положительных результатов мы найдем при тестировании?
  6. Предположим, что тест имеет чувствительность (отзывчивость) 95% и специфичность 95%. Мы также знаем, что распространенность составляет 10%. Возможно ли, что отрицательная прогностическая ценность теста составляет 50%?
  7. Предположим, что тест был оценен на некотором наборе данных и его точность составила 95%. Теперь мы запускаем этот тест на другом наборе данных, где 50% субъектов страдают этим заболеванием. Будет ли тест давать положительные результаты?

Вступление

Распространенной практикой является оценка производительности теста (или модели), который возвращает двоичные результаты, с помощью показателей производительности, легко получаемых из матрицы неточностей, например, с учетом матрицы неточностей мы можем легко вычислить точность, отзывчивость, оценку f1 и т. Д. .

Каким бы простым ни был расчет, он может стать довольно сложным и довольно быстро, если мы делаем больше, чем просто рассматриваем только одну метрику, или когда нам требуется раскрыть вероятностное значение словесного запроса.
Например, «какова вероятность того, что тест даст положительный результат для субъекта, у которого есть болезнь?» можно перефразировать как «какова оценка для P (положительный результат теста | истинное условие положительное)», что может быть достигнуто с помощью оценки # {True Positives} / # {True Positives + Ложноотрицательные}, т. Е. Нам нужна оценка чувствительности (отзыва) теста.

Этот пост предназначен для того, чтобы предоставить примеры вопросов и возможных решений, которые могут помочь нам углубить наше понимание и интуицию, что позволит нам более легко переключаться между показателями производительности теста и различными последствиями, которые предлагает каждая метрика.

Этот пост никоим образом не охватывает все возможные вопросы, которые могут быть заданы относительно показателей производительности, полученных из матрицы путаницы. Он (надеюсь) охватывает некоторые основы, которые могут помочь нам решать более сложные проблемы и лучше понять, как показатели соотносятся друг с другом и их значение на практике.

Обозначения и многое другое

Мы начнем с того, что рассмотрим обозначения, которые мы будем использовать в этом посте, когда будем рассматривать тест, который обнаруживает наличие болезни.

Обозначьте P (D) как вероятность того, что субъект болен (т. Е. Распространенность заболевания).
P (не D) или P (¬D) - вероятность того, что субъект не имеет болезнь.
P (+) - это вероятность того, что тест даст положительный результат.
P (-) - вероятность того, что тест вернет отрицательный результат.

Следуя приведенному выше, мы имеем:
P (+ | D) - вероятность того, что тест вернет положительный результат при данном что субъект болен.
P (- | не D) - вероятность того, что тест вернет отрицательный результат, учитывая, что субъект не болен.
Аналогичным образом мы имеем P (не D | +), P (D | -) и другие условные вероятности.

Мы будем использовать термины «отзывчивость» и «чувствительность» как синонимы, и то же самое относится к положительной частоте / распространенности и точности / положительной прогностической ценности. Следующая таблица может быть полезна при ответе на вопросы в этом посте:

Мы также можем найти информацию в таблице на этой странице википедии.

Краткий обзор некоторых вероятностных законов

Вспоминая несколько основных вероятностных законов, которые могут быть нам полезны:

Несколько замечаний для полноты

Оценки и оценки

В этом посте я полностью игнорирую тот факт, что показатели, которые мы вычисляем на основе эмпирической матрицы путаницы, которая является результатом проведения некоторого эксперимента, теста, модели и т. Д., На самом деле являются оценочными.

Другими словами, если мы рассмотрим оценку точности в качестве примера, TP / (TP + FP) будет только оценкой истинной (неизвестной) точности теста (или модели). Значение любой метрики, которую мы вычисляем на основе некоторой матрицы путаницы, полученной при запуске модели / теста на наборе данных, является оценкой истинной (неизвестной) метрики теста.

Байесовский или частотный подход

Я также избегаю обсуждения того, является ли метрика, которую мы и пытаемся оценить, какой-то неизвестной константой или на самом деле является случайной величиной. Для данного поста обсуждение не столь актуально, хотя на практике оно очень интересно.

Неправильные правила подсчета очков

При рассмотрении показателей эффективности классификации возникает проблема использования правильных правил оценки по сравнению с неправильными правилами оценки.

Мы не будем здесь вдаваться в подробности, но вы можете прочитать об этом здесь и здесь.

Подробный обзор темы можно найти в Gneiting & Raftery (2007).

Типы вопросов

Есть много типов вопросов, которые мы можем задать о различных показателях производительности. Здесь мы рассмотрим только несколько типов вопросов, и вы можете опираться на них и предлагать множество других вариантов.

Введите

В вопросе представлен только один показатель, и мы основываемся на истинном состоянии испытуемого (больной / здоровый).

Ответом может быть метрика, 1 минус метрика, или на вопрос нельзя ответить, используя имеющуюся информацию.

ФОРМАТ ВОПРОСА:
‹метрика теста - X%.
Мы проводим тест на ‹здоровом / больном› субъекте. Какова вероятность того, что тест даст ‹положительный / отрицательный› результат?

ПРИМЕР:
Специфичность теста составляет 95%.
Мы проводим тест на здоровом испытуемом. Какова вероятность того, что тест даст положительный результат?

В вопросе задается процент ложных срабатываний, P(+|not D) .
Учитывая специфику и применяя правило P(A|B) = 1 — P(not A|B), мы знаем, что P(+|not D) = 1 — P(-|not D) = 1 — specificity, поэтому ответ - 1 — specificity = 1 — 0.95 = 0.05.

Тип B

То же, что и предыдущий тип вопроса, но только с добавлением нерелевантной информации.

ФОРМАТ ВОПРОСА:
‹метрика теста - X%, а его ‹Другой показатель› равен Y%.
Мы проводим тест на ‹здоровом / больном› субъекте. Какова вероятность того, что тест даст ‹положительный / отрицательный› результат?

ПРИМЕР:
Специфичность теста составляет 95%, а точность - 90%.
Мы проводим тест на здоровом испытуемом. Какова вероятность того, что тест даст положительный результат?

Чтобы ответить на этот вопрос, нам не нужна точность; специфичности хватает. Ответ на этот вопрос такой же, как и на предыдущий тип вопроса: 1 - specificity.

Тип C

В вопросе представлен только один показатель наряду с распространенностью или соотношением положительных / отрицательных результатов теста. Обратите внимание, что в этом случае вопрос не будет требовать от нас определения условной вероятности.

ФОРМАТ ВОПРОСА:
‹метрика теста - X%, и нам говорят, что ‹распространенность / доля положительных результатов теста› составляет Y%.
Мы проводим тест на случайном предмете. Какова вероятность того, что тест вернет ‹истина / ложь› - ‹положительный / отрицательный результат›?

ПРИМЕР:
Точность теста составляет 95%, и нам говорят, что тест всегда обнаруживает, что 10% испытуемых являются положительными.
Мы проводим тест на случайном предмете. . Какова вероятность того, что тест вернет истинный положительный результат?

В вопросах просят нас найти P(+ and D).
Мы знаем, что P(A and B) = P(B|A)P(A) и так
P(+ and D) = P(D|+)P(+) = (precision) * (proportion positive results)
Итак, мы получаем 0.95*0.1 = 0.095.

Тип D

Подобно предыдущему типу, но с добавлением избыточной информации, и на этот раз мы можем спросить об условной вероятности.

ФОРМАТ ВОПРОСА
метрика› теста - X%. Мы также знаем, что ‹другой показатель› теста равен Y% и что эти показатели были получены, когда тест оценивался на наборе данных, где распространенность составляла Z%. .
Мы проводим тест на одном предмете, и он дает ‹отрицательный / положительный› результат. Какова вероятность того, что это ‹ложь / правда› - ‹отрицательный / положительный результат›?

ПРИМЕР:
Уровень ложного обнаружения теста составляет 5%. Мы также знаем, что прогностическая ценность отрицательного результата теста составляет 95% и что эти показатели были получены, когда тест оценивался на наборе данных, где распространенность составляла 10%.
Мы проводим тест на одном предмете, и он дает отрицательный результат. Какова вероятность того, что это ложноотрицательный результат?

Вопрос требует P(D|-), и мы знаем, что
P(D|-) = 1 — P(not D|-) = 1 — negative predictive value = 1 — 0.95 = 0.05.

Вся информация, кроме отрицательной прогностической ценности теста, не требуется для ответа на вопрос и представляет собой просто шум.

Тип E

Вопрос включает в себя два показателя и распространенность или долю положительных результатов теста, предоставленных тестом.

ФОРМАТ ВОПРОСА:
метрика› теста - X%, а его ‹другая метрика ›Составляет Y%. Предположим, мы применяем тест к набору данных, где ‹распространенность / доля положительных результатов› составляет Z%. Какова вероятность того, что испытуемый будет ‹здоровым / больным›, если тест дал ‹положительный / отрицательный› результат?

ПРИМЕР:
Чувствительность теста составляет 90%, а его специфичность - 90%. Предположим, мы применяем тест к набору данных, где распространенность составляет 1%. Какова вероятность того, что испытуемый заболел, если тест дал положительный результат?

Вопрос просит нас определить точность теста, P(D|+).
Чтобы найти P(D|+), мы можем применить правило Байеса, и после явного написания терминов мы видим, что нам просто нужно вставить значения чувствительности, специфичности и распространенности, чтобы получить значение точности.

Тип F

То же, что и предыдущий тип вопроса, только более неприятный - вопрос включает информацию, которая кажется актуальной, но на вопрос нельзя ответить.

ПРИМЕР:
Замените специфичность отрицательным прогнозным значением в предыдущем примере типа вопроса. Определите форму точности, когда мы перепишем ее с использованием правила Байеса, и вы увидите, что в итоге мы получим термины, значение которых не указано в вопросе, и поэтому решить эту проблему невозможно.

Еще несколько примеров

  1. Предположим, что специфичность теста составляет 95%. Мы запускаем этот тест на наборе данных, где ни у одного из субъектов нет болезни. Вернет ли тест какие-либо положительные результаты?
    ОТВЕТ: Да, тест пометит 5% набора данных как положительные, даже если все они на самом деле отрицательны для болезни. Это связано с тем, что количество ложных срабатываний также может быть выражено как 1 — specificity, поэтому мы имеем 1 — 0.95 = 0.05.
  2. Предположим, что тест имеет чувствительность 60%. Распространенность в наборе данных составляет 70%, и мы также знаем, что 80% результатов, возвращаемых тестом, являются положительными. Какова точность теста?
    ОТВЕТ:
    Вопрос просит нас найти P(D|+).
    Мы можем решить эту проблему с помощью правила Байеса:
    P(D|+) = P(+|D)P(D) / P(+)
    = sensitivity * prevalence / proportion positive results
    = 0.6 * 0.7 / 0.8 = 0.525
  3. Предположим, что тест был оценен на некотором наборе данных и его точность составила 95%. Теперь мы запускаем этот тест на другом наборе данных, где 50% субъектов страдают этим заболеванием. Приведет ли тест к положительным результатам?
    ОТВЕТ: Мы не можем ответить на основании информации, указанной в вопросе.
    Учитывая имеющуюся у нас информацию, мы знаем, что P(D|+) = 0.95 и это P(D) = 0.5.
    В вопросе задается P(+), или, более конкретно, он спрашивает, P(+) > 0.
    P(+) можно также записать как
    P(+) = P(D)P(+|D) + P(not D)P(+|not D) .
    Поскольку нам неизвестно значение P(+|D) (чувствительность), а также значение P(+|not D) (процент ложных срабатываний), мы не можем ответить на этот вопрос.
    Отметим, что мы знаем значение P(not D) , начиная с 1−P(D) = P(not D).
  4. Предположим, что тест имеет чувствительность 95% и специфичность 95%. Мы также знаем, что распространенность составляет 10%. Мы запускаем тест на 1000 предметов. Сколько положительных результатов мы найдем при тестировании?
    ОТВЕТ: Ранее мы показали, как решить очень похожий вопрос с помощью правила Байеса. Теперь мы покажем альтернативный способ.
    Нам дана распространенность болезни, поэтому мы знаем, что 10% из 1000 субъектов имеют болезнь, и, таким образом, есть 100 фактических положительных результатов.
    Чувствительность теста составляет 95%, поэтому 95 из 100 фактических положительных результатов будут обнаружены тестом, и они будут истинно положительными.
    Специфичность теста составляет 95%, поэтому 855 из 900 фактических отрицательных результатов будут найдены тестом, и они истинно-отрицательные. Оставшиеся 45 фактических негативов будут ошибочно определены тестом как положительные и будут ложноположительными. Это то же самое, что отметить, что наша частота ложных срабатываний составляет 5%, поскольку частота ложных срабатываний равна 1 - специфичность.
    В итоге мы получаем 95 истинно-положительных + 45 ложных срабатываний, всего 140 срабатываний, что составляет количество, которое нас попросили найти.
    Кстати, теперь мы также знаем, что точность теста составляет 95/(95+45)=67.9%
  5. Предположим, что тест имеет чувствительность 95% и специфичность 95%. Мы также знаем, что распространенность составляет 10%. Возможно ли, что отрицательная прогностическая ценность теста составляет 50%?
    ОТВЕТ: Нет.
    После расчетов, очень похожих на предыдущий вопрос, и при условии, что мы провели тест на 1000 испытуемых. для простоты:
    Распространенность составляет 10%, поэтому у нас есть 100 фактических положительных и 900 фактических отрицательных.
    95% чувствительность дает нам 95 истинно-положительных и 5 ложно-отрицательных.
    95% специфичность дает 855 истинно-отрицательных и 45 ложноположительных.
    Прогнозируемое отрицательное значение
    TN/(TN + FN) = 855/(855+5) = 99.4% ≠ 50%.
  6. Компания пытается продать вам свой новый тест, который (предположительно) очень точен при обнаружении какого-либо заболевания. Они утверждают, что он имеет чувствительность 95%, специфичность 95% и точность 95%. Возможно ли, что это не какой-то маркетинговый трюк и такой тест действительно существует?
    ОТВЕТ: Как мы видели, мы можем записать точность как функцию распространенности, чувствительности и специфичности. Давайте посмотрим на это еще раз:

Мы отмечаем, что мы можем изменить вышесказанное так, чтобы распространенность была выражена как функция чувствительности, специфичности и точности. Затем мы вставляем метрики, сообщаемые компанией, следующим образом:

Как оказалось, с учетом показателей, предоставленных компанией, они оценили свой тест на наборе данных, где распространенность составляла 50%, что очень высоко и может быть совершенно не связано с реальной распространенностью, которую мы ожидаем увидеть в популяции, которую мы собираемся. использовать тест на. Другими словами, применение одного и того же теста к группе субъектов, где распространенность составляет 2%, приведет к разным показателям эффективности, и не все из них могут составлять 95%.

Использование байесовского фактора

Другой способ ответить на вопрос 4 - использовать фактор Байеса, и этот метод подробно описан в этом видео: Парадокс медицинского теста и изменение правила Байеса. Я не буду здесь описывать этот метод, поскольку считаю, что видео исключительно хорошо объясняет его, и настоятельно рекомендую его посмотреть.

Действительно ли это полезно в реальной жизни?

Недавнее исследование Kostoulas et al. (2021) , опубликованные в Американском журнале эпидемиологии, сообщили о результатах метаанализа, в котором оценивалась диагностическая точность теста ОТ-ПЦР на COVID-19.

В нашем случае представляют интерес два результата исследования: это оценки чувствительности теста RT-PCR - 0,68 и специфичности теста - 0,99.

Как мы видели ранее, учитывая чувствительность и специфичность, теперь мы можем зафиксировать точность на некотором значении и получить распространенность, или наоборот, установить распространенность на некоторое значение и получить точность.

Допустим, мы зафиксировали распространенность заболевания на уровне 1,5%. Используя значения чувствительности и специфичности, оцененные в исследовании, и это значение распространенности, мы получаем точность 50,9%. В этом случае около 49% положительных результатов теста RT-PCR являются ложноположительными. Примечание. 49% - это частота ложных обнаружений, которую не следует путать с частотой ложных срабатываний (это два разных показателя).

С другой стороны, предположим, что мы установили точность на 95%, при этом по-прежнему используя значения чувствительности 68% и специфичности 99%, найденные в исследовании. В этом случае мы обнаруживаем, что распространенность заболевания составляет около 12%, что является довольно высоким показателем.

Таким образом, мы видим компромисс между точностью и распространенностью, учитывая, что чувствительность и специфичность неизменны. Мы можем построить этот компромисс:

Теперь мы можем задать гораздо больше вопросов о том, как мы используем результаты тестов RT-PCR при принятии различных решений в области общественного здравоохранения.

Еще один действительно хороший пример показателей и их значения можно найти в сообщении Эндрю Гельмана: Обеспокоенность этим Стэнфордским исследованием распространенности коронавируса.

Практика Практика Практика

Вопросы, которые мы рассмотрели в этом посте, имеют много разных оттенков.

Лучшее, что я могу придумать для улучшения нашего владения предметом, - это практиковать эти вопросы и исправлять любые пробелы в нашем понимании.

по следующей ссылке вы можете найти 1000 таких вопросов - вопросы о показателях производительности. Эти вопросы были сгенерированы автоматически, и на некоторые из них невозможно ответить, т. Е. Информации, указанной в вопросе, недостаточно для ответа на него - возможно, нам не хватает метрики или некоторых других данных. Мы можем думать об этом как об уловке, когда мы должны точно понять, чего не хватает и почему на вопрос невозможно ответить.

Несколько решений

Это несколько решений некоторых вопросов, которые можно найти по этой ссылке.

1-й пример:

Уровень ложного обнаружения теста составляет 95%, а его прогностическая ценность отрицательного результата - 85%.
Эти показатели были получены при оценке теста на наборе данных, где доля положительных результатов теста составляла 1%. Проводим тест на больном. Какова вероятность того, что тест даст отрицательный результат?

Сначала запишите информацию, указанную в вопросе, как вероятности:
FDR = P(not D|+) = 0.95; NPV = P(not D|–) = 0.85
proportion of positive test results (prop+) = P(+) = 0.01

Вопрос просит нас найти P(–|D), то есть ложноотрицательный показатель (FNR):

Теперь мы можем вставить значения FDR, NPV и prop + и найти ответ.

2-й пример:

Точность теста составляет 95%, а количество ложных срабатываний - 90%. Проводим тест на больном. Какова вероятность того, что тест даст отрицательный результат?

Как всегда, мы должны сначала выразить информацию в вопросе как вероятности:
precision = P(D|+) = 0.95; FPR = P(+|not D) = 0.9

Вопрос просит нас найти P(–|D), то есть ложноотрицательный показатель (FNR):
P(–|D) = P(D|-)P(-) / P(D)
Мы знаем, что можем записать P(D) как
P(D) = P(+)P(D|+) + P(-)P(D|–) = P(+)P(D|+) + (1 — P(+))P(D|–)
Однако для нахождения значения P(D) нам необходимо знать значение P(+), а также P(D|+) (которое указано в вопросе как точность) и P(D|–), которое является коэффициент ложных пропусков (ЗА), который нам не сообщается.
Поэтому мы не можем ответить на этот вопрос, так как нам не хватает некоторой необходимой информации.

Вопросы для собеседования - предупреждение

Если вы собираетесь задавать такие вопросы на собеседовании, помните, что есть несколько способов ответить на вопрос, и вы должны иметь возможность следить за кандидатом, пока он идет по пути вероятности. расчетов, пока он не встретит вашу ободряющую улыбку, когда он ответит правильно.

Вы должны быть хорошо знакомы с вопросами, которые задаете. Недостаточно довольствоваться знанием того, что «5% - правильный ответ», поскольку весь смысл состоит в том, чтобы понять, как кандидат пришел к этому числу, а не просто заставить его интуитивно угадать свой путь.

Если вы недостаточно знакомы с материалом, кандидат не сможет получить от вас никаких подсказок и рекомендаций в случае, если он споткнется, или, что еще хуже, он поймет, что вы не сможете следовать его ответу, если он станет немного сложный, что никогда не бывает хорошо.

Резюме

Метрики производительности, основанные на подсчетах данных, доступных в матрице неточностей, широко используются для оценки прогнозируемой производительности. Хотя их очень просто вычислить, эти показатели не всегда интуитивно понятны, если мы описываем их устно и пытаемся объяснить, что они означают и как взаимодействуют.

Тот факт, что некоторые метрики включают в себя только простые вычисления, не означает, что они также просты для понимания.

Надеюсь, этот пост побудит вас потратить некоторое время на изучение этих часто используемых метрик и лучше понять, что на самом деле означает, когда метрика X принимает какое-то значение Y.

Надеюсь, вы нашли этот пост полезным, а не скучным :)

Комментарии и отзывы приветствуются!