通过直接调用Matlab中的程序可以实现主成分分析:
式中:X为输入数据矩阵
(一般要求n>m)
输出变量:
①pc 主分量fi的系数,也叫因子系数;注意:pcTpc=单位阵
②score是主分量下的得分值;得分矩阵与数据矩阵X的阶数是一致的;
③variance是score对应列的方差向量,即A的特征值;容易计算方差所占的百分比
percent-v = 100*variance/sum(variance)
④t2表示检验的t2-统计量(方差分析要用)
计算过程中应用到计算模型:
(要求p<m)
例:表1为某地区农业生态经济戚消明系统各区域单元相关指标数据,运用主成分分析方法可以用更少的指标信息较为精确地描述该地区农业生态经济的发展状况。
表1 某农业生态经济系统各区域单元的有关数据
样本序号 x1:人口密度(人/km2) x 2:人均耕地面积(ha) x 3:森林覆盖率(%) x 4:农民人均纯收入(元/人) x 5:人均粮食产量 (kg/人) x 6:经济作物占高告农作物播面比例(%) x 7:耕地占土地面积比率(%) x 8:果园与林地面积之比(%) x 9:灌溉田占耕地面积之比(%)
1 363.912 0.352 16.101 192.11 295.34 26.724 18.492 2.231 26.262
2 141.503 1.684 24.301 1 752.35 452.26 32.314 14.464 1.455 27.066
3 100.695 1.067 65.601 1 181.54 270.12 18.266 0.162 7.474 12.489
4 143.739 1.336 33.205 1 436.12 354.26 17.486 11.805 1.892 17.534
5 131.412 1.623 16.607 1 405.09 586.59 40.683 14.401 0.303 22.932
6 68.337 2.032 76.204 1 540.29 216.39 8.128 4.065 0.011 4.861
7 95.416 0.801 71.106 926.35 291.52 8.135 4.063 0.012 4.862
8 62.901 1.652 73.307 1 501.24 225.25 18.352 2.645 0.034 3.201
9 86.624 0.841 68.904 897.36 196.37 16.861 5.176 0.055 6.167
10 91.394 0.812 66.502 911.24 226.51 18.279 5.643 0.076 4.477
11 76.912 0.858 50.302 103.52 217.09 19.793 4.881 0.001 6.165
12 51.274 1.041 64.609 968.33 181.38 4.005 4.066 0.015 5.402
13 68.831 0.836 62.804 957.14 194.04 9.110 4.484 0.002 5.790
14 77.301 0.623 60.102 824.37 188.09 19.409 5.721 5.055 8.413
15 76.948 1.022 68.001 1 255.42 211.55 11.102 3.133 0.010 3.425
16 99.265 0.654 60.702 1 251.03 220.91 4.383 4.615 0.011 5.593
17 118.505 0.661 63.304 1 246.47 242.16 10.706 6.053 0.154 8.701
18 141.473 0.737 54.206 814.21 193.46 11.419 6.442 0.012 12.945
19 137.761 0.598 55.901 1 124.05 228.44 9.521 7.881 0.069 12.654
20 117.612 1.245 54.503 805.67 175.23 18.106 5.789 0.048 8.461
21 122.781 0.731 49.102 1 313.11 236.29 26.724 7.162 0.092 10.078
对于上述例子,Matlab进行主成分分析,可以得到如下结果。
① 以及每一个主成分的贡献率和累计贡献率,如表2和图1。
表2. 特征根及主成分贡献率
主成分 特征值 贡献率%累积贡献率%
1 4.661 51.791 51.791
2 2.089 23.216 75.007
3 1.043 11.589 86.596
4 0.507 5.638 92.234
5 0.315 3.502 95.736
6 0.193 2.140 97.876
7 0.114 1.271 99.147
8 4.533E-02 0.504 99.650
9 3.147E-02 0.350 100.000
图1 特征根
② 前3几个主成分的载荷系数如表3所示。
表3 前三个主成分在原变量上的载荷
前三个主成分
变量 1 2 3
X1 0.158 -0.255 -0.059
X2 0.026 0.424 -0.027
X3 -0.207 0.046 0.091
X4 0.009 0.415 0.036
X5 0.174 0.212 -0.011
X6 0.176 0.086 0.120
X7 0.200 -0.064 -0.241
X8 0.042 -0.048 0.930
X9 0.207 -0.012 0.088
主成分分析(Principal Component Analysis,PCA), 将多个变量通过线性变换以选出较少个数重要变量的一闷毁种多元统计分析方法。又称主分量分析。matlab主成分分析法是用matlab编程序来实现你需要做的主成分分析。旦凳具体代码可以去网上收索。
function [lambda,T,fai]=MSA2(A)
%求标准化后的协差矩阵,再求特征根和特征向量
%标准化处理模罩旅
[p,n]=size(A)
for j=1:n
mju(j)=mean(A(:,j))
sigma(j)=sqrt(cov(A(:,j)))
end
for i=1:p
for j=1:n
Y(i,j)=(A(i,j)-mju(j))/sigma(j)
end
end
sigmaY=cov(Y)
%求X标准化的协差矩阵的特征根和特征向量
[T,lambda]=eig(sigmaY)
Xsum=sum(sum(lambda,2),1)
for i=1:n
fai(i)=lambda(i,i)/Xsum
end
%方差贡献率
matlab里面有主成分分析的函数,网上可以见到,不会用用法,直接在matlab输入代码区内输help @@@@ 就会出现关于@@@@的用法,全英文,希望你能看懂。祝好!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)