基于R语言的因子分析(附代码)

一、因子分析数学推导

        用少数几个不可观测的随机变量(因子)去描述许多随机变量之间的协方差关系。主义因子分析可以视作主成分分析的一种推广,但因子是不可观察且不必是相互正交的变量。其基本思想是:根据相关性大小将变量分组,每组变量代表一个基本结构,反映观测到的相关性。R型因子分析可以用来研究变量之间的相关关系,Q型因子分析研究样品之间的相关关系,二者知识形式上的不同数学处理上是一样的,本文以R型因子为例展开说明。

1.1正交因子模型

        假定P维期望为eq?%5Cmu_%7Bi%7D,协方差矩阵为eq?%5Csum的随机变量X线性地依赖于少数几个不可观测的随机变量eq?f_%7B1%7D%2C....%2Cf_%7Bm%7D(公因子)和附加的方差源eq?%5Cvarepsilon%20_%7B1%7D%2C...%2C%5Cvarepsilon%20_%7Bp%7D(特殊因子,误差),那么因子模型可表作

   eq?x_%7Bi%7D%3D%5Cmu%20_%7Bi%7D+%5Csum%20%7Ba_%7Bij%7D*f_%7Bj%7D%7D+%5Cvarepsilon%20_%7Bi%7D

其中eq?%5Cmu_%7Bi%7D%2Ci%3D1...p为数学期望,eq?a_%7Bij%7D为第i个变量在第j个因子上的载荷。

当以下条件成立时,我们称该模型为正交因子模型(F为公因子构成矩阵):eq?E%28F%29%3D0%2CVar%28F%29%3DI%2CE%28%5Cvarepsilon%20%29%3D0eq?Cov%28F%2C%5Cvarepsilon%29%3D0

可推导知eq?Var%28x_%7Bi%7D%29%3D%5Csigma%20_%7Bii%7D%3D%5Csum%7Ba_%7Bij%7D%5E2%7D+%5Cphi%20_%7Bi%7Deq?Cov%28x_%7Bi%7D%2Cj_%7Bj%7D%29%3Da_%7Bij%7D

也就是Xi有m个公因子和一个特殊因子构成。公因子的贡献总和称为共同度,特殊因子的方差贡献为特殊度。注意到,在非退化的情况下模型是不唯一的(缺少约束时模型是不可识别的)。

1.2 因子模型的估计

        建立因子模型首先要估计载荷矩阵和特殊方差,常用的估计方法有主成分发、主因子法和最大似然法。

1.2.1 主成分法

        设eq?%5Clambda%20_%7B1%7D%2C...%2C%5Clambda_%7Bp%7D%28%5Clambda_%7B1%7D%5Cgeq%20...%5Cgeq%5Clambda_%7Bp%7D%5Cgeq%200%29eq?%5Csum的特征值,eq?e_%7B1%7D%2C...e_%7Bp%7D为对应的标准正交化特征向量。这里可以对随机变量的协方差矩阵进行分解,并且假定特殊因子是可以在分解过程中忽略的。在实际中,常用样本的协方差矩阵来代替,考虑到变量的量纲差别,往往需要将数据标准化,这样求得的样本方差-协方差矩阵就是原来数据的相关系数矩阵R,并对R进行以上操作。而后根据各特征值的占比和阈值进行比较取定公因子。

1.2.2 主因子法

        作R的约相关矩阵并对此进行估计,具体过程不在文本赘述,其和主成分法的不同是:特殊方差汗的估计在不同步骤进行。如果我们希望求得拟合程度更高的节,可以采用迭代的方法,即将上一步中的特殊方差作为下一步的初始估计。

1.2.3极大似然法

   在模型假定下计算似然函数eq?L%28%5Cmu%2C%5Csum%29,记其极大似然估计为eq?L%28%5Chat%7B%5Cmu%7D%2C%5Chat%7BA%7D%2C%5Chat%7B%5Csum%20%7D%29%3DmaxL%28%5Cmu%2CA%2C%5Csum%29

注意对极大似然解,当因子数增加时,愿挨银子的估计载荷以及对x的贡献度发生改变,区别于前两种方法。

1.3因子正交旋转

        满足方差结构的因子模型并不唯一,模型的公因子和载荷矩阵不唯一,并且公因子和因子载荷矩阵作正交变换后并不改变公共度,乘因子载荷的正交变换和伴随的因子正交变换为因子正交旋转,从而得到更简单的结构。

1.4因子得分

        因子得分即对公因子的估计

1.4.1加权最小二乘法

        先将因子模型改写为eq?X-%5Cmu%3DAF+%5Cvarepsilon后经过变化并由最小二乘法可得eq?F的估计。是集中通常用它们的某种估计来代替eq?A%2C%5Csum%2C%5Cmu

1.4.2回归法

        在正交因子模型中假设eq?%5Cbegin%7Bpmatrix%7D%20F%5C%5C%20X%20%5Cend%7Bpmatrix%7D服从eq?%28m+p%29元正态分布,用回归预测的方法估计。

1.4.3综合因子得分

        以各因子的方差贡献率为权重,由各因子的下行组合得到综合评价指标函数:

eq?f%3D%5Cfrac%7B%5Csum%7B%5Clambda_%7Bi%7Df_%7Bi%7D%7D%7D%7B%5Csum%7B%5Clambda_%7Bi%7D%7D%7D%3D%5Csum%7Bw_%7Bi%7Df_%7Bi%7D%7D

二、案例分析

