Когда я делаю EFA из пакета psych, я могу генерировать действительно хорошие графики путей с корреляциями и нагрузками, например:
, используя функцию 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