R语言学习笔记——高级篇:第十四章-主成分分析和因子分析

news2024/11/13 10:00:17

R语言

R语言学习笔记——高级篇:第十四章-主成分分析和因子分析


文章目录

  • R语言
  • 前言
  • 一、R中的主成分和因子分析
  • 二、主成分分析
    • 2.1、判断主成分的个数
    • 2.2、提取主成分
    • 2.3、主成分旋转
    • 2.4、获取主成分得分
  • 三、探索性因子分析
    • 3.1、判断需提取的公共因子数
    • 3.2、提取公共因子
    • 3.3、因子旋转
    • 3.4、因子得分
    • 3.5、其他于EFA相关的包


前言

数据降维看主成分分析PCA社会科学的理论研究看探索性因子分析法EFA

一、R中的主成分和因子分析

  • 前景:大数据中含有多变量,使得信息过度复杂,难以完全探究变量之间的交互关系。主成分分析和探索性因子分析是两种用来探索和简化多变量复杂关系的常用方法。
  • 主成分分析(Principal Component Analysis,PCA):一种数据降维技巧,将大量相关变量转化为一组很少的无关变量,这些无关变量被称为主成分(PC1,PC2…)
  • 探索性因子分析法(Exploratory Factor Analysis,EFA):一种发现潜在结构技巧,用于发现一组变量的更小的潜在结构来解释已观测到的显示变量关系。(将多元变量综合为少数几个核心因子)
  • 二者差异
    • PCA主要用于数据降维,进而简化分析过程。
    • EFA是假设生成工具,帮助理解众多变量间的关系,常用于理解社会科学的理论研究。

在这里插入图片描述

  • PCA
    • PC1/2概念:PC1和PC2是观测变量(X1-X5)的线性组合。
    • PC1/2权重:通过最大化个主成分所解释的方差获得,同时保证各主成分间不相关。
  • EFA
    • 概念:因子(F1和F2)是观测变量的结构基础或“原因”
    • 变量方差的误差(e1-e5),因子 (F1和F2)无法被直接观测(⚪表示),F1和F2之间双箭头表示两者可以有关联。
  • 二者共性
    • 需要大样本来支撑稳定结果(因子分析需要5~10倍于变量书的样本数,几百个)
    • 都用于探索和简化多变量复杂关系
  • 基础包中的函数
    • PCA:princomp()
    • EFA:factanal()
  • psych包:具有更丰富的功能
函数功能
principal()含多种可选的方差旋转方法的PCA
fa()可用株洲,最小残差,加权最小平方或最大似然法估计的EFA
fa.parallel()含平行分析的碎石图
factor.plot()绘制PCA或EFA的结果
fa.diagram()绘制PCA或EFA的载荷矩阵
scree()PCA或EFA的碎石图
  • 常见步骤
    • 1.数据预处理:输入原始数据或者相关系数矩阵到principal()或fa()中,数据中不能有缺失值。
    • 2.选择因子模型:选择PCA()数据降维或EFA(发现潜在结构),选EFA还要选一种估计因子模型的方法(入最大似然估计)
    • 3.判断要选择的主成分/因子数目
    • 4.选择主成分/因子
    • 5.旋转主成分/因子
    • 6.解释结果
    • 7.计算主成分/因子得分

二、主成分分析

  • 主成分分析(Principal Component Analysis,PCA):一种数据降维技巧,将大量相关变量转化为一组很少的无关变量,这些无关变量被称为主成分(PC1,PC2…)
  • 主成分:观测变量的线性组合。
  • 公式(以第一主成分为例):PC1=a1X1+a2X2+…+akXk
    • k个观测变量的加权组合
    • 第一主成分PC1对初始变量集的方差解释性最大,第二主成分PC2排第二,同时与PC1正交(意义上表现为两者不相关,数值上表现为内积空间中两向量的内积为0,几何上表现为垂直(所以PC1,PC2绘制为图形后表现为x轴y轴))
    • 只有两个主成分时,数据就会被降为2维,从而绘制为最常见的二维PCA图,当然后面也可以继续添加主成分,且皆于之前所有主成分正交。理论上可以选取于变量数量相同的主成分。

