十三、直接判别法
1.马氏距离
判别分析指的是将某个对象归类,即判别某个对象属于哪一类,在实际生活中,判别分析的适用范围十分宽广,它不仅能够用于给某个对象归类,还能够用于预测未来的某一些情况。在多元统计分析中,可以将判别抽象为如下的模型:已知有 k k k个 m m m维总体 G 1 , ⋯ , G k G_1,\cdots,G_k G1,⋯,Gk以及从每个类中抽取出若干样本,现有一个新的未归类或不知道来源于哪一类的样本 x 0 = ( x 01 , ⋯ , x 0 m ) x_0=(x_{01},\cdots,x_{0m}) x0=(x01,⋯,x0m),需要将其归到某一个总体。有许多方法可以用来完成判别分析,本篇文章介绍直接判别法。
直接判别法也叫距离判别法,其特点是直观,就是用某种度量来刻画样本与已知总体的“距离”,距离哪个总体最近就把样本归于哪一个类。但是要如何度量这种“距离”呢,最简单的是欧氏距离,即对比这个样本点和各个总体均值的欧氏距离,但这种方法忽略了总体的离散程度,因此,我们使用马(Mahalanobis)氏距离来定义样本与总体之间的距离。
马氏距离:设 G G G为 m m m元总体,其均值向量为 μ = ( μ 1 , ⋯ , μ m ) ′ \mu=(\mu_1,\cdots,\mu_m)' μ=(μ1,⋯,μm)′,协方差阵为 Σ = ( σ i j ) m × m \Sigma=(\sigma_{ij})_{m\times m} Σ=(σij)m×m,则样本 X = ( x 1 , ⋯ , x m ) ′ X=(x_1,\cdots ,x_m)' X=(x1,⋯,xm)′与总体 G G G的马氏距离定义为
d 2 ( X , G ) = ( X − μ ) ′ Σ − 1 ( X − μ ) . d^2(X,G)=(X-\mu)'\Sigma^{-1}(X-\mu). d2(X,G)=(X−μ)′Σ−1(X−μ).
当 m = 1 m=1 m=1时 d 2 ( X , G ) = ( x − μ ) 2 / σ 2 d^2(X,G)=(x-\mu)^2/\sigma^2 d2(X,G)=(x−μ)2/σ2,即样本与均值欧氏距离标准化后的平方。
不过,我们往往不知道 G G G的总体均值、总体协方差等信息,所以一般会用样本均值、样本自协方差矩阵来替代。
定义了马氏距离后,我们就可以测量样本距离不同总体之间的距离,从而将样本归到距离最近的类上。假设有
k
k
k个类
G
i
(
i
=
1
,
⋯
,
k
)
G_i(i=1,\cdots,k)
Gi(i=1,⋯,k),从
G
i
G_i
Gi类中抽取的样本为
X
(
t
)
(
i
)
=
(
x
t
1
(
i
)
,
⋯
,
x
t
m
(
i
)
)
(
t
=
1
,
⋯
,
n
i
)
X_{(t)}^{(i)}=(x_{t1}^{(i)},\cdots,x_{tm}^{(i)})(t=1,\cdots,n_i)
X(t)(i)=(xt1(i),⋯,xtm(i))(t=1,⋯,ni),第
i
i
i类的样本均值为
X
ˉ
(
i
)
\bar X^{(i)}
Xˉ(i),组内离差阵为
A
i
A_i
Ai,组内协方差阵为
S
i
=
1
n
i
−
1
A
i
S_i=\frac{1}{n_i-1}A_i
Si=ni−11Ai;如果假设总体协方差阵是相等的,则定义合并样本协方差阵为
S
=
1
n
−
k
∑
i
=
1
k
A
i
.
S=\frac{1}{n-k}\sum_{i=1}^k A_i.
S=n−k1i=1∑kAi.
接下来对几种具体的情况进行讨论。
2.直接判别法的使用
对于两总体的情况,我们一般会先对样本协方差阵进行假设检验 H 0 : Σ 1 = Σ 2 H_0:\Sigma_1=\Sigma_2 H0:Σ1=Σ2,当 H 0 H_0 H0成立和 H 0 H_0 H0不成立时,处理的方式略有不同。
先讨论
H
0
H_0
H0成立,
Σ
1
=
Σ
2
\Sigma_1=\Sigma_2
Σ1=Σ2的情况,此时应当使用合并样本协方差阵替代总体协方差阵,即
S
=
1
n
−
2
(
A
1
+
A
2
)
.
S=\frac1{n-2}(A_1+A_2).
S=n−21(A1+A2).
计算样本到每一组的马氏距离
d
2
(
X
,
G
i
)
=
(
X
−
X
ˉ
(
i
)
)
′
S
−
1
(
X
−
X
ˉ
(
i
)
)
d^2(X,G_i)=(X-\bar X^{(i)})'S^{-1}(X-\bar X^{(i)})
d2(X,Gi)=(X−Xˉ(i))′S−1(X−Xˉ(i))。由于协方差阵相等,所以可以对马氏距离的计算公式进行化简:
d
2
(
X
,
G
i
)
=
(
X
−
X
ˉ
(
i
)
)
′
S
−
1
(
X
−
X
ˉ
(
i
)
)
=
X
′
S
−
1
X
−
(
X
ˉ
(
i
)
)
′
S
−
1
X
−
X
′
S
−
1
X
ˉ
(
i
)
+
(
X
ˉ
(
i
)
)
′
S
−
1
X
ˉ
(
i
)
=
X
′
S
−
1
X
−
2
[
(
S
−
1
X
ˉ
(
i
)
)
′
X
−
1
2
(
X
ˉ
(
i
)
)
′
S
−
1
(
X
ˉ
(
i
)
)
]
=
X
′
S
−
1
X
−
2
Y
i
(
X
)
.
\begin{aligned} d^2(X,G_i)=&(X-\bar X^{(i)})'S^{-1}(X-\bar X^{(i)}) \\ =&X'S^{-1}X-(\bar X^{(i)})'S^{-1}X-X'S^{-1}\bar X^{(i)}+(\bar X^{(i)})'S^{-1}\bar X^{(i)} \\ =& X'S^{-1}X-2\left[(S^{-1}\bar X^{(i)})'X-\frac12(\bar X^{(i)})'S^{-1}(\bar X^{(i)}) \right] \\ =& X'S^{-1}X-2Y_i(X). \end{aligned}
d2(X,Gi)====(X−Xˉ(i))′S−1(X−Xˉ(i))X′S−1X−(Xˉ(i))′S−1X−X′S−1Xˉ(i)+(Xˉ(i))′S−1Xˉ(i)X′S−1X−2[(S−1Xˉ(i))′X−21(Xˉ(i))′S−1(Xˉ(i))]X′S−1X−2Yi(X).
最终,样本对两组的马氏距离差异将只有
Y
i
(
X
)
Y_i(X)
Yi(X),且
Y
i
(
X
)
Y_i(X)
Yi(X)越大
d
i
2
(
X
)
d^2_i(X)
di2(X)越小,所以将
Y
i
(
X
)
Y_i(X)
Yi(X)称为线性判别函数,它是
X
X
X的线性函数,称
a
i
=
S
−
1
X
ˉ
(
i
)
a_i=S^{-1}\bar X^{(i)}
ai=S−1Xˉ(i)为判别系数向量,
c
i
=
−
1
2
(
X
ˉ
(
i
)
)
′
S
−
1
X
ˉ
(
i
)
c_i=-\frac12(\bar X^{(i)})'S^{-1}\bar X^{(i)}
ci=−21(Xˉ(i))′S−1Xˉ(i)称为常数项,这样就有
Y
i
(
X
)
=
a
i
′
X
+
c
i
.
Y_i(X)=a_i'X+c_i.
Yi(X)=ai′X+ci.
如果
Y
1
(
X
)
>
Y
2
(
X
)
Y_1(X)> Y_2(X)
Y1(X)>Y2(X),则
X
X
X应当被归到
G
1
G_1
G1,否则
X
X
X应当被归到
G
2
G_2
G2,这样,
Y
1
(
X
)
=
Y
2
(
X
)
Y_1(X)=Y_2(X)
Y1(X)=Y2(X)就成为分离
G
1
,
G
2
G_1,G_2
G1,G2的一个超面,记
W
(
X
)
=
Y
1
(
X
)
−
Y
2
(
X
)
W(X)=Y_1(X)-Y_2(X)
W(X)=Y1(X)−Y2(X),则
W
(
X
)
=
Y
1
(
X
)
−
Y
2
(
X
)
=
[
(
S
−
1
(
X
ˉ
(
1
)
−
X
ˉ
(
2
)
)
]
′
X
−
1
2
(
X
ˉ
(
1
)
)
′
S
−
1
X
ˉ
(
1
)
+
1
2
(
X
ˉ
(
2
)
)
′
S
−
1
X
ˉ
(
2
)
=
X
′
S
−
1
(
X
ˉ
(
1
)
−
X
ˉ
(
2
)
)
−
1
2
(
X
ˉ
(
1
)
)
′
S
−
1
X
ˉ
(
1
)
+
1
2
(
X
ˉ
(
1
)
)
′
S
−
1
X
ˉ
(
2
)
−
1
2
(
X
ˉ
(
2
)
)
′
S
−
1
X
ˉ
(
1
)
+
1
2
(
X
ˉ
(
2
)
)
′
S
−
1
X
ˉ
(
2
)
=
(
X
−
1
2
(
X
ˉ
(
1
)
+
X
ˉ
(
2
)
)
)
′
S
−
1
(
X
ˉ
(
1
)
−
X
ˉ
(
2
)
)
=
d
(
X
−
X
∗
)
′
S
−
1
(
X
ˉ
(
1
)
−
X
ˉ
(
2
)
)
.
\begin{aligned} W(X)=&Y_1(X)-Y_2(X) \\ =& [(S^{-1}(\bar X^{(1)}-\bar X^{(2)})]'X-\frac12(\bar X^{(1)})'S^{-1}\bar X^{(1)}+\frac12(\bar X^{(2)})'S^{-1}\bar X^{(2)} \\ =&X'S^{-1}(\bar X^{(1)}-\bar X^{(2)})-\frac12(\bar X^{(1)})'S^{-1}\bar X^{(1)}+\frac12(\bar X^{(1)})'S^{-1}\bar X^{(2)}\\&-\frac12(\bar X^{(2)})'S^{-1}\bar X^{(1)}+\frac12(\bar X^{(2)})'S^{-1}\bar X^{(2)} \\ =&\left(X-\frac12(\bar X^{(1)}+\bar X^{(2)}) \right)'S^{-1}(\bar X^{(1)}-\bar X^{(2)}) \\ \stackrel {\rm d}=&(X-X^*)'S^{-1}(\bar X^{(1)}-\bar X^{(2)}). \end{aligned}
W(X)=====dY1(X)−Y2(X)[(S−1(Xˉ(1)−Xˉ(2))]′X−21(Xˉ(1))′S−1Xˉ(1)+21(Xˉ(2))′S−1Xˉ(2)X′S−1(Xˉ(1)−Xˉ(2))−21(Xˉ(1))′S−1Xˉ(1)+21(Xˉ(1))′S−1Xˉ(2)−21(Xˉ(2))′S−1Xˉ(1)+21(Xˉ(2))′S−1Xˉ(2)(X−21(Xˉ(1)+Xˉ(2)))′S−1(Xˉ(1)−Xˉ(2))(X−X∗)′S−1(Xˉ(1)−Xˉ(2)).
这里
X
∗
=
1
2
(
X
ˉ
(
1
)
+
X
ˉ
(
2
)
)
X^*=\frac12(\bar X^{(1)}+\bar X^{(2)})
X∗=21(Xˉ(1)+Xˉ(2)),这样,由于
W
(
X
)
W(X)
W(X)关于
X
X
X是一个线性函数,所以超面也是一个超平面,将
R
m
\R^m
Rm划分为两个部分。记
a
=
S
−
1
(
X
ˉ
(
1
)
−
X
ˉ
(
2
)
)
a=S^{-1}(\bar X^{(1)}-\bar X^{(2)})
a=S−1(Xˉ(1)−Xˉ(2))为判别系数,
W
(
X
)
W(X)
W(X)也称为线性判别函数,则
W
(
X
)
=
a
′
(
X
−
X
∗
)
W(X)=a'(X-X^*)
W(X)=a′(X−X∗),当
W
(
X
)
>
0
W(X)>0
W(X)>0时
X
X
X被归到
G
1
G_1
G1,
W
(
X
)
≤
0
W(X)\le 0
W(X)≤0时
X
X
X被归到
G
2
G_2
G2。
如果 Σ 1 ≠ Σ 2 \Sigma_1\ne \Sigma_2 Σ1=Σ2,则以 S 1 , S 2 S_1,S_2 S1,S2分别替代 Σ 1 , Σ 2 \Sigma_1,\Sigma_2 Σ1,Σ2计算马氏距离,以马氏距离短的那个类作为 X X X的类,方法和 Σ 1 = Σ 2 \Sigma_1=\Sigma_2 Σ1=Σ2时的一致。不过,此时的 W ( X ) = d 2 ( X , G 1 ) − d 2 ( X , G 2 ) W(X)=d^2(X,G_1)-d^2(X,G_2) W(X)=d2(X,G1)−d2(X,G2)是一个关于 X X X的二次函数,不再是超平面了。
需要注意的是,从判别系数 a = S − 1 ( X ˉ ( 1 ) − X ˉ ( 2 ) ) a=S^{-1}(\bar X^{(1)}-\bar X^{(2)}) a=S−1(Xˉ(1)−Xˉ(2))的形式上看,当 X ˉ ( 1 ) \bar X^{(1)} Xˉ(1)与 X ˉ ( 2 ) \bar X^{(2)} Xˉ(2)相差不大时,距离判别法的效果不会很好。所以,在使用距离判别法时,我们可以先对 H 0 : μ ( 1 ) = μ ( 2 ) H_0:\mu^{(1)}=\mu^{(2)} H0:μ(1)=μ(2)作一次假设检验,如果 p p p值很小,就可以认为 μ ( 1 ) \mu^{(1)} μ(1)和 μ ( 2 ) \mu^{(2)} μ(2)有显著差异,使用距离判别法。
对于多总体情况,同样是先根据总体之间的自协方差矩阵是否相同做一次假设检验,类似地用样本统计量作为总体参数的估计,计算马氏距离,选择马氏距离最短的那个作为样本的归类。
回顾总结
-
直接判别法是以样本离哪个类最近作为分类依据的判别方法,这里对距离的衡量是马氏距离,即
d 2 ( X , G i ) = ( X − μ ( i ) ) ′ Σ − 1 ( X − μ ( i ) ) . d^2(X,G_i)=(X-\mu^{(i)})'\Sigma^{-1}(X-\mu^{(i)}). d2(X,Gi)=(X−μ(i))′Σ−1(X−μ(i)).
当总体均值、方差未知时,使用样本均值、样本方差替代。 -
双总体直接判别法使用前,先检验 Σ 1 = Σ 2 \Sigma_1=\Sigma_2 Σ1=Σ2是否成立,然后检验 μ ( 1 ) = μ ( 2 ) \mu^{(1)}=\mu^{(2)} μ(1)=μ(2)是否成立,如果 μ ( 1 ) ≠ μ ( 2 ) \mu^{(1)}\ne \mu^{(2)} μ(1)=μ(2)显著不成立才适合使用直接判别法。对于 Σ 1 = Σ 2 \Sigma_1=\Sigma_2 Σ1=Σ2的情形,使用合并样本协方差阵替代总体方差,否则使用二者各自的协方差阵替代。最终,将 X X X归入马氏距离小的那个总体。
-
对于 Σ 1 = Σ 2 \Sigma_1=\Sigma_2 Σ1=Σ2的情况,引入线性判别函数为 Y i ( X ) = a i ′ X + c i Y_i(X)=a_i'X+c_i Yi(X)=ai′X+ci,这里
a i = S − 1 X ˉ ( i ) , c i = − 1 2 ( X ˉ ( i ) ) ′ S − 1 X ˉ ( i ) . a_i=S^{-1}\bar X_{(i)},\quad c_i=-\frac12(\bar X^{(i)})'S^{-1}\bar X^{(i)}. ai=S−1Xˉ(i),ci=−21(Xˉ(i))′S−1Xˉ(i).
将样本归入 Y i ( X ) Y_i(X) Yi(X)大的那个类。也可以用另一种形式的线性判别函数 W ( X ) = a ′ ( X − X ∗ ) W(X)=a'(X-X^*) W(X)=a′(X−X∗),这里
a = S − 1 ( X ˉ ( 1 ) − X ˉ ( 2 ) ) , X ∗ = 1 2 ( X ˉ ( 1 ) + X ˉ ( 2 ) ) . a=S^{-1}(\bar X^{(1)}-\bar X^{(2)}),\quad X^*=\frac12(\bar X^{(1)}+\bar X^{(2)}). a=S−1(Xˉ(1)−Xˉ(2)),X∗=21(Xˉ(1)+Xˉ(2)).
如果 W ( X ) > 0 W(X)>0 W(X)>0则归入1类,否则归入2类,这里 W ( X ) = 0 W(X)=0 W(X)=0是一个分割两类的超平面。 -
多总体直接判别法在使用前,也应检测 H 0 : Σ 1 = Σ 2 = ⋯ = Σ k H_0:\Sigma_1=\Sigma_2=\cdots =\Sigma_k H0:Σ1=Σ2=⋯=Σk是否成立,如果成立,则使用合并协方差阵替代每个总体的方差。