CFA хорошие пути пути - PullRequest
3 голосов
/ 11 марта 2012

Когда я делаю EFA из пакета psych, я могу генерировать действительно хорошие графики путей с корреляциями и нагрузками, например:

enter image description here

, используя функцию 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, но она генерирует только код, который затем можно вставить в GVedit из Graphviz.Я делаю это, и корреляции между факторами не существуют.Кроме того, я не люблю вырезать и вставлять в другую программу (хотя файл справки из 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

Запуск R 2.14.2на Win 7

Ответы [ 2 ]

5 голосов
/ 11 марта 2012

Попробуй так:

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.

enter image description here

1 голос
/ 17 июля 2013

У меня просто была такая же проблема. Необходимо установить приложение Graphviz , которое затем создает файл PDF из файла .dot. Это также объясняется в файле справки пакета R pathDiagram .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...