最近在同学安利下入手华科老学长清风的数学建模课程,在这里记录下笔记。做笔记的目的主要是将较长的视频精简成短时间能看完的文档,方便日后复习用,也希望能给予后来者一点帮助。
给定一组样本,样本有两组变量,问这两组变量之间的相关关系。
例题:对20名中年人测量了三个生理指标:体重(x1),腰围(x2),脉搏(x3);三个训练指标:引体向上次数(y1),起坐次数(y2),跳跃次数(y3)。分析生理指标与训练指标的相关性。
思路:用一个典型变量代表整组变量,然后两个典型变量的相关系数就是原来两组变量的典型相关系数。
思路展开
典型变量是这组变量的线性组合。线性组合系数具体取多少呢?为了尽可能提取出两组变量的相关性,我们希望找到这样的线性组合系数使得两组变量的典型变量的相关系数最大。
找完第一对典型变量之后,可以视为提取出了最大的相关性。不同的线性组合系数,可以提取出不同的相关性,因此我们可以接着找出第二大相关性的线性组合系数,且第二线性组合系数应与第一线性组合系数线性无关。
用数学语言表述一下上述过程,即
为简便,记
X
(
1
)
X^{(1)}
X(1)为X,记
X
(
2
)
X^{(2)}
X(2)为Y。
找到一对系数向量a、b,使得
ρ
(
a
X
,
b
Y
)
=
ρ
(
U
,
V
)
\rho\left( aX,bY \right) = \rho(U,V)
ρ(aX,bY)=ρ(U,V)最大。
由于乘除常数不改变相关系数,即
ρ
(
k
1
U
,
k
2
V
)
=
ρ
(
U
,
V
)
\rho\left( k_{1}U,k_{2}V \right) = \rho(U,V)
ρ(k1U,k2V)=ρ(U,V),故为了唯一确定a、b,需要外加额外限定条件。这里限定方差
D
(
aX
)
=
D
(
bY
)
=
1
D\left(\text{aX} \right) = D\left( \text{bY} \right) = 1
D(aX)=D(bY)=1。
找到了第一对系数向量,即找到了一阶典型变量 U 1 , V 1 U_{1},V_{1} U1,V1后,再接着找到二阶典型变量 U 2 , V 2 U_{2},V_{2} U2,V2,使得 ρ ( a 2 X , b 2 Y ) = ρ ( U 2 , V 2 ) \rho\left( a_{2}X,b_{2}Y \right) =\rho(U_{2},V_{2}) ρ(a2X,b2Y)=ρ(U2,V2)最大,且 a 2 , b 2 a_{2},b_{2} a2,b2与 a 1 , b 1 a_{1},b_{1} a1,b1线性无关,即 cov ( U 1 , U 2 ) = 0 \text{cov}\left(U_{1},U_{2} \right) = 0 cov(U1,U2)=0,以及 cov ( V 1 , V 2 ) = 0 \text{cov}\left( V_{1},V_{2} \right) = 0 cov(V1,V2)=0。
推导计算式
说起来很简单,这线性组合系数a、b到底怎么找呢?经过一顿推导猛如虎,可以证明
a
i
,
b
i
\mathbf{a}_{\mathbf{i}}\mathbf{,}\mathbf{b}_{\mathbf{i}}
ai,bi就是A、B的第i大特征值对应的特征向量,
ρ
(
a
i
X
,
b
i
Y
)
=
ρ
(
U
i
,
V
i
)
=
λ
i
\mathbf{\rho}\left( \mathbf{a}_{\mathbf{i}}\mathbf{X,}\mathbf{b}_{\mathbf{i}}\mathbf{Y}\right)\mathbf{= \rho}\left( \mathbf{U}_{\mathbf{i}}\mathbf{,}\mathbf{V}_{\mathbf{i}} \right)\mathbf{=}\mathbf{\lambda}_{\mathbf{i}}
ρ(aiX,biY)=ρ(Ui,Vi)=λi就是A、B的第i大特征值的算术平方根。其中A、B的构造如下
如果X、Y是经过标准化后的样本数据,则Cov=R(回顾Cov和皮尔逊相关系数ρ的公式,可发现相关系数ρ就是标准化后的数据的Cov)。则有
一般来说,先将X、Y标准化再作典型相关分析会更好,之后会说明。
可以证明,A、B的特征根是相同的,且非零特征根有r个(r是A、B的秩),且都在0~1之间。
至此,我们已经算出了各阶典型变量的组合系数 a i , b i a_{i},b_{i} ai,bi及其典型相关系数值 λ i \lambda_{i} λi。同第五讲,相关系数值本身是否有效,需要经过相关性检验。
相关性检验
假设X(p列)、Y(q列)服从联合正态分布
N
p
+
q
(
μ
,
Σ
)
N_{p + q}(\mu,\Sigma)
Np+q(μ,Σ),假设
H
0
:
λ
1
H_{0}:\lambda_{1}
H0:λ1=0,(由于
λ
1
\lambda_{1}
λ1对应最大特征根,这意味着其余
λ
\lambda
λ也都为0),则有如下统计量满足如下分布
算出p值,若p<0.05,则可在95%的置信区间下拒绝原假设,即认为
λ
1
≠
0
\lambda_{1} \neq 0
λ1=0.
然后接着检验
λ
2
,
λ
3
,
…
\lambda_{2},\lambda_{3},\ldots
λ2,λ3,…
没通过相关性检验的那些λ对应的典型变量就无意义了,之后可以不管,只看那些通过了检验的典型变量。如果所有典型变量都没通过检验,说明这两组原数据不相关。
实际演练
对于开头那个例题(数据略),我们可以直接把数据导入到SPSS中,用SPSS直接计算典型相关分析的结果。
其中第一行就是第一阶的典型相关系数
λ
1
\lambda_{1}
λ1及其相关性检验的p值。可以看到p<0.10,在90%的置信区间下认为第一阶典型变量有效。第二、第三阶没通过检验,之后可以不管了。
一般来说看标准化的组合系数就可以了。第一列是第一阶组合系数。第二、三列没通过检验,不用看。
X的第一阶典型变量为 U 1 = 0.775 X 1 − 1.579 X 2 + 0.059 X 3 U_{1} = 0.775X_{1} - 1.579X_{2} + 0.059X_{3} U1=0.775X1−1.579X2+0.059X3
Y的第一阶典型变量为 V 1 = 0.349 Y 1 + 1.054 Y 2 − 0.716 Y 3 V_{1} = 0.349Y_{1} + 1.054Y_{2} - 0.716Y_{3} V1=0.349Y1+1.054Y2−0.716Y3
标准化的意义在于去除量纲的影响。如果不标准化,假如说
X
2
X_{2}
X2的量纲很小,那这就会导致其线性组合系数也很小,但实际上
X
2
X_{2}
X2的贡献才是最大的。
组合系数在一定程度上可以反映每组中各变量对该组典型变量的贡献程度,比如上式中可看出
X
2
X_{2}
X2对
U
1
U_{1}
U1的贡献最大。但组合系数的反映程度实在有限,只有最大贡献是准确的。更准确地看贡献程度的方法,还得作典型载荷分析。
典型载荷分析是对原始组内变量与该组典型变量之间的相关性分析。即求U与X之间的相关系数。计算公式略。用SPSS计算得典型载荷矩阵如下
mat[i][j]表示
X
i
X_{i}
Xi与
U
j
U_{j}
Uj的相关系数。只看
U
1
U_{1}
U1,即只看第一列。
可以看到,
U
1
U_{1}
U1中贡献最大的是
X
2
X_{2}
X2,负相关这个与看组合系数得到的结论相同。但是
U
1
U_{1}
U1与
X
1
X_{1}
X1是负相关,这个与组合系数是相反的。
V
1
V_{1}
V1中贡献第二大的是
Y
1
Y_{1}
Y1,而不是
Y
3
Y_{3}
Y3,这个也与组合系数看到的不同。因此,组合系数不能正确反映贡献程度的大小、正负,还得看载荷分析。
片尾广告
清风数学建模课程,B站上可以免费看前几节,讲的挺好的,还在不断更新。最近更新了许多内容,我还没来得及看,想进一步了解的可以自己去看看。
链接: 清风数学建模课程.