当我从包心理学中进行EFA时,我可以生成具有相关性和负载的非常好的路径图,如下所示:
使用fa.diagram
函数,代码如下:
library(psych)
covariances <- ability.cov$cov
correlations <- cov2cor(covariances)
fa.promax <- fa(correlations, nfactors=2, rotate="promax", fm="pa")
fa.diagram(fa.promax, simple=FALSE)
我倾向于使用CFA而不是EFA,并且希望能够以相同的方式绘制具有相关性的模型。我使用SEM包。我已经尝试了pathDiagram
函数,但它只产生了我可以从Graphviz粘贴到GVedit的代码。我这样做,相关性和因子相关性之间不存在。另外我不喜欢剪切和粘贴到另一个程序(尽管来自sem的pathDiagram的帮助文件读取:“ 要直接获取图形输出,点程序必须位于系统搜索路径上。 “;我不知道究竟要在这条道路上做些什么,以及它是否会产生相关性?”
我希望能够创建一个类似于心理学的fa.diagram为EFA做的路径图。我希望能够在R中做到这一点,而不是剪切和粘贴。我不关心你使用什么包来做这个但我认为大多数人会同意越简单就越好如果它可以在R内完成它将给予图形设备选择的极大自由。
以下是CFA模型的一些示例代码:
dat3 <- read.table(url("http://dl.dropbox.com/u/61803503/Proj_2b.dat"),
header=T, strip.white = T, as.is=FALSE,
na.strings= c("999", "NA", " "))
NHSDA.cov <- cov(dat3)
ete.mod <- specifyModel()
F1 -> item3, lam1, NA
F1 -> item5, lam2, NA
F1 -> item9, lam3, NA
F1 -> item10, lam4, NA
F2 -> item4, lam5, NA
F2 -> item13, lam6, NA
F2 -> item14, lam7, NA
F2 -> item15, lam8, NA
F3 -> item1, lam9, NA
F3 -> item6, lam10, NA
F3 -> item7, lam11, NA
F3 -> item11, lam12, NA
F3 -> item12, lam13, NA
F4 -> item2, lam14, NA
F4 -> item8, lam15, NA
F4 -> item16, lam16, NA
F4 -> item17, lam17, NA
item1 <-> item1, e1, NA
item2 <-> item2, e2, NA
item3 <-> item3, e3, NA
item4 <-> item4, e4, NA
item5 <-> item5, e5, NA
item6 <-> item6, e6, NA
item7 <-> item7, e7, NA
item8 <-> item8, e8, NA
item9 <-> item9, e9, NA
item10 <-> item10, e10, NA
item11 <-> item11, e11, NA
item12 <-> item12, e12, NA
item13 <-> item13, e13, NA
item14 <-> item14, e14, NA
item15 <-> item15, e15, NA
item16 <-> item16, e16, NA
item17 <-> item17, e17, NA
F1 <-> F1, NA, 1
F2 <-> F2, NA, 1
F3 <-> F3, NA, 1
F4 <-> F4, NA, 1
F2 <-> F1, rF1F2 #1
F3 <-> F1, rF1F3 #2
F4 <-> F1, rF1F4 #3
F3 <-> F2, rF2F3 #4
F4 <-> F2, rF2F4 #5
F4 <-> F3, rF3F4 #6
ete.sem <- sem(ete.mod, NHSDA.cov, nrow(dat3))
(ete.SUM <- summary(ete.sem))
pathDiagram(ete.sem) #the attempt thus far
在Win 7上运行R 2.14.2
答案 0 :(得分:5)
试试这样:
pathDiagram(
model=ete.sem
, file="PathDiagram"
, max.rank=paste("item", 1:17, sep="")
, ignore.double=FALSE
, edge.labels="values"
, size=c(8, 8)
, node.font=c("Helvetica", 10)
, edge.font=c("Helvetica", 10)
, rank.direction="LR"
, digits=3
, standardize=TRUE
, graphics.fmt="pdf"
)
这将在您的工作目录中生成PathDiagram.pdf
。我不知道在R中显示图表。
答案 1 :(得分:1)
我遇到了同样的问题。需要安装应用程序Graphviz,然后从.dot文件中创建PDF文件。这也在R包 pathDiagram 的帮助文件中进行了解释。