目的描述
出于模型的需要,我们的团队选择做一次因子分析,通常这部分在队伍中是会有同学专门负责这块的,至于为什么笔者就不在这里多说了。
解决思路
在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