2.1、判断主成分的个数

  • 最常见的办法:基于特征值,每个主成分都与相关系数矩阵的特征值相关联,如第一主成分与最大的特征值先关联,第二主成分与第二大的特征值相关联以此类推。
  • 具体方法:三种特征值判别准测
    • kaiser-harris准则:保留特征值大于1的主成分
    • Cattell碎石检验:绘制主成分数与特征值相关的碎石图,图形变化最大处之上的主成分都可以保存。
    • 平行分析:模拟与初始矩阵相同大小的随机数据矩阵,若基于正式数据的某个特征值大于一组随机数据矩阵相应的平均特征值,则保留该主成分
  • 函数实现psych包fa.parallel()函数 可以同时对上述三种准则进行评价。(不一定三种标准都符合,视情况决定主成分数,拿不准时,选高的数目可以增加解释度)
  • 语法
fa.parallel(x,n.obs=NULL,fm="minres",fa="both",nfactors=1, 
main="Parallel Analysis Scree Plots",
n.iter=20,error.bars=FALSE,se.bars=FALSE,SMC=FALSE,ylabel=NULL,show.legend=TRUE,
sim=TRUE,quant=.95,cor="cor",use="pairwise",plot=TRUE,correct=.5)
  • 示例1
# 以样本数据集USJudgeRatings为例,包含了律师对美国高等法院法官的评分
head(USJudgeRatings)
               CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN
AARONSON,L.H.   5.7  7.9  7.7  7.3  7.1  7.4  7.1  7.1  7.1  7.0  8.3  7.8
ALEXANDER,J.M.  6.8  8.9  8.8  8.5  7.8  8.1  8.0  8.0  7.8  7.9  8.5  8.7
ARMENTANO,A.J.  7.2  8.1  7.8  7.8  7.5  7.6  7.5  7.5  7.3  7.4  7.9  7.8
BERDON,R.I.     6.8  8.8  8.5  8.8  8.3  8.5  8.7  8.7  8.4  8.5  8.8  8.7
BRACKEN,J.J.    7.3  6.4  4.3  6.5  6.0  6.2  5.7  5.7  5.1  5.3  5.5  4.8
BURNS,E.B.      6.2  8.8  8.7  8.5  7.9  8.0  8.1  8.0  8.0  8.0  8.6  8.6
# 去除CONT对剩下11个变量进行评价
library(psych)
fa.parallel(USJudgeRatings[,-1],fa = "pc",n.iter = 100,main = "Scree plot with parallel analysis")
abline(h = 1)
# fa:显示主成分 (fa=“pc”) 或主轴因子分析 (fa=“fa”) 或主成分和主因子(fa=“both”)的特征值
# n.iter:要执行的模拟分析数

在这里插入图片描述

  • 示例2
# Harman23.cor数据集内包含305个女孩的8个身体测量指标,Harman23.cor$cov为相关系数矩阵
> head(Harman23.cor$cov)
               height arm.span forearm lower.leg weight bitro.diameter chest.girth chest.width
height          1.000    0.846   0.805     0.859  0.473          0.398       0.301       0.382
arm.span        0.846    1.000   0.881     0.826  0.376          0.326       0.277       0.415
forearm         0.805    0.881   1.000     0.801  0.380          0.319       0.237       0.345
lower.leg       0.859    0.826   0.801     1.000  0.436          0.329       0.327       0.365
weight          0.473    0.376   0.380     0.436  1.000          0.762       0.730       0.629
bitro.diameter  0.398    0.326   0.319     0.329  0.762          1.000       0.583       0.577

library(psych)
fa.parallel(Harman23.cor$cov,n.obs = 302,fa = "pc",n.iter = 100,show.legend = F, main = "Scree plot with parallel analysis")
abline(h = 1)

在这里插入图片描述

2.2、提取主成分

  • 确定主成分数量后就需要提取主成分
  • 函数psych包principal()
  • 功能:根据相关系数矩阵或原始数据矩阵进行主成分分析
  • 语法
principal(r,nfactors = ,rotate = ,scores = )
# r是相关系数矩阵或原始数据矩阵
# nfactors设定主成分数(默认为1)
# rotate指定旋转的方法(默认为varimax)
# 具体为"none", "varimax", "quartimax", "promax", "oblimin", "simplimax", and "cluster" 
# scores设定为是否需要计算主成分得分(默认为否FALSE)
  • 示例1
> library(psych)
> principal(USJudgeRatings[,-1])



