SEM diagrams

Posted on
Picture of user. mspiegel Joined: 07/31/2009

The omxGraphviz() function in OpenMx currently draws arrows by inspecting the A and S matrices and looking for values that are non-zero. Is that the correct criteria, or should it be (value != 0 || free == TRUE)? On a related note, what is the correct criteria for drawing arrows from the M matrix? Is it (value != 0) or (value != 0 || free == TRUE)?

Replied on Sat, 10/17/2009 - 10:29
Picture of user. tbates Joined: Jul 31, 2009

In reply to by Steve

yes, that seems the rule "draw everything that is free, labeled, or != 0"

Hopefully some users invest in this function as there are a bunch of things one could see it being extended to handle:

Adding the path value to paths is number 1,

I guess too if paths are equated (label == label) that would be good thing to capture in the dot, with an = sign on the path or similar.

When confidence intervals come along, you could show non-significant paths with a dotted style.

Perhaps identify paths as fixed or free - adding a black dot to the path, like a tack, fixing it down.

Replied on Sat, 10/17/2009 - 13:27
Picture of user. tbates Joined: Jul 31, 2009

In reply to by mspiegel

Nifty. I guess these errors are due to omnigraffle.

given the values have to be accessed to build the dot file, can they be included on the paths?

Looks like matrixToPaths(fit[['S']],2) would want to be modified to include the value it finds in the path output.

Then they can be placed into the dot write-out.

digraph "univSat1" {
node [style=filled, fontname="Arial", fontsize=16]
X [shape=box, fillcolor="#a9fab1", height=0.5, width=0.5];
one [shape=triangle];
X -> X[dir=both, headport=s, tailport=s, label="0.98"];
one -> X[dir=forward, label="0.02"];
}