Первое, что вам нужно сделать, это очистить ваши данные. Кривая ROC начинается в (0, 0) и заканчивается в (1, 1). Если эти точки отсутствуют в вашей кривой, AUC будет недооценен. Вот попытка исправить:
AUC_data_1 <- tibble("one.minus.specificity" = c(0,
0.05421559172249585, 0.12174003874893036,0.20579144833428253,
0.3012443157265138, 0.502266554865223, 0.6205366469297053,
0.8417661384716209, 1),
sensitivity = c(0, 0.16879823941344285,
0.45899739288954267, 0.5804040305755962, 0.7849062327396981,
0.8634686874873007, 0.9710785309748188, 0.9977448923815709, 1))
Убедитесь, что вы понимаете качество и надежность данных, которые вы получаете от этой услуги.
Тогда, как вы уже догадались, это всего лишь интеграционная игра. Мне нравится функция trapz от Pracma, которая использует правило трапеции:
library(pracma)
trapz(AUC_data_1$one.minus.specificity, AUC_data_1$sensitivity)
[1] 0.6268943
Что касается неопределенностей, вы должны взглянуть на работу Обуховского (1), которая выражает дисперсию кривой ROC как функцию AUC, размера выборки и параметров бинормального соответствия, которое вы можете получить с помощью чувствительности и только специфичность:
model <- lm(1-one.minus.specificity~sensitivity, AUC_data_1)
Вы найдете код непосредственно в источнике pROC . Хотя он является частным, и вы должны использовать его на свой страх и риск (функции не экспортируются и могут исчезнуть в любое время). Примерно так:
A <- coefficients(model)[1]
B <- coefficients(model)[2]
kappa <- n.controls / n.cases # number of case and control observations
# use internal function at your own risk
pROC:::var.params.obuchowski(A, B, kappa) / n.cases
[1] 0.1125403
Они также предлагают подход, который не требует бинормальных коэффициентов:
A <- qnorm(theta) * 1.414
(0.0099 * exp(-A^2/2)) * ((5 * A^2 + 8) + (A^2 + 8)/kappa) / n.cases
[1] 0.7846169
Где тета - это AUC кривой, которую вы вычислили выше.
- Нэнси А. Обуховски, Донна К. МакКлиш (1997). «Определение размера выборки для диагностически точных исследований с использованием бинормальных индексов ROC-кривых». Статистика в медицине, 16 (13), 1529--1542. DOI: (SICI) 1097-0258 (19970715) 16:13 <1529 :: AID-SIM565> 3,0.CO; 2-H .
- Нэнси А. Обуховски, Михарл Л. Либер и Фрэнк Х. Уайанс младший (2004) «Кривые ROC в клинической химии: использование, неправильное использование и возможные решения». Clinical Chemistry, 50, 1118–1125. DOI: 10.1373 / clinchem.2004.031823 .