OpenMx 0.2.4-1038 released
- Read more about OpenMx 0.2.4-1038 released
- Log in or register to post comments
This release contains several bug fixes and new features. Here is the list of changes from the previous release.
Improperly specified threshold matrices need to be detected and handled
Somehow, even with all the parameters fixed, I cannot escape from a region where OpenMx thinks the ordinal FIML is infinite. As far as I know, the likelihood should not be infinite for these particular parameter values.
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.
- Read more about Problem with dimnames and thresholds
- 3 comments
- Log in or register to post comments
summary(fooModel) should return S3 or S4 object
"summary(fooModel)$parameters" prints the whole summary but should only print the part of the summary requested.
"mySummary <- summary(fooModel)" prints the whole summary, but should be silent and print nothing.
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.
- Read more about Alternative estimate of the Hessian
- 6 comments
- Log in or register to post comments
Need Mx1's mnor() and allint function
Integration of mv normal distribution, per specs of Mx1. Should be easy using Genz's already operational algorithms.
- Read more about Need Mx1's mnor() and allint function
- 2 comments
- Log in or register to post comments
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
- Read more about Getting df right
- 11 comments
- Log in or register to post comments
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
- Read more about Note that we have additional version of...
- 5 comments
- Log in or register to post comments
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)]
- Read more about mxData: cov to take lower, upper, and full?
- 3 comments
- Log in or register to post comments