Problem with dimnames and thresholds

OpenMx gives an error when selecting variables in a model with thresholds. While the covariance and mean algebras can select a subset of the variables using the supplied dimnames, running a model with thresholds gives a "subscript out of bounds" error when variables are in the data but excluded from the model. Removing either the extra variables or the thresholds removes this error. Tim had updated an ordinal test in models/failing/extraOrdinalVariables about this issue.

Alternative estimate of the Hessian

Per some recent dialog with Greg Carey, I suggest that we alter the OpenMx Hessian estimation by default. Rather than use the estimates from NPSOL to compute the standard errors, we should use the numDeriv package.

The attached R script, when run, shows that NPSOL's Hessian* is incorrect when the model is underidentified (more free parameters than statistics). As a result a user could be misled into thinking that a model is identified when it is not. A better picture emerges when numDeriv is used.

OpenMx 0.2.3-1006 includes mixture distributions!

Binary version 0.2.3-1006 was released today. Follow the instructions on the Download page to download the new version.

The biggest news is that mixture distribution models are now supported. We have tested using some models with known outcomes for continuous variables and for ordinal variables. Documentation on mixture distributions is not ready yet, so if you are interested in fitting this type of model, please go to the Mixture Distribution and Latent Class Models forum page for discussion.

Getting df right

Hi Michael

Let's try to get df correct in OpenMx. We thought this was a priority at the meeting yesterday. There are one or two things to consider, however, when it comes to raw data input because the statistics are not counted the same way in every software package.

In general, df = nstats - nparameters

Suppose there are i=1...ng groups (submodels) in the model. Let the number of variables in submodel i be m_i. Let the number of nonlinear equality constraints be nk. Then, for only covariance matrix input we have:
nstats(cov)= sum_i {m_i*(m_i + 1)/2} + nk

Note that we have additional version of...

at

http://openmx.psyc.virginia.edu/docs/OpenMx/latest/TwoModelStylesTwoDataStyles.html#univariate-saturated-model

This sentence
Note that we have additional version of the matrix-style examples which use a Cholesky decomposition to estimate the expected covariance matrices, which is preferred to directly estimation the symmetric matrices.

should read

mxData: cov to take lower, upper, and full?

It would be very handy if, when type="cov", mxData could intelligently take lower, upper and full covariance matrices. Because a matrix or dataframe will be provided, the difference between the types is that one or other triangle will be full of 0s or NAs.

i.e., that this would work:

data = read.moments(file = "", diag = T)
1
.3 1
.4 .35 1

mxData(data, type="cov",numObs=100)

without first requiring
data[upper.tri(data)] = data[lower.tri(data)]

value labels on path diagrams

I've begun work on modifying the myOmxGraphviz functions so that it picks up on the values and places them onto relevant paths (with some other todo and suggestion stuff in there also. For instance, if variables have paths coming in and out already, residual paths should move out of there way. If a manifest has an outgoing path, the residual should try and get onto the north side. one-arrow lines should be straight (not sure if graphviz knows about that).

anyhow, the working functions are here

trunk/models/failing/addValue.R
if you paste them into R you can use