Я изо всех сил пытаюсь найти способ вычислить значение p для области под характеристикой оператора приемника (ROC). У меня есть непрерывная переменная и результат диагностического теста. Я хочу посмотреть, является ли AUROC статистически значимым.
Я нашел много пакетов, имеющих дело с кривыми ROC: pROC, ROCR, caTools, верификация, Epi. Но даже после многих часов, потраченных на чтение документации и тестирование, я не мог найти, как. Я думаю, что я просто пропустил это.
Ответы:
В вашей ситуации было бы хорошо построить кривую ROC и рассчитать площадь под этой кривой, но это следует рассматривать как дополнение к вашему основному анализу, а не самому первичному анализу. Вместо этого вы хотите использовать модель логистической регрессии .
Модель логистической регрессии будет стандартна с тестом модели в целом. (На самом деле, поскольку у вас есть только одна переменная, это p-значение будет таким же, как и p-значение для вашей переменной результата теста.) Это p-значение - это то, что вам нужно. Модель позволит вам рассчитать прогнозируемую вероятность того, что наблюдение будет болезненным. Receiver Operating характеристика говорит вам , как чувствительность и специфичность будут балансировать, если вы используете различные пороговые значения для преобразования прогнозируемой вероятности в предсказанной классификацию. Так как прогнозируемая вероятность будет функцией вашей переменной результата теста, она также сообщит вам, как они компенсируются, если вы используете разные значения результата теста в качестве порога.
Если вы не очень хорошо знакомы с логистической регрессией, в Интернете доступны некоторые ресурсы (помимо страницы Википедии, ссылки на которую приведены выше):
R
, веб-сайт справки по статистике UCLA в целом превосходен и имеет соответствующую страницу здесь .источник
summary(GLM.1)
должен дать вам то, что вам нужно, и я думаю,anova(GLM.1)
что проверю это на нулевой модели без вашей необходимости. Но ваш путь обязательно сработает, да.В основном вы хотите проверить H0 = "AUC равен 0,5".
Это фактически эквивалентно высказыванию H0 = «Распределение рангов в двух группах одинаково».
Последнее является нулевой гипотезой критерия Манна-Уитни (Уилкоксона) (см., Например, Gold, 1999 ).
Другими словами, вы можете безопасно использовать тест Манна-Уитни-Уилкоксона, чтобы ответить на ваш вопрос (см., Например, Mason & Graham, 2002 ). Это именно то, что делает пакет проверки, упомянутый Franck Dernoncourt.
источник
Вы можете использовать roc.area () из проверки пакета :
Он вернется
$p.value [1] 0.0069930071
источник
Две кривые ROC можно сравнить с помощью pROC
roc.test()
. Это также производит р-значение. Кроме того, использованиеroc(..., auc=TRUE, ci=TRUE)
даст вам более низкие и более высокие доверительные интервалы вместе с AUC в выходных данных при создании объекта ROC, что может быть полезно.Ниже приведен пример рабочего кода, который проверяет, являются ли мили на галлон или вес автомобиля лучшим индикатором типа трансмиссии, которой он оснащен (автоматический или ручной):
Кажется, вес значительно лучше предсказывает, чем расход топлива. Однако здесь сравниваются две кривые, а не одна кривая с таким числом, как 0,5. Глядя на доверительный интервал, чтобы увидеть, содержит ли оно число 0,5, мы узнаем, существенно ли оно отличается, но не дает p-значения.
источник