PCA主成分分析
最近遇到了主成分分析法这个东西,一开始我觉得简直天才啊,这个想法虽然从经济意义上来解释有点奇怪,毕竟是数学方法计算出来的解释因子,但鉴于没人知道现实世界究竟被多少因素影响,这种方法可以将最主要的成分提取出来,供人使用。这对于没有足够的经验自己总结影响因子的人来说,确实是一个很好的主意。
但在应用中我遇到了许多小问题,又因为我糟糕的记忆力,我决定写下来问题的解决过程,下一次还能回忆起来。QAQ
0.写在最前面
主成分分析法,可以将随机向量变为少数几个主成分,换句话说,本来有几种向量,最后就有几种成分,然后从中选出解释力最强的几种“主成分”。但是原始向量的协方差矩阵可能不是一个对角矩阵,即原始向量之间相关,转换后的主成分之间,不相关,同时主成分可以反映原始向量的大部分信息。
1.数据标准化
标准化,意味着将原始数据减去对应变量的均值,再除以其方差。
这个问题的来源是在主成分分析中,有两种选择,按照相关系数矩阵分解还是按照协方差矩阵分解。
我的困惑在于,这两者有什么区别,和书标准化又有什么关系。
查询资料得知:经标准化的样本数据的协方差矩阵就是原始样本数据的相关矩阵。这里所说的标准化指正态化,即将原始数据处理成均值为0。
简单来说,原始样本相关矩阵=标准化后协方差矩阵。
2.按照协方差矩阵分解还是按照相关矩阵分解
虽然现在知道了:
原始样本相关矩阵=标准化后协方差矩阵
但我还是不确定,这是否意味着:
原始样本按照相关矩阵分解=标准化后样本按照协方差矩阵分解
但我这个人确实不太擅长从数学的角度进行理论分析。
所以我直接在程序里验证了,对比了两组结果。原始数据为data,R语言
第一组:
A <- princomp(data, cor = TRUE)
summary(A)
第二组:
b <- scale(data)
B <- princomp(b, cor = FALSE)
summary(B)
我得到的两组结果完全相同。显然,这证明了:
原始样本按照相关矩阵分解=标准化后样本按照协方差矩阵分解
这基本解决了我运算上的一些困惑。
3.关于意义
运算上的困惑解决了,我对主成分的一些含义还不清楚,主要有以下几个问题:
a. 第一主成分和第二主成分的区别是否在与第一主成分的解释力更强,或者说他们俩的第一第二究竟是什么意思。特征向量又有什么意义?
第一主成分和第二主成分的“第一”、“第二”意味着特征值的第一大和第二大。第一主成分,意味着对标准化后的数据找到一个线性组合,令主成分的方差最大。第二主成分与第一主成分无关,第二主成分的方差第二大。
特征值越大,代表了对原始信息解释的越多。
第一主成分的方差理论上等于第一大特征值,第二主成分的方差理论上等于第二大特征值。特征向量就是在原始数据上的系数。
系数的正负值,绝对值大的代表了盖主成分主要综合的变量信息,当有几个变量系数绝对值大小相当的时候,应当认为这一主成分是这几个变量的作用综合,至于意义需要结合具体的问题解决。
b. 原始数据中,某种向量与其他向量的相关性较低,和这种向量与主成分之间的关系有什么联系?
变量之间相关性高,意味着数据中的信息是有重叠的,因此,用主成分分析得到不重叠的信息。如果本身不相关,就没有重叠的信息,pca的效果就不明显。(这一点我仍旧存疑)