I'd like to obtain unstandardized factor scores for a single factor CFA, with the factor scores on the same metric (approximately the same mean, SD, range, distribution) as the indicators. There is missingness in the data, so ML factor scores are preferred. How can I do this in OpenMX? I read Appendix A from Estabrook and Neale's (2013) paper on estimating ML factor scores in OpenMx:

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3773873/

Does this approach calculate standardized or unstandardized factor scores? If standardized, how can I generate unstandardized factor scores with ML instead? Note that I don't want to transform standardized factor scores to unstandardized ones because the distributions of my indicators are non-normal (i.e., the normal distribution of standardized factor scores cannot be easily transformed to the raw metric of my indicators). In other words, I'd like to estimate unstandardized factor scores on the raw metric of the indicators without first estimating them on a standardized metric.

I literally just checked in a function to get factor scores yesterday.

https://github.com/OpenMx/OpenMx/commit/fa457b305280370dc5faedb012609061700f095a

As far as the scale, the factor scores will have whatever scale you set for the latent variables. If you identify the model by having fixed zero latent mean and fixed unit latent variance, then the factor scores are in z-score units. If you identify the model by setting the first factor loading to one, then the the factor scores are in the units of the first indicator.

Great timing! That looks like it's just for LISREL model specification. Would it be possible to allow RAM-type model specification, as well? Thanks, and looking forward to the next release!

The RAM specification for factor scores is planned but not yet implemented. If it's a type='RAM' model (i.e. a path model), then you can turn it into a LISREL model by changing it to type='LISREL' and letting OpenMx know which variables are exogenous or endogenous. See the example starting here

https://github.com/OpenMx/OpenMx/blob/fa457b305280370dc5faedb012609061700f095a/inst/models/nightly/FactorScores.R#L21

for a LISREL path model with factor scores.

When I run your function:

> r1 <- mxFactorScores(factorRun, 'ML')

Error in mxFactorScores(factorRun, "ML") :

could not find function "mxAlgebraFromString"

I cannot find any information on "mxAlgebraFromString". It doesn't seem to be available in the latest version of OpenMx.

Can you install following the instructions at the bottom of this page, https://github.com/OpenMx/OpenMx ?