【问题标题】:Rotation in 'FactoMineR' package'FactoMineR' 包中的轮换
【发布时间】:2014-05-10 19:14:06
【问题描述】:

提前致谢。我使用了“FactoMineR”包中的“PCA”函数来获取主成分分数。我已尝试阅读此论坛上的package details 和类似问题,但无法找出旋转提取组件(正交或倾斜)的代码。

我知道“psych”包中的“princomp”函数和“principal”函数具有旋转能力,但我真的很喜欢“PCA”中将变量缩放为单位方差的能力。任何帮助,将不胜感激。谢谢。

【问题讨论】:

  • 啊,又是 PCA 和旋转。也许这篇文章会对你有所帮助。 stats.stackexchange.com/questions/612/…
  • 感谢您的链接。我知道讨论的特定包具有轮换功能,但它们不具备本地缩放变量或包含诸如“PCA”之类的补充数据的能力。我做了一些其他的阅读,发现“prcomp”可以旋转和缩放,但不能包含补充信息。是否在一个功能中提供所有这些能力的一站式服务?谢谢。
  • 这有什么更新吗?我想对混合数据(数字+分类)的结果进行倾斜旋转。 PCAmixdata 包中的 FAMD 和 PCAmix 似乎都支持混合数据,但找不到进行倾斜旋转的好方法。

标签: r rotation factor-analysis


【解决方案1】:

IIUC:

library(FactoMineR)
data(iris)
Iris <- iris[,1:4]
res <- PCA(Iris, graph=F)
#rotation
t(apply(res$var$coord, 1, function(x) {x/sqrt(res$eig[,1])}))
                  Dim.1      Dim.2      Dim.3      Dim.4
Sepal.Length  0.5210659 0.37741762 -0.7195664 -0.2612863
Sepal.Width  -0.2693474 0.92329566  0.2443818  0.1235096
Petal.Length  0.5804131 0.02449161  0.1421264  0.8014492
Petal.Width   0.5648565 0.06694199  0.6342727 -0.5235971

#check
prcomp(Iris, scale=T)
Rotation:
                    PC1         PC2        PC3        PC4
Sepal.Length  0.5210659 -0.37741762  0.7195664  0.2612863
Sepal.Width  -0.2693474 -0.92329566 -0.2443818 -0.1235096
Petal.Length  0.5804131 -0.02449161 -0.1421264 -0.8014492
Petal.Width   0.5648565 -0.06694199 -0.6342727  0.5235971

另一行代码,如果您希望从PCA 对象获取负载:

sweep(res$var$coord, 2, sqrt(res$eig[,1]),'/')

【讨论】:

  • 如何应用 varimax 旋转?
猜你喜欢
  • 1970-01-01
  • 2012-12-26
  • 2015-07-24
  • 2017-05-17
  • 1970-01-01
  • 2012-05-02
  • 2015-07-07
  • 1970-01-01
  • 2016-03-30
相关资源
最近更新 更多