从R中的因子分析Biplot {psych}中消除箭头

时间:2014-08-16 05:11:33

标签: r factor-analysis

在以下代码生成的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")

enter image description here

2 个答案:

答案 0 :(得分:1)

无论出于何种原因,psych库决定重新编写它自己的双标图,因此忽略了许多标准参数。您可以创建自己的版本,只需删除箭头图。这种方法有点hacky但是使用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")

获取

enter image description here

答案 1 :(得分:0)

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

积(FA2 $分数,BG = C( “蓝”, “红”)[BFI [1:100, “性别”]],PCH = C(24,21)[BFI [1:100,”性别“]],ylim = C(-3,3),XLIM = C(-3,3))。