对比主成分分析与因子分析

https://zhuanlan.zhihu.com/p/37755749

主成分分析步骤:

  • 选取初始变量
  • 根据初始变量特性选择使用协方差矩阵还是相关矩阵来求主成分
  • 计算协方差矩阵或相关矩阵的特征值和特征向量
  • 确定主成分个数
  • 对主成分做经济解释,主成分的经济意义由各线性组合中权重较大的几个指标来确定

因子分析步骤:

  • 选择分析变量
  • 计算原始变量的相关系数矩阵
  • 提取公因子
    • 取方差(特征值)大于0的因子
    • 因子的累积方差贡献率达到80%
  • 因子旋转
    • 因子的实际意义更容易解释

计算因子得分


主成分分析步骤:

分析前,先进行相关性检验,变量之间存在较强相关性,才能使用主成分分析方法。

cor()

1)获取初始数据,统一量纲,将数据进行标准化处理

scale( data )

2)计算相关系数矩阵,求得特征值和特征向量

cor()

eigen( cor() )

$values ; $vectors

3)确定主成分个数

psych:: fa.parallel( scale(), fa="pc" )

abline(h=1)

4)提取主成分

principal( scale(), nfactors=3, rotate="varimax", scores=T )

$cumulative var

计算各主成分

RCi= ∑ ( RCij * Xj )

绘制主成分分析载荷矩阵,查看各个主成分综合构成变量

fadiagram(  principal( scale(), nfactors=3, rotate="varimax", scores=T )  ,digits=2  )

5)将原数据分别按第一,第二,第三主成分得分排序,观察各地区主要受哪个主成分影响

View(   data[ order ( data$ RCi , decreasing=T ), ]   )


因子分析步骤:

1)数据标准化处理,计算相关系数矩阵,求特征值及特征向量

scale( data ); cor();  eigen( cor() )$values ; eigen( cor() )$vectors

2)确定因子个数

psych:: fa.parallel( scale(), fa="???" )

abline(h=1)

3)提取公共因子,使用fa()函数获得相应结果

fa(  cor()  ,nfactors=3  ,rotate="varimax"  ,fm="pa"  )

4)使用fa.diagram()函数绘制正交旋转结果的图形

fa.diagram(  fa()  ,simple=TRUE  )


主成分分析载荷矩阵图 与 因子分析正交旋转结果图 对比

https://zhuanlan.zhihu.com/p/37755749 感谢原作者 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主成分分析(PCA)和因子分析(FA)是常用的数据降维方法。它们可以通过将高维数据映射到低维空间来简化数据,同时保留数据中的主要信息。下面是一个简单的实例操作。 假设我们有一个包含5个变量的数据集,我们想对这些变量进行PCA和FA分析。 首先,我们需要导入数据并进行预处理。我们可以使用Python中的pandas和sklearn库来完成这项工作。 ```python import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA, FactorAnalysis # 导入数据 data = pd.read_csv('data.csv') # 标准化数据 scaler = StandardScaler() data_scaled = scaler.fit_transform(data) # 创建PCA对象并拟合数据 pca = PCA(n_components=2) pca.fit(data_scaled) pca_data = pca.transform(data_scaled) # 创建因子分析对象并拟合数据 fa = FactorAnalysis(n_components=2) fa.fit(data_scaled) fa_data = fa.transform(data_scaled) ``` 在这个例子中,我们首先导入数据,然后使用StandardScaler来对数据进行标准化。接下来,我们创建了两个对象,一个是PCA对象,另一个是FA对象。我们将这些对象拟合到标准化后的数据上,并使用transform方法将数据映射到新的低维空间中。 最后,我们可以将结果可视化,以便更好地理解数据的结构。 ```python import matplotlib.pyplot as plt # 绘制PCA结果 plt.scatter(pca_data[:, 0], pca_data[:, 1]) plt.title('PCA Results') plt.show() # 绘制因子分析结果 plt.scatter(fa_data[:, 0], fa_data[:, 1]) plt.title('Factor Analysis Results') plt.show() ``` 上述代码将PCA和FA分析的结果分别绘制出来。通过比较这两个图像,我们可以看到它们的差异以及每个方法如何在不同方面捕获数据的结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值