Delong检验
一、Delong检验的作用
用于比较两个ROC曲线的性能,Delong检验是用于AUC面积的显著性检验的。如果两个模型的AUC大小有异但是没有通过Delong检验,那么也不能说明这两个模型有显著的不同。
总之,Delong检验就是一种统计学上用于检验AUC显著性的检验方法。
二、Delong检验的原理
Delong检验本质上是构造一个变量,这个变量涉及了用于比较的两个AUC值,并且是服从或近似服从正态分布的。然后利用正态分布对其做一个假设检验。
1.符号参数的解释
符号 | 含义 |
---|---|
m | 实际正类数量 |
n | 实际负类数量 |
x i A x_{i}^{A} xiA | 模型A中,正类样本 x i x_i xi被识别为正类的概率(分数) |
y j B y_{j}^{B} yjB | 模型B中,负类样本 y j y_j yj被识别为正类的概率(分数) |
θ ^ \hat{\theta} θ^ | 估计AUC |
2. AUC的计算
θ
^
=
1
n
m
∑
i
=
1
m
∑
j
=
1
n
φ
(
x
i
,
y
j
)
\begin{align} \hat{\theta} = \frac{1}{nm}\sum_{i=1}^{m} \sum_{j=1}^{n} \varphi (x_i,y_j ) \end{align}
θ^=nm1i=1∑mj=1∑nφ(xi,yj)
φ
(
x
,
y
)
=
{
1
,
x
>
y
1
2
,
x
=
y
0
,
x
<
y
\begin{align} \varphi (x,y ) = \begin{cases} 1 & \text{, } x > y \\\\ \frac{1}{2} & \text{, } x = y \\\\ 0 & \text{, } x < y \end{cases} \end{align}
φ(x,y)=⎩
⎨
⎧1210, x>y, x=y, x<y
这个公式的简单理解见下图
当 X < Y 时,说明模型负类被预测为正类的概率大于正类被预测为正类的概率,因此我们惩罚模型不良预测使AUC + 0
当 X > Y 时,说明模型负类被预测为正类的概率小于正类被预测为正类的概率,模型进行了良好的预测,因此对模型进行奖励使得AUC + 1/mn
当 X = Y 时,说明以上两种可能性各占50%,因此给予AUC一半的分数,即AUC + 1/2mn
以上的解释只是一个简单的理解,这个估计AUC的期望的值等于ROC曲线中的面积计算得到的值,具体的数学推导我还没有找到。
[这里缺少一个数学证明]
3. 构造统计量进行检验
然后利用 θ ^ \hat{\theta} θ^构造一个服从正态分布的统计量。这里用 θ ^ ( A ) \hat{\theta}(A) θ^(A) 表示模型A的经验AUC,用 θ ^ ( B ) \hat{\theta}(B) θ^(B) 表示模型B的经验AUC。
有统计量z:
z
=
θ
^
(
A
)
−
θ
^
(
B
)
V
a
r
(
θ
^
(
A
)
−
θ
^
(
B
)
)
=
θ
^
(
A
)
−
θ
^
(
B
)
V
a
r
(
θ
^
(
A
)
)
+
V
a
r
(
θ
^
(
B
)
)
−
2
C
o
x
(
θ
^
(
A
)
,
θ
^
(
B
)
)
\begin{align} z = \frac{\hat{\theta}(A) - \hat{\theta}(B)}{\sqrt{Var(\hat{\theta}(A) - \hat{\theta}(B))}} = \frac{\hat{\theta}(A) - \hat{\theta}(B)}{\sqrt{Var(\hat{\theta}(A))+Var(\hat{\theta}(B))-2Cox(\hat{\theta}(A),\hat{\theta}(B))}} \end{align}
z=Var(θ^(A)−θ^(B))θ^(A)−θ^(B)=Var(θ^(A))+Var(θ^(B))−2Cox(θ^(A),θ^(B))θ^(A)−θ^(B)
这个z统计量是近似服从标准正态分布的。
[这里缺少一个数学证明]
检验的假设为
H
0
:
θ
(
A
)
=
θ
(
B
)
,
H
1
:
t
h
e
t
a
(
A
)
≠
θ
(
B
)
H_0:\theta(A) =\theta(B),\ H_1:\\theta(A)\ne \theta(B)
H0:θ(A)=θ(B), H1:theta(A)=θ(B)。
当
∣
z
∣
>
1.96
\left | z \right | > 1.96
∣z∣>1.96 时,在显著性p<0.05的双边检验中,拒绝零假设,A,B两模型的AUC具有显著性差别。
4. 方差与协方差的计算
(1)方差计算
delong检验中的方差是通过分别计算正类和负类的方差,然后通过加权来得出最后的方差。
首先是定义了结构组件,
v
01
v_{01}
v01 和
v
10
v_{10}
v10,公式如下:
v
10
A
(
x
i
)
=
1
n
∑
j
=
1
n
φ
(
x
i
,
y
j
)
,
i
=
1
,
2
,
.
.
.
,
m
v_{10}^{A}(x_i) = \frac{1}{n}\sum_{j=1}^{n}\varphi (x_i, y_j) \ ,i=1,2,...,m
v10A(xi)=n1j=1∑nφ(xi,yj) ,i=1,2,...,m
v
01
A
(
y
j
)
=
1
m
∑
i
=
1
m
φ
(
x
i
,
y
j
)
,
j
=
1
,
2
,
.
.
.
,
m
v_{01}^{A}(y_j) = \frac{1}{m}\sum_{i=1}^{m}\varphi (x_i, y_j) \ ,j=1,2,...,m
v01A(yj)=m1i=1∑mφ(xi,yj) ,j=1,2,...,m
如图所示,图中的 v 10 A ( x 1 ) v_{10}^{A}(x_1) v10A(x1) 的值为 1 4 \frac{1}{4} 41 , v 01 A ( y 1 ) v_{01}^{A}(y_1) v01A(y1) 的值为 2 3 \frac{2}{3} 32 。
有了结构组件后,利用结构组件计算方差分量
S
10
(
A
,
A
)
S_{10}^{(A,A)}
S10(A,A) 的含义为A模型 10
部分的方差分量,
S
01
A
,
A
S_{01}^{A,A}
S01A,A 的含义为A模型 01
部分的方差分量,计算的公式为
S
10
(
A
,
A
)
=
1
m
−
1
∑
i
=
1
m
[
v
10
A
(
x
i
)
−
θ
^
(
A
)
]
2
S_{10}^{(A,A)} = \frac{1}{m-1}\sum_{i=1}^{m}[v_{10}^{A}(x_i)-\hat{\theta}(A)]^2
S10(A,A)=m−11i=1∑m[v10A(xi)−θ^(A)]2
S
01
(
A
,
A
)
=
1
n
−
1
∑
j
=
1
n
[
v
01
A
(
y
j
)
−
θ
^
(
A
)
]
2
S_{01}^{(A,A)} = \frac{1}{n-1}\sum_{j=1}^{n}[v_{01}^{A}(y_j)-\hat{\theta}(A)]^2
S01(A,A)=n−11j=1∑n[v01A(yj)−θ^(A)]2
然后进行加权相加,A模型的方差 S ( A , A ) S^{(A,A)} S(A,A) 为
S ( A , A ) = 1 m S 10 ( A , A ) + 1 n S 01 ( A , A ) S^{(A,A)} = \frac{1}{m}S_{10}^{(A,A)} + \frac{1}{n}S_{01}^{(A,A)} S(A,A)=m1S10(A,A)+n1S01(A,A)
B模型的计算相同
(2)协方差的计算
协方差的计算与方差类似,也是先计算分量,然后进行加权
S 10 ( A , B ) = 1 m − 1 ∑ i = 1 m [ v 10 A ( x i ) − θ ^ ( A ) ] [ v 10 B ( x i ) − θ ^ ( B ) ] S_{10}^{(A,B)} = \frac{1}{m-1}\sum_{i=1}^{m}[v_{10}^{A}(x_i)-\hat{\theta}(A)][v_{10}^{B}(x_i)-\hat{\theta}(B)] S10(A,B)=m−11i=1∑m[v10A(xi)−θ^(A)][v10B(xi)−θ^(B)]
S 01 ( A , B ) = 1 n − 1 ∑ j = 1 n [ v 01 A ( y j ) − θ ^ ( A ) ] [ v 01 B ( y j ) − θ ^ ( B ) ] S_{01}^{(A,B)} = \frac{1}{n-1}\sum_{j=1}^{n}[v_{01}^{A}(y_j)-\hat{\theta}(A)][v_{01}^{B}(y_j)-\hat{\theta}(B)] S01(A,B)=n−11j=1∑n[v01A(yj)−θ^(A)][v01B(yj)−θ^(B)]
S ( A , B ) = 1 m S 10 ( A , B ) + 1 n S 01 ( A , B ) S^{(A,B)} = \frac{1}{m}S_{10}^{(A,B)} + \frac{1}{n}S_{01}^{(A,B)} S(A,B)=m1S10(A,B)+n1S01(A,B)
参考链接
[1] 简述
[2] 算法
[3] Delong检验原理
[4] Delong检验具体例子
[5] Comparing Two ROC Curves-Paired Design
[6] 博客原文