omxGetParameters: Fetch Model Parameters

View source: R/MxModelParameters.R

omxGetParametersR 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)


OpenMx documentation built on Oct. 19, 2024, 9:06 a.m.