Principal Components Analysis
Call: principal(r = USJudgeRatings[, -1])
Standardized loadings (pattern matrix) based upon correlation matrix
# PCA只对相关系数矩阵进行分析,所以其会对原始数据进行转化

      PC1   h2     u2 com
INTG 0.92 0.84 0.1565   1
DMNR 0.91 0.83 0.1663   1
DILG 0.97 0.94 0.0613   1
CFMG 0.96 0.93 0.0720   1
DECI 0.96 0.92 0.0763   1
PREP 0.98 0.97 0.0299   1
FAMI 0.98 0.95 0.0469   1
ORAL 1.00 0.99 0.0091   1
WRIT 0.99 0.98 0.0196   1
PHYS 0.89 0.80 0.2013   1
RTEN 0.99 0.97 0.0275   1
# PC1栏:成分载荷,指观测变量与主成分的相关系数(根据主成分数增加而增加)
  # 成分载荷用于解释主成分的含义,其与每个变量高度相关
# h2栏:公因子方差,指主成分对每个变量的方差解释度
# u2栏:成分唯一性,指方差无法被主成分解释的比例(1-h2)
  # 示例:PHYS这栏80%的方差都可以用PC1解释(h2=0.8),20%不能(u2=0.2013)。相对其他变量,该变量用PC1表示性最差。

                 PC1
SS loadings    10.13
Proportion Var  0.92
# SS loadings行包含了与主成分相关联的特征值,指与特定主成分相关联的标准化后的方差值(本例种,PC1的值为10.55)
# Proportion Var行表示每个主成分对整个数据集的解释程度(h2的均值)

Mean item complexity =  1
Test of the hypothesis that 1 component is sufficient.

The root mean square of the residuals (RMSR) is  0.04 
 with the empirical chi square  6.21  with prob <  1 

Fit based upon off diagonal values = 1
  • 示例2
> library(psych)
> principal(Harman23.cor$cov,nfactors = 2,rotate = "none")

Principal Components Analysis
Call: principal(r = Harman23.cor$cov, nfactors = 2, rotate = "none")
Standardized loadings (pattern matrix) based upon correlation matrix
                PC1   PC2   h2    u2 com
height         0.86 -0.37 0.88 0.123 1.4
arm.span       0.84 -0.44 0.90 0.097 1.5
forearm        0.81 -0.46 0.87 0.128 1.6
lower.leg      0.84 -0.40 0.86 0.139 1.4
weight         0.76  0.52 0.85 0.150 1.8
bitro.diameter 0.67  0.53 0.74 0.261 1.9
chest.girth    0.62  0.58 0.72 0.283 2.0
chest.width    0.67  0.42 0.62 0.375 1.7

                       PC1  PC2
SS loadings           4.67 1.77
Proportion Var        0.58 0.22
Cumulative Var        0.58 0.81 # Proportion Var累计值(PCn值之和,这里表示PC1与PC2总共解释了81%的方差)
Proportion Explained  0.73 0.27 # 各个主成分的占比权重
Cumulative Proportion 0.73 1.00 # 占比权重的累计 

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

The root mean square of the residuals (RMSR) is  0.05 

Fit based upon off diagonal values = 0.99

2.3、主成分旋转

  • 概述:一系列将成分载荷变得更容易解释的数学方法,尽可能的对成分去噪
  • 方法
    • 正交旋转:使选择的成分保持不相关
      • 最常用的正交旋转:方差极大旋转(varimax),对成分载荷去噪,使每个成分只有一组有限的变量来解释(既载荷阵列每列只有少数几个很大的载荷,其他都很小,详见示例)
    • 斜交旋转:使选择的成分变得相关
  • 函数psych包principal()
  • 参数rotate指定旋转的方法(默认为varimax)
    • 具体方法:“none”, “varimax”, “quartimax”, “promax”, “oblimin”, “simplimax”, and “cluster”
  • 示例
> library(psych)
> principal(Harman23.cor$cov,nfactors = 2)
Principal Components Analysis
Call: principal(r = Harman23.cor$cov, nfactors = 2)
Standardized loadings (pattern matrix) based upon correlation matrix
                RC1  RC2   h2    u2 com  # PC1,PC2变成了RC1,RC2,表示成分被旋转
