因子分析 factor analysis (六) :用因子分析法进行综合评价

目录

 实验步骤

1.对原始数据进行标准化处理

2.计算相关系数矩阵R    

3.计算初等载荷矩阵 

4.选择m (  m≤ p)个主因子,进行因子旋转 

5.计算因子得分,并进行综合评价  

6. 利用综合因子得分公式  计算各样本的综合得分

二  例题


一 实验步骤

1.对原始数据进行标准化处理

2.计算相关系数矩阵R    

R=\left ( r_{ij} \right )_{p\times p}

3.计算初等载荷矩阵 

4.选择m (  m≤ p)个主因子,进行因子旋转 

根据初等载荷矩阵,计算各个公共因子的贡献率,并选择m 个主因子。对提取的因子载荷矩阵进行旋转,得到矩阵B=\hat{A}T (其中\hat{A}为A的前m列,T为正交矩阵),构造因子模型

        \left\{\begin{matrix} \tilde{x_{1}}=b_{11}F_{1}+\cdots +b_{1m}F_{m} \\ \cdots \cdots \cdots \cdots \cdots \cdots\cdots \cdots\\ \tilde{x_{p}}=b_{p1}F_{1}+\cdots +b_{pm}F_{m} \end{matrix}\right.

5.计算因子得分,并进行综合评价  

我们用回归方法求单个因子得分函数    \large \hat{F_{j}}=b_{j1}\tilde{x_{1}} +\cdots +b_{jp}\tilde{x_{p}} ,j=1,2,...,m

 \large \begin{bmatrix}b_{11} &b_{12} & ... &b_{1p} \\ b_{21} & b_{22} & ... &b_{2p} \\ \vdots & \vdots & & \vdots \\ b_{m1} & b_{m2}& ... & b_{mp} \end{bmatrix} = \begin{bmatrix} b_{1}\\ b_{2}\\ \vdots \\ b_{m} \end{bmatrix}  ;则有\large \left [ b_{1}^{T} \: b_{2}^{T} ... \: b_{m}^{T}\right ] =R^{-1}A

6. 利用综合因子得分公式  计算各样本的综合得分

  • 二  例题

 已知部分上市公司的数据见下表,试用因子分析法对上述企业进行综合评价。 

解 按上述步骤计算得旋转后的因子贡献及贡献率见表13、因子载荷阵见表14。 

 我们通过相关分析,在显著水平为0.05的情况下,得出赢利能力F 与资产负债率 x 之间的相关系数为-0.6987,这表明两者存在中度相关关系。因子分析法的回归方程为:F = 0.829-0.0268X

回归方程在显著性水平0.05的情况下,通过了假设检验。  

计算的MATLAB程序如下:

clc,clear 
load data.txt   %把原始数据保存在纯文本文件data.txt中 
data=reshape(data,[16,5]);
 m=size(data,1); 
x=data(:,5);data=data(:,1:4),num=2; 
data=zscore(data); %数据标准化 
r=cov(data); 
[vec,val,con]=pcacov(r);  %进行主成分分析的相关计算 
val,con 
f1=repmat(sign(sum(vec)),size(vec,1),1); 
vec=vec.*f1;     %特征向量正负号转换 
f2=repmat(sqrt(val)',size(vec,1),1);  
a=vec.*f2   %载荷矩阵 
%如果指标变量多,选取的主因子个数少,可以直接使用factoran进行因子分析 
%本题中4个指标变量,选取2个主因子,factoran无法实现 
[b,t]=rotatefactors(a(:,1:num),'method', 'varimax')  %旋转变换 
bz=[b,a(:,num+1:end)]   %旋转后的载荷矩阵 
gx=sum(bz.^2)             %计算因子贡献 
gxv=gx/sum(gx)            %计算因子贡献率 
dfxsh=inv(r)*b            %计算得分函数的系数 
df=data*dfxsh           %计算各个因子的得分 
zdf=df*gxv(1:num)'/sum(gxv(1:num))        %对各因子的得分进行加权求和 
[szdf,ind]=sort(zdf,'descend')      %对企业进行排名
xianshi=[df(ind,:)';zdf(ind)';ind'] %显示计算结果 
[x_zdf_coef,p]=corrcoef([zdf,x])    %计算相关系数 
[d1,d1int,d2,d2int,stats]=regress(zdf,[ones(m,1),x]) %回归分析计算