Bootstrap

R语言-因子分析中因子综合得分求解

综合得分求解原理:公因子各自的方差贡献率占累计贡献率的比重为权重加权计算。公式:公因子×权重 的和。

由于本文的主要目的是计算综合因子得分。所以对于数据的处理和代码的解读不做过多描述。

#载入数据,求出相关系数矩阵
library(xlsx)
a0 <- read.xlsx("D:/RData/sjhz.xlsx",1,encoding = "UTF-8")
a0.cor <- cov2cor(cov(a0))
library(psych)
fa.parallel(a0.cor,n.obs = 70,fa="fa",n.iter = 100)#碎石图检验得到最佳公共因子个数为2
a0.varimax <- fa(a0.cor,nfactors = 2,n.obs = 70,rotate = "varimax",score=TRUE,fm="ml")#直接进行正交旋转,使用方法为极大似然估计。
a0.varimax
Factor Analysis using method =  ml
Call: fa(r = a0.cor, nfactors = 2, n.obs = 70, rotate = "varimax", 
    scores = TRUE, fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
                      ML1   ML2   h2     u2 com
互联网普及率.        0.98  0.17 0.98 0.0204 1.1
人均域名数.万个      0.96  0.13 0.94 0.0578 1.0
人均网页数.万个      0.98  0.12 0.98 0.0228 1.0
人均网站数.万个      0.99  0.02 0.98 0.0192 1.0
每百户拥有电脑数.台 -0.05 -0.37 0.14 0.8577 1.0
光缆长度.万公里      0.94  0.34 1.00 0.0047 1.3
宽带接入.亿万个      0.98  0.21 1.00 0.0049 1.1

                       ML1  ML2
SS loadings           5.66 0.36
Proportion Var        0.81 0.05
Cumulative Var        0.81 0.86
Proportion Explained  0.94 0.06
Cumulative Proportion 0.94 1.00

a0.varimax$loadings#加载方差贡献率矩阵
Loadings:
                    ML1    ML2   
互联网普及率.        0.976  0.165
人均域名数.万个      0.962  0.132
人均网页数.万个      0.981  0.119
人均网站数.万个      0.990       
每百户拥有电脑数.台        -0.373
光缆长度.万公里      0.939  0.337
宽带接入.亿万个      0.976  0.208

                 ML1   ML2
SS loadings    5.657 0.356
Proportion Var 0.808 0.051
Cumulative Var 0.808 0.859
a0.varimax$weights#加载因子得分系数矩阵
                            ML1        ML2
互联网普及率.        0.18368570 -0.4015310
人均域名数.万个      0.08083919 -0.2136453
人均网页数.万个      0.23189681 -0.6513827
人均网站数.万个      0.43761894 -1.4780887
每百户拥有电脑数.台  0.01333917 -0.0586214
光缆长度.万公里     -0.41866839  3.3847911
宽带接入.亿万个      0.47837088 -0.460756
ma0 <- as.matrix(a0)
stand.ma0 <- scale(ma0,center = TRUE,scale = TRUE)
#数据标准化处理
F1 <- 0.184*stand.ma0[,1]+0.081*stand.ma0[,2]+0.232*stand.ma0[,3]+0.438*stand.ma0[,4]+0.013*stand.ma0[,5]-0.419*stand.ma0[,6]+0.478*stand.ma0[,7]
F2 <- -0.402*stand.ma0[,1]-0.214*stand.ma0[,2]-0.615*stand.ma0[,3]-1.478*stand.ma0[,4]-0.059*stand.ma0[,5]+3.385*stand.ma0[,6]-0.461*stand.ma0[,7]
#分别求出F1和F2两个公共因子的得分
F <- (0.81/0.859)*F1+(0.051/0.859)*F2#根据公式,求出综合因子得分
F
[1] -1.4240173 -1.1363644 -0.7601093 -0.4700832 -0.3066690  0.2791544  0.7210995
 [8]  0.9218127  1.0497400  1.1254366

其中,累计方差为0.859,F1和F2的方差贡献率分别为0.81和0.051。
F1和F2的因子得分求解为因子得分系数矩阵与数据标准化后的原始数据的乘积。

***注:***文中数据指标可从作者主页获取。

;