height         0.90 0.25 0.88 0.123 1.2  # RC1表示PC1由前四个变量来解释,RC2表示PC2由后四个变量来解释
arm.span       0.93 0.19 0.90 0.097 1.1
forearm        0.92 0.16 0.87 0.128 1.1
lower.leg      0.90 0.22 0.86 0.139 1.1
weight         0.26 0.88 0.85 0.150 1.2
bitro.diameter 0.19 0.84 0.74 0.261 1.1
chest.girth    0.11 0.84 0.72 0.283 1.0
chest.width    0.26 0.75 0.62 0.375 1.2

                       RC1  RC2
SS loadings           3.52 2.92
Proportion Var        0.44 0.37 # 各个主成分的方差解释度趋同
Cumulative Var        0.44 0.81 # 累计方差解释性没有改变
Proportion Explained  0.55 0.45
Cumulative Proportion 0.55 1.00
# 由于失去了单个主成分方差最大化性质,此时RC1.RC2已经不能被称为主成分,仅为成分。

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

The root mean square of the residuals (RMSR) is  0.05 

Fit based upon off diagonal values = 0.99

2.4、获取主成分得分

  • 概述:获取每个对象在该主成分上的的得分。
  • 函数psych包principal()
  • 参数scores设定为是否需要计算主成分得分(默认为否FALSE),存储在函数返回对象的scores元素中,只有输入原始数据才可以获得得分。
  • 示例1
> library(psych)
> pca <- principal(USJudgeRatings[,-1],scores = T)
> head(pca$scores)
                      PC1
AARONSON,L.H.  -0.1857981
ALEXANDER,J.M.  0.7469865
ARMENTANO,A.J.  0.0704772
BERDON,R.I.     1.1358765
BRACKEN,J.J.   -2.1586211
BURNS,E.B.      0.7669406
  • 示例2:输入为相关系数矩阵,需要利用得分系数(标准的回归权重,存储在返回对象的weights元素中)
library(psych)
rc <- principal(Harman23.cor$cov,nfactors = 2)
round(unclass(rc$weights),2)

                 RC1   RC2
height          0.28 -0.05
arm.span        0.30 -0.08
forearm         0.30 -0.09
lower.leg       0.28 -0.06
weight         -0.06  0.33
bitro.diameter -0.08  0.32
chest.girth    -0.10  0.34
chest.width    -0.04  0.27

# 通过PC1=0.28*height+0.30*arm.span+...+-0.04*chest.width来获取主成分得分。
# 可以进一步简化,对于PC1可以只看作前四个变量标准化得分的均值,对于PC2为后四个

三、探索性因子分析

  • 探索性因子分析法(Exploratory Factor Analysis,EFA):通过挖掘隐藏在数据下的一组较少的更为基本的无法被观测的变量来解释一组可观测的变量的相关性。
  • 因子(公共因子):无法被观测的变量,用于解释多个观测变量间共有的方差
  • 公式:Xi=a1F1+a2F2+…+apFp+Ui
    • Xi为第i个可观测变量(i=1,2…k),Fj是公共因子(j=1,2…p,p<k),Ui是Xi变量独有的部分(无法被公共因子解释的部分),ai每个因子对复合而成的可观测变量的贡献值
  • 分析步骤:EFA的步骤与PCA及其相似。

3.1、判断需提取的公共因子数

  • 具体方法:特征值判别准测(和PCA的不同之处在于,kaiser-harris准则:保留特征值大于0的主成分。)
  • 函数psych包fa.parallel()函数
  • 示例
library(psych)
# 数据集ability.cov中提供了变量的协方差矩阵,有112个样本
correlations <- cov2cor(ability.cov$cov)
# cov2cor()函数将协方差矩阵转化为相关系数矩阵(无缺失值)
fa.parallel(correlations,fa = "both",n.obs = 112,n.iter = 100,main = "Scree plot with parallel analysis")
abline(h = 0)

在这里插入图片描述

  • 图解:参数选择both会同时显示PCA与EFA的碎石图
    • PCA的结果看来可能选择一个(Cattell碎石检验,平行分析)或两个主成分(kaiser-harris准则),这时候两个(高估因子)可以更好的解释方差
    • EFA的结果显然需要提取两个(特征值大于0)

3.2、提取公共因子

  • 函数psych包fa()
  • 功能:根据相关系数矩阵或原始数据矩阵进行主成分分析
  • 语法
