Chapter 4 곡선아래면적(AUC) 구하기

4.1 간단한 예제에서 AUC 구하기

곡선아래면적(area uner curve)은 그야말로 곡선아래 면적이다. 전체 사각형의 가로축이 0-1 까지이고 세로축도 0-1까지이므로 사각형의 전체면적은 1이다. 이중 곡선아래 면적의 계산에는 약간의 산수가 필요하다. 쉽게 이해하기 위해 다음과 같은 데이터를 생각해보자.

이 데이터에서 x를 예측변수로, y를 종속변수로 하여 ROC 곡선을 그리려면 다음과 같이 할수 있다.

ROC 곡선 아래의 면적을 계산하기 위해 x축인 위양성률과 y축인 민감도의 지연차분을 계산해 곱함으로써 먼저 아래 그림의 노란색 사각형부분을 계산한다. 이후 보라색 삼각형부분을 계산한다.

노란색 사각형부분은 sum(TPR * dFPR)로 계산할 수 있고 보라색 사각형부분의 절반은 sum(dTPR * dFPR)/2로 계산하여 더해주면 된다. multipleROC패키지의 simpleAUC()함수는 다음과 같이 전체 면적을 계산한다.

[1] 0.7083333

4.2 첫번째 ROC곡선 그림

첫번째 ROC 곡선 그림을 다시 살펴보자. 오른쪽 아래에 보면 곡선아래면적(area uner curve)와 p값이 표시되어 있다.

AUC값은 다음과 같이 구할 수 있다.

[1] 0.9510468

p값은 Wilcoxon Rank Sum test에서 나온 값으로 다음과 같다.


    Wilcoxon rank sum test with continuity correction

data:  radial$height and radial$male
W = 13110, p-value < 2.2e-16
alternative hypothesis: true location shift is not equal to 0

4.2.1 pROC::roc 객체로 변환

multipleROC함수로 만든 mulitpleROC 클래스의 객체는 multipleROC2roc() 함수를 사용하여 pROC::roc 객체로 변환할 수 있다. 변환된 객체의 AUC 값을 위에서 계산한 값과 비교해보면 같다는 것을 알 수 있다.

[1] "multipleROC"
[1] "roc"
Area under the curve: 0.951