假设我进行了因子分析并得到了 5 个相关因子。现在,我想以图形方式表示这些因素对变量的加载。任何人都可以请告诉我该怎么做。我可以使用 2 个因素。但是当因子数超过 2 时就无法做到。

2 因子绘图在“Modern Applied Statistics with S”中给出,图 11.13。我想创建类似的图表,但有 2 个以上的因素。请找到上面提到的图的快照:

X & y 轴是 2 个因素。

问候,
阿里

最佳答案

当心 :不是您正在寻找的答案,也可能不正确,这是我的主观想法。

我认为您遇到了在二维屏幕/纸上绘制多个尺寸的问题。
我会说绘制更多因子或 PC 的载荷是没有意义的,但如果你真的坚持:显示前两个(基于特征值)或只创建 2 个因子。或者您也可以通过其他方法(例如 MDS)减少维度。

在 3 维图中显示 3 个因素的载荷将很难清楚,更不用说更多因素了。

更新 :我有一个关于尝试变得更切题的梦想:)

正如@joran 指出的那样,您可以轻松地显示每个 pairs 因子的投影(我不在这里处理旋转):

f <- factanal(mtcars, factors=3)
pairs(f$loadings)



通过这种方式,您可以显示更多因素并能够调整情节,例如:
f <- factanal(mtcars, factors=5)
pairs(f$loadings, col=1:ncol(mtcars), upper.panel=NULL, main="Factor loadings")
par(xpd=TRUE)
legend('topright', bty='n', pch='o', col=1:ncol(mtcars), attr(f$loadings, 'dimnames')[[1]], title="Variables")

当然,您也可以通过自定义下方的三角形,或在上方的三角形中显示并在右侧/下方附加图例等来添加旋转矢量。

或者,如果您的因子不超过 3 个,只需将变量指向 3D 散点图:
library(scatterplot3d)
f <- factanal(mtcars, factors=3)
scatterplot3d(as.data.frame(unclass(f$loadings)), main="3D factor loadings", color=1:ncol(mtcars), pch=20)

注意:变量名称不应该作为标签放在绘图上,但在我看来,变量名称可能会成为一个独特的图例,特别是对于 3D 绘图。

关于r - 绘制超过 2 个因素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6849748/

10-12 17:54