If you want to fit a multigroup model, the preferred way is to use mxFitFunctionMultigroup
.Fit functions are functions for which free parameter values are chosen such that the value of the objective function is minimized. While the other fit functions in OpenMx require an expectation function for the model, the mxAlgebraObjective
function uses the referenced MxAlgebra
or MxMatrix
object as the function to be minimized.
If a model's fit function is an mxFitFunctionAlgebra
objective function, then the referenced algebra in the objective function must return a 1 x 1 matrix (when using OpenMx's default optimizer). There is no restriction on the dimensions of an fit function that is not the primary, or topmost, objective function.
To evaluate an algebra fit function, place the following objects in a MxModel
object: a mxFitFunctionAlgebra
, MxAlgebra
and MxMatrix
entities referenced by the MxAlgebraObjective
, and optional MxBounds
and MxConstraint
objects. This model may then be evaluated using the mxRun
function. The results of the optimization may be obtained using the mxEval
function on the name of the MxAlgebra
, after the model has been run.
First and second derivatives can be provided with the algebra fit
function. The dimnames on the gradient and hessian MxAlgebras are
matched against names of free variables. Names that do not match are
ignored. The fit is assumed to be in deviance units (-2 log
likelihood units). If you are working in log likelihood units, the -2
scaling factor is not applied automatically. You have to
multiply by -2 yourself.