【问题标题】:Eliminating arrows from a factor analysis Biplot {psych} in R从 R 中的因子分析 Biplot {psych} 中消除箭头
【发布时间】:2015-02-15 02:40:18
【问题描述】:

在以下代码生成的biplot 中,我试图摆脱红线。如果有人能提供帮助,我将不胜感激。

library(psych)
data(bfi)
fa2 <- fa(bfi[16:25],2)  #factor analysis
fa2$scores <- fa2$scores[1:100,]  #just take the first 100
biplot(fa2,pch=c(24,21)[bfi[1:100,"gender"]],bg=c("blue","red")[bfi[1:100,"gender"]],
main="Biplot of Conscientiousness and Neuroticism by gender")

【问题讨论】:

  • 您查看过biplot 帮助页面吗?似乎var.axes = FALSE 可能是一个明显的候选人。
  • 我做到了,我希望它可以工作,但它没有/或者我错过了某事。
  • 好吧,请更新您的问题以包含reproducible example。由于没有样本数据,我们无法运行完全相同的命令并获得相同的结果,因此很难提供帮助。
  • 我真的很抱歉...第一行表明数据集丢失。我的错。刚刚编辑了代码。
  • 鉴于有至少 九个不同的包(和stats有两个不同的)与一个名为biplot的函数你至少可以提供一些上下文。

标签: r factor-analysis


【解决方案1】:

无论出于何种原因,psych 库决定重写它自己的双标图,因此它忽略了许多标准参数。您可以创建自己的版本,只需删除箭头图。这种方法有点老套,但用psych_1.4.5 进行了测试。只需验证

body(biplot.psych)[[c(11,3,12)]]

返回

arrows(0, 0, x$loadings[, 1L] * 0.8, x$loadings[, 2L] * 0.8, 
    col = col[2L], length = arrow.len)

以确保我们正在更改正确的行。然后就可以了

biplot.psych2<-biplot.psych
body(biplot.psych2)[[11]][[3]][[12]]<-NULL

然后调用我们的新函数

biplot.psych2(fa2,pch=c(24,21)[bfi[1:100,"gender"]],
    bg=c("blue","red")[bfi[1:100,"gender"]],
    main="Biplot of Conscientiousness and Neuroticism by gender")

得到

【讨论】:

  • 非常感谢.. 有什么方法可以去掉那些红色的字母和数字吗?
  • 您可以设置body(biplot.psych)[[c(11,3)]][11:12]&lt;-NULL 来同时摆脱它们
【解决方案2】:

在您发布问题几个月后,这里有一个快速回答。您实际要求的不是双标图(包括因子得分和因子载荷),而只是因子得分的图。使用您的示例,只需

plot(fa2$scores,bg=c("blue","re​​d")[bfi[1:100,"gender"]],pch=c(24,21)[bfi[1:100,"性别"]],ylim=c(-3,3),xlim=c(-3,3))。

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 2017-09-23
    • 2020-09-24
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多