因子分析 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]) %迴歸分析計算