【问题标题】:How do you use a correlation matrix as the input into princomp() in R您如何使用相关矩阵作为 R 中 princomp() 的输入
【发布时间】:2014-03-30 03:50:19
【问题描述】:

我有一个表示大型数据集的相关矩阵的数据框:

> data
   V1    V2    V3    V4    V5    V6    V7    V8
1 1.000 0.846 0.805 0.859 0.473 0.398 0.301 0.382
2 0.846 1.000 0.881 0.826 0.376 0.326 0.277 0.415
3 0.805 0.881 1.000 0.801 0.380 0.319 0.237 0.345
4 0.859 0.826 0.801 1.000 0.436 0.329 0.327 0.365
5 0.473 0.376 0.380 0.436 1.000 0.762 0.730 0.629
6 0.398 0.326 0.319 0.329 0.762 1.000 0.583 0.577
7 0.301 0.277 0.237 0.327 0.730 0.583 1.000 0.539
8 0.382 0.415 0.345 0.365 0.629 0.577 0.539 1.000

我想使用 {stats} 中的 princomp() 进行主成分分析 我尝试阅读可用的文档,并得到:

myPCA <- princomp(~V1+V2+V3+V4+V5+V6+V7+V8, data=data, covmat=data)

但这与我离开最后一个参数时没有什么不同。 请告知正确使用 princomp() 参数的方法。

【问题讨论】:

标签: r pca princomp


【解决方案1】:

您可能想尝试使用psych 包下的principal 函数。 https://personality-project.org/r/html/principal.html.

以下是http://www.statmethods.net/advstats/factor.html的摘录

 # Principal Axis Factor Analysis
 library(psych)
 fit <- principal(mydata, nfactors=5, rotate="varimax")
 fit # print results

mydata 可以是原始数据矩阵或协方差矩阵。

【讨论】:

    【解决方案2】:

    您可以考虑使用eigen 函数,该函数将产生相关矩阵的特征值(相当于princomp 产生的sdev 的平方)以及特征向量(相当于princomp 产生的载荷)。

    电话只是:

    myPCA <- eigen(data)
    myPCA$values
    myPCA$vectors
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2023-01-07
      相关资源
      最近更新 更多