ROC (receiver operator 특성)에 따라 영역의 p- 값을 계산하는 방법을 찾기 위해 고심하고 있습니다. 연속 변수와 진단 테스트 결과가 있습니다. AUROC가 통계적으로 유의한지 확인하고 싶습니다.
pROC, ROCR, caTools, 검증, Epi와 같은 ROC 곡선을 다루는 많은 패키지를 발견했습니다. 그러나 문서와 테스트를 읽는 데 몇 시간을 보낸 후에도 방법을 찾을 수 없었습니다. 방금 놓친 것 같아요.
ROC (receiver operator 특성)에 따라 영역의 p- 값을 계산하는 방법을 찾기 위해 고심하고 있습니다. 연속 변수와 진단 테스트 결과가 있습니다. AUROC가 통계적으로 유의한지 확인하고 싶습니다.
pROC, ROCR, caTools, 검증, Epi와 같은 ROC 곡선을 다루는 많은 패키지를 발견했습니다. 그러나 문서와 테스트를 읽는 데 몇 시간을 보낸 후에도 방법을 찾을 수 없었습니다. 방금 놓친 것 같아요.
답변:
상황에 따라 ROC 곡선을 작성하고 해당 곡선 아래 면적을 계산하는 것이 좋을 것입니다. 그러나 이것은 1 차 분석 자체가 아니라 기본 분석 을 보완 하는 것으로 생각해야 합니다. 대신 로지스틱 회귀 모형 을 적합 시키려고 합니다.
로지스틱 회귀 모형은 모형의 검정을 전체적으로 표준으로 제공합니다. 실제로는 하나의 변수 만 있으므로 해당 p- 값은 테스트 결과 변수의 p- 값과 같습니다. 모형을 사용하면 병에 걸린 관측치의 예측 확률을 계산할 수 있습니다. 수신기 작동 특성이 어떻게 '를 알려줍니다 민감도와 특이도는 사용자가 예상 분류에 예측 가능성을 변환하는 다른 임계 값을 사용하는 경우, 트레이드 오프 (trade off)한다. 예측 확률은 테스트 결과 변수의 함수이므로 다른 테스트 결과 값을 임계 값으로 사용하는 경우 해당 변수가 어떻게 균형을 이루는 지 알려줍니다.
로지스틱 회귀 분석에 익숙하지 않은 경우 인터넷에서 사용할 수있는 리소스가 있습니다 (위의 Wikipedia 페이지 외에).
R
대해 UCLA 통계 도움말 웹 사이트는 일반적으로 우수하며 여기에 관련 페이지가 있습니다 .summary(GLM.1)
필요한 것을 제공해야 anova(GLM.1)
합니다. 실제로 적합하지 않아도 null 모델에 대해 테스트 할 것이라고 생각 합니다. 그러나 당신의 방법은 확실히 작동합니다.
기본적으로 H0 = "AUC는 0.5"입니다.
이것은 실제로 H0 = "두 그룹의 순위 분포가 동일합니다"라고 말하는 것과 같습니다.
후자는 Man-Whitney (Wilcoxon) 검정의 귀무 가설입니다 (예 : Gold, 1999 참조 ).
즉, Mann-Whitney-Wilcoxon 테스트를 안전하게 사용하여 질문에 대답 할 수 있습니다 (예 : Mason & Graham, 2002 참조 ). 이것은 Franck Dernoncourt가 언급 한 검증 패키지와 정확히 일치합니다.
패키지 확인 에서 roc.area () 를 사용할 수 있습니다 .
install.packages("verification")
library("verification")
# Data used from Mason and Graham (2002).
a<- c(1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
1991, 1992, 1993, 1994, 1995)
d<- c(.928,.576, .008, .944, .832, .816, .136, .584, .032, .016, .28, .024, 0, .984, .952)
A<- data.frame(a,d)
names(A)<- c("year", "p2")
# For model without ties
roc.area(A$event, A$p2)
돌아올 것이다 $p.value
[1] 0.0069930071
를 사용하여 pROC에서 두 개의 ROC 곡선을 비교할 수 있습니다 roc.test()
. 이것은 또한 p- 값을 생성합니다. 또한, 사용하는 것이 roc(..., auc=TRUE, ci=TRUE)
유용 할 수 있습니다 ROC 객체를 생성하는 동안 출력에 당신에게 AUC와 함께 낮은 및 높은 신뢰 구간을 줄 것이다.
다음은 갤런 당 마일 또는 자동차 무게가 자동 또는 수동으로 장착 된 변속기의 더 나은 예측 변수인지 테스트하는 작동 예제 코드입니다.
library(pROC)
roc_object_1 <- roc(mtcars$am, mtcars$mpg, auc=T, ci=T) #gives AUC and CI
roc_object_2 <- roc(mtcars$am, mtcars$wt, auc=T, ci=T) #gives AUC and CI
roc.test(roc_object_1, roc_object_2) #gives p-value
무게는 연료 소비보다 훨씬 더 나은 예측 변수입니다. 그러나 이것은 0.5와 같은 숫자에 대한 단일 곡선이 아닌 두 곡선을 비교하는 것입니다. 신뢰 구간에 0.5가 포함되어 있는지 여부를 확인하면 크게 다른지 여부를 알 수 있지만 p- 값을 생성하지는 않습니다.