3 votes

Les tracés des chemins de la CFA

Lorsque j'effectue un EFA à partir du paquet psych, je peux générer de très beaux graphiques de cheminement avec des corrélations et des chargements, par exemple :

enter image description here

en utilisant le fa.diagram avec le code suivant :

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)

J'ai tendance à utiliser l'AFC plus que l'AFE et j'aimerais pouvoir tracer le modèle avec les corrélations de la même manière. J'utilise le paquet SEM. J'ai essayé le pathDiagram mais elle ne produit que le code que je peux ensuite coller dans GVedit à partir de Graphviz. Je fais cela et les corrélations et les corrélations entre les facteurs ne sont pas là. De plus, je n'aime pas couper et coller dans un autre programme (bien que le fichier d'aide de sem pour pathDiagram dise : " Pour obtenir directement la sortie graphique, le programme dot doit se trouver sur le chemin de recherche du système. "Je ne sais pas exactement ce qu'il faut mettre dans le chemin pour que cela se produise et si cela aura même les corrélations de toute façon ).

J'aimerais pouvoir faire un diagramme de chemin similaire à ce que fa.diagram de psych fait pour EFA. J'aimerais pouvoir le faire en R et non en copier-coller. Je ne me soucie pas du paquet que vous utilisez pour faire cela, mais je pense que la plupart des gens sont d'accord pour dire que plus c'est simple, mieux c'est, et si cela peut être fait dans R, cela donnera une grande liberté dans le choix du dispositif graphique.

Voici un exemple de code pour un modèle CFA avec lequel travailler :

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

Exécution de R 2.14.2 sur Win 7

5voto

MYaseen208 Points 3379

Essayez comme ça :

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"
            )

Cela générera PathDiagram.pdf dans votre répertoire de travail. Je ne sais pas comment afficher le graphique dans R.

enter image description here

1voto

Roman Points 249

J'ai eu le même problème. L'application Graphviz doit être installé, ce qui crée ensuite un fichier PDF à partir du fichier .dot. Ceci est également expliqué dans le fichier d'aide du paquet R. pathDiagram .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X