fa(r,nfactors = ,rotate = ,scores = ,n.obs = ,fm = )
# r是相关系数矩阵或原始数据矩阵
# nfactors设定因子数(默认为1)
# rotate指定旋转的方法(默认为互变异数最小法)
  # 具体为正交:"none", "varimax", "quartimax", "bentlerT", "equamax", "varimin", "geominT" and "bifactor" 
  # 斜交:"Promax", "promax", "oblimin", "simplimax", "bentlerQ, "geominQ" and "biquartimin" and "cluster" 
# scores设定为是否需要计算主成分得分(默认为否FALSE)
# n.obs观测数(输入相关系数矩阵时需要)
# fm设定因子化方法(默认极小残差法) 
 # 具体为:最大似然法(ml),主轴迭代法(pa),加权最小二乘法(wls),广义甲醛最小乘法(gls)和最小残差法(minres)
  #最常用的为最大似然法(ml),当它出现不收敛的情况时使用主轴迭代法(pa)。
  • 示例
> library(psych)
> # 数据集ability.cov中提供了变量的协方差矩阵,有112个样本
> correlations <- cov2cor(ability.cov$cov)
> # 未旋转(none)的主轴迭代法(pa)
> fa(correlations,nfactors = 2,rotate = "none",fm = "pa")

