MATLAB(2)--因子分析

目的描述

​ 出于模型的需要,我们的团队选择做一次因子分析,通常这部分在队伍中是会有同学专门负责这块的,至于为什么笔者就不在这里多说了。

解决思路

​ 在MATLAB中封装了有关因子分析的方法--factoran,读者可以通过help命令来查看如何调用这个方法。

需要读者注意的是,factoran方法并不会做数据规范化,所以读者需要自己来做这个操作。

代码展示

%数据单位化
TX_F_D=zscore(TX_D)

%5,求和
SUM_F_D=TX_F_D+AZ_F_D+CA_F_D+NM_F_D

%6,因子分析
[SUM_lambda,SUM_psi,SUM_T,SUM_stats,SUM_F]=factoran(SUM_F_D,6)

%求取贡献率
SUM_Contribute=Factor_Contribute(SUM_lambda,index)

%求各项因子的得分
ALL_F=Factor_F(TX_F_D,AZ_F_D,CA_F_D,NM_F_D,SUM_lambda,SUM_Contribute)

%画图
subplot(2,2,1)
plot(YEARS,ALL_F{1}(:,1),'r-',YEARS,ALL_F{2}(:,1),'g--',YEARS,ALL_F{3}(:,1),'b:',YEARS,ALL_F{4}(:,1))
xlabel('YEARS')
ylabel('F1')
legend('TX','AZ','CA','NM','Location','SouthEast')

%画单个的图
figure
plot(YEARS,ALL_F{1}(:,1),'r-',YEARS,ALL_F{2}(:,1),'g--',YEARS,ALL_F{3}(:,1),'b:',YEARS,ALL_F{4}(:,1))
xlabel('YEARS')
ylabel('F1')
legend('TX','AZ','CA','NM','Location','SouthEast')

figure
plot(YEARS,ALL_F{1}(:,2),'r-',YEARS,ALL_F{2}(:,2),'g--',YEARS,ALL_F{3}(:,2),'b:',YEARS,ALL_F{4}(:,3))
xlabel('YEARS')
ylabel('F2')
legend('TX','AZ','CA','NM','Location','SouthEast')

figure
plot(YEARS,ALL_F{1}(:,3),'r-',YEARS,ALL_F{2}(:,3),'g--',YEARS,ALL_F{3}(:,3),'b:',YEARS,ALL_F{4}(:,3))
xlabel('YEARS')
ylabel('F3')
legend('TX','AZ','CA','NM','Location','SouthEast')

figure
plot(YEARS,ALL_F{1}(:,4),'r-',YEARS,ALL_F{2}(:,4),'g--',YEARS,ALL_F{3}(:,4),'b:',YEARS,ALL_F{4}(:,4))
xlabel('YEARS')
ylabel('F')
legend('TX','AZ','CA','NM','Location','SouthEast')

结果展示

由于结果有多种多样的,直接给出MATLAB的工作空间,有兴趣的读者可以自行下载。

链接 密码:zffr

猜你喜欢

转载自my.oschina.net/u/3483440/blog/1626627