Correlating Errors with a Latent Variable

1 reply [Last post]
fife's picture
Offline
Joined: 07/01/2010

I know it's a strange model, but what I'm trying to do is model a regular old unidimensional factor analysis, with the exception that the uniquenesses are all correlated with the factor. Here's how i've tried to specify my model:

man = paste(rep("Item", times=20), seq(1:20), sep="")
errors = paste(rep("e", times=20), seq(1:20), sep="")
lat=c("F1", errors)
loadings=mxPath(from=lat[1], to=man, arrows=1, values=.5, free=T)
fVar = mxPath(from=lat[1], arrows=2, free=F, values=.5, labels="D")
uniq = mxPath(from=lat[2:21], to=man, arrows=1, free=T, values=.5)
tecorr = mxPath(from=lat[2:21], to=lat[1], arrows=1, free=T, values=1)
fa = mxModel(
name="OmegaTest",
type="RAM",
mxData(observed=ddat, type='cov', numObs=20000),
manifestVars = man,
latentVars = lat,
loadings,
fVar,
uniq,
tecorr

)

From this, I get an error message saying: "The job for model 'OmegaTest' exited abnormally with the error message: Backing out of parameter space region where expected covariance is non-positive-definite."

It sounds like a specification problem, but how do I fix it? How do I tell R that I want all the residuals to correlate with the factor? I've included a (condensed) diagram to show you what I'm trying to model. Thanks!

Ryne's picture
Offline
Joined: 07/31/2009
Unfortunately, the model

Unfortunately, the model you're trying to specify is unidentified by definition. The residuals have to be uncorrelated with the factor, else the factor loading and residual correlations will create two free parameters for one linear relationship, leading to indeterminacy.

I don't see the diagram you referred to, so let's call all of your loadings "Li", where i is one of your twenty items. Further, let's call your uniqueness regressions on the manifest variables "Ei" and on the factor "Ui". The expected covariance between items 1 and 2 is:

L1*0.5*L2 + E1*0.5*U1*L2 + E2*0.5*U2*L1

This expectation holds for any pair of items. If you follow the tracing rules, you can see that the L parameters and U parameters are redundant, such that you can never get a value for the L parameters without knowing the U parameters. They both exist to define the linear relationship between the item and the factor, and there is no way in your model to split any item into "true score" and "uniqueness". The way around this is to fix either the U parameters or the L parameters at a constant. When you fix the U parameters at zero, you get the standard factor model. You could pick other values, but they would be very difficult to theoretically defend, and the model would fix exactly as well as the standard model.

Hope this helps,
Ryne