error in 2.1.1 multiple regression model?

4 replies [Last post]
tbates's picture
Offline
Joined: 07/31/2009

Hi
There are two paths called βyz in the un-titled figure currently on page 26

Seems that one should be βx and the other βz (the one that is currently βy should be β0)?

Similar issue in the simple regression figure (unlabeled, but currently on page 22)

Somewhere around here in the documentation some explanation of the triangle should be given too: I think users will be wondering:

If it's a mean, how can it be connected to all three variables?

What does the "1" in the middle mean? Is that a mean? or a variance?

Why isn't the variance of the triangle labeled? What label would it have if it was?

Does it also have a label, or is "1" its label?

Do fixed variables have their value as the label?

What about two variables fixed to the same value: does that create labels that link them if one is subsequently freed or edited?

AttachmentSize
2.1.1 regression.png63.92 KB
Ryne's picture
Offline
Joined: 07/31/2009
The βx and β0 problems are

The βx and β0 problems are mine. I used the same path diagrams for the simple regression, multiple regression and multivariate regression examples. I'll fix them by the next binary release. I'll put in a ticket for Hermine to fix the twin models.

As far as the triangle, that's referred to as the "constant" in mxPath statements and RAM models per McArdle & McDonald (1984), and will be used to define mean structure. It's label is "constant", and is directly tied to the GLM. For intercepts to be present in a GLM regression-style model, one needs to add a (column) vector of 1s to the matrix of predictor variables.

Mike, I was and am skeptical of the variance term for the constant, as any calculated variance is zero. The defense I've gotten from McArdle's APA Advanced Training Institutes is that the variance path (which is fixed to 1) is included to preserve path tracing rules. The original (someone correct me) specification of SEM and path tracing rules included a variable of all 1s, and that means were modeled as means-squared and were defined by all paths that led both from and two a particular variable while going through the constant. If the constant didn't have a variance path, it couldn't be included in paths, as all one-headed arrows lead from the constant. In modern usage, most people define means as all paths from the constant to an observed variable, rendering the variance path moot. I was taught to put the variance path in with a fixed value of 1, though I recognize it as something of an anachronism. I hope this not-so-subtle hint towards those with similar training gets a discussion going.

Steve's picture
Offline
Joined: 07/30/2009
This can be confusing. Let

This can be confusing. Let me elaborate on Ryne's correct answer to the best of my ability.

If we use triangles solely to implement a separate means model, then the variance for the constant should be zero.

If we use triangles to implement a constant for SSCP calculations without a means model, then the variance for the constant should be one.

So, given the current model that we are implementing in FIML and RAM, we should omit the variance double headed path for the constant.

Should we implement the SSCP calculation (it is reserved, but not implemented), then we will need to include the double headed path for the constant in order for the SSCP algebra to work without requiring a separate means model.

neale's picture
Offline
Joined: 07/31/2009
Re: the triangle...

Re: the triangle... Conceptually it was thought of as half an observed variable. It has no variance, being scored 1 for everyone in the sample. Accordingly, I think it should NEVER have a variance loop, since the variance is always zero.

tbates's picture
Offline
Joined: 07/31/2009
I think there's a mistake in

I think there's a mistake in this portion of the docs at
http://openmx.psyc.virginia.edu/docs/OpenMx/latest/Introduction.html#opt...

makes a matrix called CholDZ instead of CholMZ

mxModel("MZ",
mxMatrix(
type="Full",
nrow=1,
ncol=2,
free=True,
values=c(0,0),
dimnames=list(NULL, selVars),
name="expMeanMZ"),
mxMatrix("Full", 2, 2,
free=c(T,T,F,T)
values=c(1,.5,0,1),
dimnames=list(NULL, selVars),
name="CholDZ"),
mxAlgebra(
CholMZ %*% t(CholMZ),
name="expCovMZ",
dimnames=list(selVars, selVars)),
mxData(
DataMZ,
type="raw"),
mxFIMLObjective(
"expCovMZ",
"expMeanMZ"))