Lesson 10 : 主成分分析和因子分析

本文介绍了主成分分析(PCA)和因子分析(EFA)在数据处理中的步骤和作用。PCA通过碎石图确定主成分数量,提取并旋转主成分,用于数据降维。EFA则用于发现数据的潜在结构,通过相关系数矩阵和正/斜交结果图判断因子数量。两者都是数据分析中重要的特征选择和简化工具。
摘要由CSDN通过智能技术生成

PCA(数据降维), EFA(发现潜在结构)

一、主成分分析

查看数据是否完整

library(psych)
complete.cases(USJudgeRatings)

Step 1、判断主成分个数: 碎石图

library(psych)
fa.parallel(USJudgeRatings[,-1],fa="pc",n.iter=100,show.legend=F,main="Picture")
# n.iter模拟100个随机数据矩阵推导出特征值均值(虚线)
# fa=主成分(pc),因子(fa),两个(both)
abline(h=1,lty=1,col="black")
# 超过虚线或abline,被选为主成分——得到个数

Step 2、提取主成分

pc <- principal(USJudgeRatings[,-1], nfactors=1, rotate="none") 
# nfactors设置主成分个数
# rotate主成分旋转:"varimax" ;主成分提取不需要旋转,设置成none

主成分旋转
rotate=“none” 不旋转
rotate=“varimax” 方差极大旋转(属于正交旋转的一种)
rotate=“promax” 斜交旋转
显示内容的含义

(1)PC1 栏包含了成分载荷,指观测变量与主成分的相关系数。如果提取不止一个主成分,那么还将会有 PC2 、 PC3 等栏。成分载荷(component loadings)可用来解释主成分的含义。

(2)h2 栏指成分公因子方差,即主成分对每个变量的方差解释度。

(3)u2 栏指成分唯一性,即方差无法被主成分解释的比例(1–h2)

Step 3、获取主成分得分

pc <- principal(USJudgeRatings[,-1], nfactors=1, score=TRUE)
# score=TRUE加上才可以获得成分得分
head(pc$scores)

如果做了旋转(主成分分析基于相关系数矩阵),该怎么确定主成分得分?

rc <- principal(Harman23.cor$cov, nfactors=2, rotate="varimax")
round(unclass(rc$weights), 2)
head(pc$scores)
# 根据显示的系数
PC1 = 0.28*height + 0.30*arm.span + 0.30*forearm + 0.29*lower.leg -
      0.06*weight - 0.08*bitro.diameter - 0.10*chest.girth -
      0.04*chest.width

二、因子分析

Step 1、相关系数矩阵

covariances <- ability.cov$cov # ability.cov是一个包含变量协方差矩阵的数据集
correlations <- cov2cor(covariances) # 把协方差矩阵转化为相关系数矩阵

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

fa.parallel(correlations, n.obs=112, fa="both", n.iter=100,
            main="Scree plots with parallel analysis")

不确定几个因子时,高估因子数通常比低估因子数的结果好。

Step 3、提取公共因子

fa <- fa(correlations, nfactors=2, rotate="none", fm="pa")
# 主轴迭代法 fm="pa" 提取未旋转的因子
# rotate="varimax" "none" "promax"

使用主轴迭代法提取未旋转的因子

Step 4、绘制正/斜交结果图

factor.plot(fa, labels=rownames(fa$loadings))

Step 5、因子得分

fa$weights
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值