将变量进行先行组合,淘汰方差比较少的组合变量
一、corrcoef()函数求相关系数矩阵
1 | r = corrcoef(data) %r即是data的相关系数矩阵 |
二、Matlab里面的相关函数
与主成分分析相关的MATLAB函数有pcacov、princomp函数
(1)pcacov函数
pcacov函数用来根据协方差矩阵或相关系数矩阵进行主成分分析,调用格式如下:
1 | COEFF=pcacov(V) |
以上调用的输入参数V是总体或样本的协方差矩阵或相关系数矩阵,对于p维总体,V是pxp的矩阵。输出参数COEFF是p个主成分的系数矩阵,它是pxp的矩阵,它的第i列是第i个主成分的系数向量。输出参数latent是p个主成分的方差构成的向量,即V的p个特征值的大小(从大到小)构成的向量。输出参数explained是p个主成分的贡献率向量,已经转化为百分比。
(2)princomp函数
princomp函数用来根据样本观测值矩阵进行主成分分析,其调用格式如下:
<1>
1 | [COEFF,SCORE]=princomp(X) |
根据样本观测值矩阵X进行主成分分析。输入参数X是n行p列的矩阵,每一行对应一个观测(样品),每一列对应一个变量。输出参数COEFF是p个主成分析的系数矩阵,他是pxp的矩阵,它的第i列对应第i个主成分的系数向量。输出参数SCORE是n个样品的p个主成分得分矩阵,它是n行p列的矩阵,每一行对应一个观测,每一列对应一个主成分,第i行第j列元素表示第i个样品的第j个主成分得分,SCORE与X是一 一对应的关系,是X在新坐标系中的数据,可以通过X*系数矩阵得到。
<2>
1 | [COEFF,SCORE,latent]=princomp(X) |
返回样本协方差矩阵的特征值向量latent,它是由p个特征值构成的列向量,其中特征值按降序排列。
<3>
1 | [COEFF,SCORE,latent,tsquare]=princomp(X) |
返回一个包含n个元素的列向量tsquare,它的第i个元素的第i个观测对应的霍特林T^2统计量,表述了第i个观测与数据集(样本观测矩阵)的中心之间的距离,可用来寻找远离中心的极端数据。
<4>
1 | [......]=princomp(X,‘econ’) |
通过设置参数‘econ’参数,使得当n<=p时,只返回latent中的前n-1个元素(去掉不必要的0元素)及COEFF和SCORE矩阵中相应的列。
注:
SCORE即是原数据新的坐标系下的数据形式
额外获得:
cumsum函数:
B = cumsum(A,dim),或B = cumsum(A)
dim = 1按行累加,dim = 2时按列累加
X标准化之后再求协方差矩阵,得到的协方差矩阵其实就是X的相关系数矩阵
- 本文作者: Hbin
- 本文链接: https:/hbinfree.github.io/2021/01/10/matlab主成分分析/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!