【问题标题】:Promax rotation PCA in R color by groupPromax 旋转 PCA 在 R 颜色中按组
【发布时间】:2019-12-13 13:02:11
【问题描述】:

我想对我的数据使用 Promax 进行倾斜 PCA。 看起来许多著名的软件包只处理正交旋转或根本不处理旋转。

我设法使用“Psych”包中的“Principal”来做到这一点:

pca <- principal(DataN[,2:6], nfactors=2, rotate="promax")

我有我需要的东西,2 个相互关联的组件,有 5 个变量。使用biplot(pca),我几乎得到了我想要的图表......除了我想根据分类变量(男性与女性)为我的点着色。 基本上使用 ggplot 我可以继续(DataN,groups = DataN$Gender),它会根据性别自动为我的数据着色。

但这里没有任何效果。我尝试了很多不同的东西,但 promax 旋转似乎只能使用“psych”,这与 ggbiplot 等不兼容。

我对 R 真的很陌生,我发现无法使用传统的“biplot”来做到这一点。有人可以帮忙吗?非常感谢。

编辑: 那么我的数据是这样的:

Sex     numericvar1     numvar2     numvar3     numvar4      numvar5
M          5              7          8            3              2
F          4              4          3            2              5
M          7              5          6            4              3
F          4              6          5            4              3

我的代码很简单:

library(psych)
biplot(principal(myData,nfactors = 2, rotate = "promax"))

【问题讨论】:

标签: r pca


【解决方案1】:

使用新功能时,最好阅读该功能的手册页。在这种情况下,PsyCloot.psych函数在Syct Package中有一个标记的示例,“#Now绘图具有不同颜色和形状的男性和女性”。这个例子有点复杂。这更简单,并使用数据集“虹膜”在三种不同的物种上,但应易于调整:

data(iris)
iris.pca <- principal(iris[, -5], nfactors=2, rotate="promax")
grp <- as.numeric(iris$Species)
biplot(iris.pca, pch=15:17, group=grp)

此绘制三种物种中的每一个使用默认调色板()中的前三种颜色不同的符号和颜色。您必须为PCH =参数中的每个组定义符号,尽管C(16,16,16)将对每个组使用相同的符号。 group= 参数必须标识每个观察的组。

【讨论】:

  • 谢谢,但出于某种原因,它对我不起作用,我一直在获得“胁迫介绍的NAS”。但我找到了解决方案,使用“as.factor(mydata$gender)”而不是“as.numeric”。事实上,我必须填写 pch=argument。谢谢!
  • 显然,性别是一个特征向量。这就是为什么显示数据 - str(数据)或Dutput(数据)的结构非常重要。数据的打印输出没有显示这些重要细节。 span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多