Factor Analysis using method =  pa
Call: fa(r = correlations, nfactors = 2, rotate = "none", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
         PA1   PA2   h2    u2 com
general 0.75  0.07 0.57 0.432 1.0
picture 0.52  0.32 0.38 0.623 1.7
blocks  0.75  0.52 0.83 0.166 1.8
maze    0.39  0.22 0.20 0.798 1.6
reading 0.81 -0.51 0.91 0.089 1.7
vocab   0.73 -0.39 0.69 0.313 1.5

                       PA1  PA2
SS loadings           2.75 0.83
Proportion Var        0.46 0.14
Cumulative Var        0.46 0.60
Proportion Explained  0.77 0.23
Cumulative Proportion 0.77 1.00

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

The degrees of freedom for the null model are  15  and the objective function was  2.48
The degrees of freedom for the model are 4  and the objective function was  0.07 

The root mean square of the residuals (RMSR) is  0.03 
The df corrected root mean square of the residuals is  0.06 

Fit based upon off diagonal values = 0.99
Measures of factor score adequacy             
                                                   PA1  PA2
Correlation of (regression) scores with factors   0.96 0.92
Multiple R square of scores with factors          0.93 0.84
Minimum correlation of possible factor scores     0.86 0.68

3.3、因子旋转

  • 概述:一系列将因子载荷变得更容易解释的数学方法,尽可能的对成分去噪
  • 方法
    • 正交旋转:使选择的因子保持不相关
      • 最常用的正交旋转:方差极大旋转(varimax),对因子载荷去噪,使每个因子只有一组有限的变量来解释(既载荷阵列每列只有少数几个很大的载荷,其他都很小,详见示例)
    • 斜交旋转:使选择的因子变得相关
  • 函数psych包fa()
  • 参数rotate指定旋转的方法(默认为varimax)
    • 具体方法
      • 正交:“none”(不旋转), “varimax”, “quartimax”, “bentlerT”, “equamax”, “varimin”, “geominT” and “bifactor”
      • 斜交:“Promax”, “promax”, “oblimin”, “simplimax”, "bentlerQ, “geominQ” and “biquartimin” and “cluster”
  • 示例1:正交旋转法提取因子(因子间会不相关)
> fa.varimax <- fa(correlations,nfactors = 2,rotate = "varimax",fm = "pa")
> fa.varimax
Factor Analysis using method =  pa
Call: fa(r = correlations, nfactors = 2, rotate = "varimax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
         PA1  PA2   h2    u2 com
general 0.49 0.57 0.57 0.432 2.0
picture 0.16 0.59 0.38 0.623 1.1
blocks  0.18 0.89 0.83 0.166 1.1
maze    0.13 0.43 0.20 0.798 1.2
reading 0.93 0.20 0.91 0.089 1.1
vocab   0.80 0.23 0.69 0.313 1.2

                       PA1  PA2
SS loadings           1.83 1.75
Proportion Var        0.30 0.29
Cumulative Var        0.30 0.60
Proportion Explained  0.51 0.49
Cumulative Proportion 0.51 1.00

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

The degrees of freedom for the null model are  15  and the objective function was  2.48
The degrees of freedom for the model are 4  and the objective function was  0.07 

The root mean square of the residuals (RMSR) is  0.03 
The df corrected root mean square of the residuals is  0.06 

Fit based upon off diagonal values = 0.99
Measures of factor score adequacy             
                                                   PA1  PA2
Correlation of (regression) scores with factors   0.96 0.92
Multiple R square of scores with factors          0.91 0.85
Minimum correlation of possible factor scores     0.82 0.71
  • 说明:reading和vocab在PA1上载荷较大,picture,blocks和maze在PA2上载荷较大,general(对非语言的普通智力测验)在PA1和PA2上比较平均说明存在一个语言智力因子一个非语言智力因子。

  • 示例2:斜交旋转法提取因子(因子间会相关)

> install.packages("GPArotation")
> library(GPArotation)
# GPArotation is required for the Kaiser normalization
> fa.promax <- fa(correlations,nfactors = 2,rotate = "promax",fm = "pa")
> fa.promax


Factor Analysis using method =  pa
Call: fa(r = correlations, nfactors = 2, rotate = "promax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
          PA1   PA2   h2    u2 com  # PA1   PA2两列构成了因子模式矩阵
general  0.37  0.48 0.57 0.432 1.9
picture -0.03  0.63 0.38 0.623 1.0
blocks  -0.10  0.97 0.83 0.166 1.0
maze     0.00  0.45 0.20 0.798 1.0
reading  1.00 -0.09 0.91 0.089 1.0
vocab    0.84 -0.01 0.69 0.313 1.0

                       PA1  PA2
SS loadings           1.83 1.75
Proportion Var        0.30 0.29
Cumulative Var        0.30 0.60
Proportion Explained  0.51 0.49
Cumulative Proportion 0.51 1.00

 With factor correlations of  # 因子关联矩阵
     PA1  PA2
PA1 1.00 0.55                 # 两因子相关系数有0.55,相关性很大
PA2 0.55 1.00                 # 如果因子关联很低就要重新使用正交旋转来简化

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

The degrees of freedom for the null model are  15  and the objective function was  2.48
The degrees of freedom for the model are 4  and the objective function was  0.07 

The root mean square of the residuals (RMSR) is  0.03 
The df corrected root mean square of the residuals is  0.06 

Fit based upon off diagonal values = 0.99
Measures of factor score adequacy             
                                                   PA1  PA2
Correlation of (regression) scores with factors   0.97 0.94
Multiple R square of scores with factors          0.93 0.88
Minimum correlation of possible factor scores     0.86 0.77
  • 正交斜交旋转二者差异
    • 正交旋转:因子分析的重点在因子结构矩阵(变量与因子的相关系数)
    • 斜交旋转:因子分析会考虑因子结构矩阵,因子模式矩阵(标准化的回归矩阵),因子关联矩阵(因子相关系数矩阵)
      • 如果因子关联很低就要重新使用正交旋转来简化
      • 因子模式矩阵,因子关联矩阵已经在斜交旋转中列出
      • 公式F=P*Phi 获得因子结构矩阵(F为因子载荷阵,P为因子模式矩阵,Phi为因子关联矩阵)
      • 示例
fsm <- function(oblique){
  if(class(oblique)[2]=="fa" & is.null(oblique$Phi)){
    warning("Object doesn't look like oblique EFA")
  }else{
    P <- unclass(oblique$loading)
    F <- P %*% oblique$Phi
    colnames(F) <- c("PA1","PA2")
    return(F)
  }
}

> fsm(fa.promax)  # 因子结构矩阵,变量与因子的相关系数
              PA1       PA2 # 因为允许了潜在因子相关,所以载荷阵列的噪音较大(不如正交的差距明显),但更符合实际情况
general 0.6362443 0.6879280
picture 0.3203301 0.6137902
blocks  0.4293252 0.9089946
maze    0.2491789 0.4496446
reading 0.9510795 0.4587468
vocab   0.8287066 0.4476297
  • 绘制旋转后图形函数fa.diagram()或factor.plot()
  • 示例
factor.plot(fa.promax)

在这里插入图片描述

fa.diagram(fa.promax,simple = F)
# simple = T(默认)时,仅显示每个因子下最大的载荷,以及因子间的相关系数。

在这里插入图片描述

3.4、因子得分

  • 差异:相较于PCA,EFA不怎么关注因子得分。主成分分析的得分是精确计算得到的,因子分析的得分是估计得到的。
  • 函数psych包fa()
  • 参数scores设定为是否需要计算主成分得分(默认为否FALSE),得分系数(标准化的回归权重)存放在函数返回对象的weights元素中。
  • 示例
> fa.promax$weights
> 
               PA1        PA2
general 0.07836571 0.21091463
picture 0.02000694 0.09038071
blocks  0.03662858 0.70209400
maze    0.02700266 0.03453381
reading 0.74276722 0.03012597
vocab   0.17683183 0.03583324

3.5、其他于EFA相关的包

  • FactoMineR包:提供了PCA和EFA方法,包含有潜变量模型,可以区分数值型变量与类别行变量
  • FAiR包:使用遗传算法来估计因子分析模型,增强了模型参数估计能力,能处理不等式的约束条件。
  • GPArotation包:含有许多因子旋转方法
  • nFactors包:包含判断因子数目的许多复杂算法
  • EFA只是统计中的一种应用广泛的潜变量模型,含有其他的潜变量模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/99724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uboot启动流程

目录 1. 从汇编到C语言 1. 从汇编到C语言 uboot整个程序的入口是 ./arch/arm/lib/vectors.S 的 start 其中&#xff0c;reset 来自于 ./arch/arm/cpu/armv7/start.S&#xff0c; ./arch/arm/cpu/armv7/start.S 程序的执行路径为 reset --> save_boot_params_ret --> cp…

【C语言数据结构(基础版)】第四站:栈和队列

目录 一.栈的表示和实现 1.栈的概念及结构 2.栈的实现 二、栈的实现 1.栈的声明和定义 2.栈的初始化 3.栈的销毁 4.入栈 5.出栈 6.返回栈顶元素 7.返回栈的元素个数 8.栈是否为空 9.测试 三、栈的完整代码 四、队列的表示和实现 1.队列的概念和结构 2.队列的实现…

光环:工业互联网探索及案例——杨宝刚

摘要&#xff1a;文章内容主要来源于光环国际2022年第三届中国科创者大会杨宝刚老师的分享&#xff0c;原分享名称为"工业互联网助力企业数智化转型"。讲述了工业互联网概念及用友锅炉的一个实例运用。业互联网是一个整合平台&#xff0c;把你的需求告诉平台&#xf…

比亚迪携手亚洲足球小姐王霜发布品牌广告:为梦想,一路向前

在世界杯进入半决赛的最后一天——12月15日&#xff0c;比亚迪发布了全新的品牌宣传片《为梦想&#xff0c;一路向前》&#xff1a;携手亚洲足球小姐王霜&#xff0c;通过足球与梦想的故事&#xff0c;向每一位勇敢前行的追梦人致敬。业内几乎所有人都肯定了此次合作&#xff0…

java基于微信小程序的点餐系统-计算机毕业设计

开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;…

JavaEE【Spring】:SpringMVC 程序开发

文章目录一、概念1、MVC 定义2、MVC 和 Spring MVC 的关系3、Spring MVC 和 Spring 的关系二、Spring MVC 创建和连接1、创建 Spring MVC 项目① 对比② 注意2、RequestMapping 注解介绍3、RequestMapping 是 post 还是 get 请求&#xff1f;① GET② POST4、GetMapping 和 Pos…

Transformer16 ~Robotics

还是Transformer相关 ,谷歌机器人团队等提出了 Robotics Transformer 1 (RT-1)。这是一种多任务模型&#xff0c;可以 tokenize 机器人的输入和输出动作&#xff0c;从而在运行时实现高效推理&#xff0c;使实时控制成为可能。 论文 1&#xff1a;RT-1: Robotics Transformer …

最强工程项目进度计划管理系统Oracle Primavera P6软件最新版本 22.12发布啦,新特征介绍

目录 一&#xff1a;前言 二&#xff1a;P6 22.12 新特征&#xff08;EN&#xff09; 三&#xff1a;P6 22.12 新特征&#xff08;CN&#xff09; 一&#xff1a;前言 近日&#xff0c;甲骨文(Oracle)公司发布了最新版本Primavea P6 2022版&#xff0c;最新版本号 22.12 Or…

day23 整合xxl-job上传近三天秒杀商品

整合xxl-job 1.部署调度中心 将doc目录下的sql脚本导入数据库 修改日志位置 maven打包mvn pageage -Dmaven.skip.testtrue 后台方式启动 nohup java -jar xxl-job-admin-2.3.0.jar > tag-web.log 2>&1 & 访问localhost:端口/xxl-job-admin 2.部署执行器…

[附源码]Nodejs计算机毕业设计基于疫情防控的超市管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

Innodb存储引擎-表(约束、视图、物化视图、分区表)

文章目录约束(数据完整性)视图物化视图分区表概述分区类型子分区分区和性能在表和分区间交换数据约束(数据完整性) 关系型数据库系统和文件系统的一个不同点是&#xff0c;关系数据库本身能保证存储数据的完整性&#xff0c;不需要应用程序的控制&#xff0c;而文件系统一般需…

ArcGIS Pro 加载项(6)——样式符号属性对调

之前是已经通过Python构建脚本工具&#xff0c;实现了stylx文件的符号属性的对调。 ArcGIS Pro脚本工具&#xff08;12&#xff09;——样式符号属性对调_学学GIS的博客-CSDN博客为地类做样式符号匹配经常碰到这样的问题&#xff1a;属性表里面只有地类代码&#xff0c;但是做…

win10+VS2017+OpenGL ES3.0 环境配置 源码编译及示例运行

win10VS2017OpenGL ES3.0 环境配置 源码编译及示例运行 win10VS2017OpenGL ES3.0 环境配置 源码编译及示例运行 本人参考其他人的博客内容学习opengles3.0编程指南&#xff0c;并在win10系统上用VS2017对OpenGL ES3.0 进行了实际的环境配置及源码编译。 一、环境准备工作 1…

Java项目:SSM网上药品销售商城网站系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本系统分为前后台&#xff0c;分为管理员与普通用户两种角色&#xff0c;前台由普通用户登录&#xff0c;后台由管理员登录&#xff1b; 管理员…

架构师必读 —— 逻辑模型(3)

逻辑思考总是从提问“为什么”开始 培养逻辑思考习惯的捷径之一&#xff0c;就是经常问自己“为什么”。无论收到什么信息&#xff0c;都应该试着问一句“为什么”。 举个例子&#xff0c;A公司收购了其他竞争公司。为什么会收购呢&#xff1f; 这其中隐藏着A公司的发展战略。另…

闲置物品交易系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 基于55m闲置物品交易系统 网站前台&#xff1a;关于我们、联系我们、公告信息、闲置物品、求购信息 管理员功能&#xf…

多态的学习

目录什么是多态多态有啥限制条件吗&#xff1f;重写向下转型和向上转型向上转型向下转型多态的优点多态缺陷避免在构造方法中调用重写的方法什么是多态 多态的概念&#xff1a;就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。 举个例子大家就知道了&…

vue router动态路由与路由的匹配

vue router动态路由与路由的匹配&#xff0c;路由使用正则语法 一、动态路由 1.1 新建一个 user.vue文件 在views文件夹&#xff0c;新建一个user.vue文件 <template><div>用户{{id}}</div> </template><script setup>import { useRoute } from…

SAP ABAP Algorithm 计算一组数据样本的常用统计值(最大值/最小值 /平均值/中位数/众数/总数/方差/标准差 )

SAP ABAP Algorithm 计算一组数据样本的常用统计值(最大值/最小值 /平均值/中位数/众数/总数/方差/标准差 ) 引言&#xff1a; 这是统计学常用统计值的 ABAP 实现&#xff0c;这些统计值可以用在一些统计分析型报表中。 关键字&#xff1a;SAP ABAP Algorithm 算法 统计值 文…

Pytest测试框架(4):conftest.py文件应用---实现数据共享

conftest.py文件&#xff1a; pytest中的fixture是pytest用于将测试前后进行预备&#xff0c;清理工作的代码分离出核心测试逻辑的一种机制。但是我们更加希望的是在一个测试套件中&#xff0c;能够共享fixture的机制&#xff0c;这样一个测试套件里面的所有测试点都能够共同使…