主成分分析(pca)是怎样消除多重共线性(colinear)的?

主成分分析(pca)是怎样消除多重共线性(colinear)的?

结论:原先线性相关的n个变量,经过坐标变换生成的新的n个变量是两两正交的,而且每一个新变量都是原来n个变量的线性组合。

数学推导如下:

已知m个个案在自然基的坐标是B(b1,b2,…bm),特征向量矩阵A(a1,a2,…an),假设m个个案在新基的坐标是X(x1,x2…xm
则坐标变换公式

AX=B
X=A -1B
因为正交单位阵的性质A -1=A T
X=A TB
X T=B TA
所以新变量 XT[,1]可以表示为原来n个变量B T的线性组合

R代码

两两正交我不知道该如何证明,但是可以通过r代码实现

######
#pca
B=matrix(data=(c(1,2,3,2,4,6)),nrow = 2,byrow = T)
Bt=t(B)
> Bt
[,1] [,2]
[1,]    1    2
[2,]    2    4
[3,]    3    6

#标准化
BT=scale(Bt)
> scale(Bt)
[,1] [,2]
[1,]   -1   -1
[2,]    0    0
[3,]    1    1
#计算相关系数矩阵;
rm<-cor(BT)
#求特征值和特征向量
rs<-eigen(rm)
> eigen(rm)
eigen() decomposition
$values
[1] 2 0

$vectors
[,1]       [,2]
[1,] 0.7071068 -0.7071068
[2,] 0.7071068  0.7071068
#特征向量矩阵
A=rs$vectors
#进行矩阵乘法XT=BT*A,获得PC score;
XT <BT %*% A
> BT %*% A
[,1] [,2]
[1,] -1.414214    0
[2,]  0.000000    0
[3,]  1.414214    0
colnames(XT) <- c("PC1","PC2")

可以看出新变量是正交的

主成分回归

利用最小二乘法y~XT得到回归方程y=XTα+intercept,α是计算出的系数向量,那么y=BT(Aα)+intercept=BTβ+intercept,β也是系数向量,因此就得到了因变量与原变量组=BT的线性表达式。

题外话

XT=BTA表述为向量组XT可以由向量组BT线性表示,根据定理
在这里插入图片描述
而向量组BT线性相关,他的秩<n,所以向量组XT的秩也<n,也就是说向量组XT也是线性相关,那么问题来了向量组XT的向量两两正交,为什么他还能线性相关呢?
原因是书上定义非零向量组成的正交向量组一定是线性无关的,但是向量组XT的向量可以是零向量,零向量与任何一个向量都正交;如果存在零向量,那么向量组一定是线性相关的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值