####导入数据 安装相应库###############
setwd('C:/Users/myq20170530/data')
data<-read.csv('eg6.1.csv',header = 1)
data<-scale(data)##数据标准化处理
cor(data)  ##观察各个变量之间的相关程度

install.packages('psych')##笔者mvstats库无法下载故而用psych代替
library('psych')
install.packages('GPArotation')
library('GPArotation')

####用主成分分析和极大似然法进行因子分析##########
fa(data,nfactors=2,fm='ml',rotate = 'none')
>Factor Analysis using method =  ml
Call: fa(r = data, nfactors = 2, rotate = "none", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
     ML1  ML2   h2   u2 com
x1 -0.68 0.56 0.77 0.23 1.9
x2 -0.60 0.43 0.54 0.46 1.8
x3 -0.49 0.66 0.67 0.33 1.8
x4  0.92 0.10 0.85 0.15 1.0
x5  0.86 0.24 0.79 0.21 1.2
x6  0.88 0.27 0.85 0.15 1.2

                       ML1  ML2
SS loadings           3.40 1.07
Proportion Var        0.57 0.18
Cumulative Var        0.57 0.75
Proportion Explained  0.76 0.24
Cumulative Proportion 0.76 1.00

Mean item complexity =  1.5
Test of the hypothesis that 2 factors are sufficient.

df null model =  15  with the objective function =  4.28 with Chi Square =  205.97
df of  the model are 4  and the objective function was  0.08 

The root mean square of the residuals (RMSR) is  0.02 
The df corrected root mean square of the residuals is  0.04 

The harmonic n.obs is  52 with the empirical chi square  0.62  with prob <  0.96 
The total n.obs was  52  with Likelihood Chi Square =  3.64  with prob <  0.46 

Tucker Lewis Index of factoring reliability =  1.007
RMSEA index =  0  and the 90 % confidence intervals are  0 0.203
BIC =  -12.17
Fit based upon off diagonal values = 1
Measures of factor score adequacy             
                                                   ML1  ML2
Correlation of (regression) scores with factors   0.97 0.89
Multiple R square of scores with factors          0.95 0.80
Minimum correlation of possible factor scores     0.89 0.59


> fac1=principal(data,2,rotate='none')
> fac1
Principal Components Analysis
Call: principal(r = data, nfactors = 2, rotate = "none")
Standardized loadings (pattern matrix) based upon correlation matrix
     PC1  PC2   h2   u2 com
x1 -0.79 0.42 0.81 0.19 1.5
x2 -0.73 0.40 0.70 0.30 1.5
x3 -0.64 0.63 0.81 0.19 2.0
x4  0.89 0.31 0.89 0.11 1.2
x5  0.81 0.47 0.87 0.13 1.6
x6  0.83 0.46 0.90 0.10 1.6

                       PC1  PC2
SS loadings           3.71 1.26
Proportion Var        0.62 0.21
Cumulative Var        0.62 0.83
Proportion Explained  0.75 0.25
Cumulative Proportion 0.75 1.00

Mean item complexity =  1.6
Test of the hypothesis that 2 components are sufficient.

The root mean square of the residuals (RMSR) is  0.06 
 with the empirical chi square  5.96  with prob <  0.2 

Fit based upon off diagonal values = 0.99


fac2=principal(data,2,rotate = 'varimax')
> fac2
Principal Components Analysis
Call: principal(r = data, nfactors = 2, rotate = "varimax")
Standardized loadings (pattern matrix) based upon correlation matrix
     RC1   RC2   h2   u2 com
x1 -0.32  0.84 0.81 0.19 1.3
x2 -0.29  0.78 0.70 0.30 1.3
x3 -0.07  0.90 0.81 0.19 1.0
x4  0.88 -0.35 0.89 0.11 1.3
x5  0.92 -0.18 0.87 0.13 1.1
x6  0.93 -0.20 0.90 0.10 1.1

                       RC1  RC2
SS loadings           2.66 2.31
Proportion Var        0.44 0.39
Cumulative Var        0.44 0.83
Proportion Explained  0.54 0.46
Cumulative Proportion 0.54 1.00

Mean item complexity =  1.2
Test of the hypothesis that 2 components are sufficient.

The root mean square of the residuals (RMSR) is  0.06 
 with the empirical chi square  5.96  with prob <  0.2 

Fit based upon off diagonal values = 0.99
###对结果进行可视化处理######################
plot(fac2$loadings,xlabel='Factor1',ylabel='Factor2')#输出因子载荷图

text(fac2$loadings,paste=("x",1:12,sep=""),cex=1.5)
fac2.plotdata<-fac2$scores
rownames(fac2.plotdata)<-unlist(name)
plot.text(fac2.plotdata)#因子得分图


plot(fac2$loadings,xlab="Factor1",ylab="Factor2")#各因子得分图和原坐标在因子上的方向图

48be9233c64f494ba7c8038ac8d76459.png

4004d187bff148f7862c2acf5696bacb.png 

 三、结果分析

        由因子载荷图可以看出后三个随机变量离第一个因子较近,前三者离第二个因子较近。

        从上述极大似然法和主成分法得到的因子分析结果可以看出:当m取2时极大似然法累计贡献率为74%而主成分法的累计贡献率为87%,说明主成分法效果比极大似然法好。

      从因子正交旋转的结果可以看出累计贡献率为82.87%。可见作正交旋转后因子的含义更清晰。

      本文内容主要来源于费宇先生所著《多元统计分析——基于R》一文,笔者才疏学浅,若有不妥谬误之处,还望温和批评指正。

 

  • 24
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值