Using semPlot - places non-recursive arrow between unlinked constructs

486 views
Skip to first unread message

Scott Wagstaff

unread,
Aug 2, 2017, 3:32:34 AM8/2/17
to lavaan
Good day,

Apologies if this is not the correct forum, but I have a question on lavaan/semPlot, I have the following relationships:

model1 = '

+ # Measurement model
+   Attitudes =~ AC1 + AC2 + AC3 + AC4
+   Job_Sat =~ JS1 + JS2 + JS3 + JS4
+   Org_Commit =~ OC1 + OC2 + OC3 + OC4
+   Stay_Int =~ SI1+ SI2 + SI3 + SI4
+ # Structural model - Hide when doing CFA
+   Stay_Int ~ Job_Sat + Org_Commit
+   Job_Sat ~ Attitudes
+   Org_Commit ~ Attitudes
+ '


Then I get the output below... all good



























































Then I want to remove the link J_S and Att, so I modify the code to be:


model1 = '

+ # Measurement model
+ Attitudes =~ AC1 + AC2 + AC3 + AC4

+ Job_Sat =~ JS1 + JS2 + JS3 + JS4

+ Org_Commit =~ OC1 + OC2 + OC3 + OC4
+ Stay_Int =~ SI1+ SI2 + SI3 + SI4
+ # Structural model - Hide when doing CFA
+ Stay_Int ~ Job_Sat + Org_Commit
+ #Job_Sat ~ Attitudes

+ Org_Commit ~ Attitudes

+ '


However semPlot now places a non-recursive (double headed) arrow between them instead of nothing. I have tried deleting the line of code and re-writing it to:

Org_Commit ~ Attitudes
Stay_Int ~ Org_commit + Job_Sat

But I get the same result, Lavaan seems to be ignoring the link, but semPlot insists on joining the two. I'm new to SEM so is the double headed arrow semPlot depicting wrong... will I loose marks?!?! or is it another way of showing the plot that is different from the one I have learned in class... is there a way of forcing semPlot to remove it?



Scott Wagstaff

unread,
Aug 2, 2017, 3:48:25 AM8/2/17
to lavaan
Forgot to add that the code I use to create the plot is :

# Plot the path diagram

> semPaths(fit1, whatLabels = "std", edge.label.cex = 0.5, layout = "spring", curvePivot = TRUE)

Edward Rigdon

unread,
Aug 2, 2017, 7:25:15 AM8/2/17
to lav...@googlegroups.com
Double headed means covariance, not reciprocal. Add a line setting that covariance to 0--

A ~~ 0*B

See if that works.

--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+unsubscribe@googlegroups.com.
To post to this group, send email to lav...@googlegroups.com.
Visit this group at https://groups.google.com/group/lavaan.
For more options, visit https://groups.google.com/d/optout.

Scott Wagstaff

unread,
Aug 2, 2017, 8:25:35 AM8/2/17
to lavaan
Thanks for getting back to me, I tried what you said and now I get a double headed arrow with a dashed line instead of a solid line with a value of 0.00 - any idea what this actually means?

Scott
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.

Edward Rigdon

unread,
Aug 2, 2017, 8:56:44 AM8/2/17
to lav...@googlegroups.com
That's actually funny. The 0 makes it seem like semPlot is correctly reflecting the syntax. Perhaps the dashed line is alerting you that the path is constrained in the syntax. I wonder if semPlot has an option to turn that behavior off. After all, lots of parameter estimates are constrained to 0, implicitly.


To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+unsubscribe@googlegroups.com.

Scott Wagstaff

unread,
Aug 2, 2017, 10:54:04 AM8/2/17
to lavaan
Don't see any :(
Reply all
Reply to author
Forward
0 new messages