omxGetParameters {OpenMx} | R Documentation |
Fetch Model Parameters
Description
Return a vector of the chosen parameters from the model.
Usage
omxGetParameters(model, indep = FALSE, free = c(TRUE, FALSE, NA),
fetch = c('values', 'free', 'lbound', 'ubound', 'all'),
labels = c())
Arguments
model |
a MxModel object |
indep |
fetch parameters from independent submodels. |
free |
fetch either free parameters (TRUE), or fixed parameters or both types. Default value is TRUE. |
fetch |
which attribute of the parameters to fetch. Default choice is ‘values’. |
labels |
additional labels to fetch |
Details
The argument ‘free’ dictates whether to return only free parameters or only fixed parameters or both free and fixed parameters. The function can return unlabeled free parameters (parameters with a label of NA). These anonymous free parameters will be identified as ‘modelname.matrixname[row,col]’. It will not return fixed parameters that have a label of NA.
If provided, the argument ‘labels’ takes precedent over the selection criteria specified by ‘free’. Any labels mentioned in ‘labels’, including those of the form ‘modelname.matrixname[row,col]’, will be returned.
No distinction is made between ordinary labels, definition variables, and square bracket constraints. The function will return either a vector of parameter values, or free/fixed designations, or lower bounds, or upper bounds, depending on the ‘fetch’ argument. Using fetch with ‘all’ returns a data frame that is populated with all of the attributes.
See Also
omxSetParameters
, omxLocateParameters
, omxAssignFirstParameters
Examples
library(OpenMx)
A <- mxMatrix('Full', 2, 2, labels = c("A11", "A12", "A21", NA), values= 1:4,
free = c(TRUE,TRUE,FALSE,TRUE), byrow=TRUE, name = 'A')
model <- mxModel(A, name = 'model')
# Request all free parameters in model
omxGetParameters(model)
# A11 A12 model.A[2,2]
# 1 2 4
# Request fixed parameters from model
omxGetParameters(model, free = FALSE)
# A21
# 3
A$labels
# [,1] [,2]
# [1,] "A11" "A12"
# [2,] "A21" NA
A$free
# [,1] [,2]
# [1,] TRUE TRUE
# [2,] FALSE TRUE
A$values
# [,1] [,2]
# [1,] 1 2
# [2,] 3 4
# Example using un-labelled parameters
# Read in some demo data
data(demoOneFactor)
# Grab the names for manifestVars
manifestVars <- names(demoOneFactor)
nVar = length(manifestVars) # 5 variables
factorModel <- mxModel("One Factor",
mxMatrix(name="A", type="Full", nrow=nVar, ncol=1, values=0.2, free=TRUE,
lbound = 0.0, labels=letters[1:nVar]),
mxMatrix(name="L", type="Symm", nrow=1, ncol=1, values=1, free=FALSE),
# the "U" matrix has nVar (5) anonymous free parameters
mxMatrix(name="U", type="Diag", nrow=nVar, ncol=nVar, values=1, free=TRUE),
mxAlgebra(expression=A %&% L + U, name="R"),
mxExpectationNormal(covariance="R", dimnames=manifestVars),
mxFitFunctionML(),
mxData(observed=cov(demoOneFactor), type="cov", numObs=500)
)
# Get all free parameters
params <- omxGetParameters(factorModel)
lbound <- omxGetParameters(factorModel, fetch="lbound")
# Set new values for these params, saving them in a new model
newFactorModel <- omxSetParameters(factorModel, names(params), values = 1:10)
# Read out the values from the new model
newParams <- omxGetParameters(newFactorModel)