Learn R Programming

OpenMx (version 2.21.13)

mxGetExpected: Extract the component from a model's expectation

Description

This function extracts the expected means, covariance, or thresholds from a model.

Usage

mxGetExpected(model, component, defvar.row=1, subname=model$name)
imxGetExpectationComponent(model, component, defvar.row=1, subname=model$name)

Value

See details.

Arguments

model

MxModel object from which to extract the expectation component.

component

Character vector. The name(s) of the component(s) to extract. Recognized names are “covariance”, “means”, and “thresholds”.

defvar.row

A row index. Which row to load for definition variables.

subname

Name of the submodel to evaluate.

Details

The expected means, covariance, or thresholds can be extracted from Normal (mxExpectationNormal), RAM (mxExpectationRAM), and LISREL (mxExpectationLISREL) models. When more than one component is requested, the components will be returned as a list.

If component 'vector' is requested then the non-redundant coefficients of the expected manifest distribution will be returned as a vector.

If component 'standVector' is requested then the same parameter structure as 'vector' is returned, but it is standardized. For Normal expectations the covariances are returned as correlations, the means are returned as zeros, and the thresholds are returned as z-scores. For the thresholds the z-scores are computed by using the model-implied means and variances.

Note that capitalization is ignored for the 'standVector' option, so 'standvector' is also acceptable.

References

The OpenMx User's guide can be found at https://openmx.ssri.psu.edu/documentation/.

Examples

Run this code
   
# ===============================================
# = Build a 1-factor CFA, with bad start values =
# ===============================================
require(OpenMx)
manifests = paste("x", 1:5, sep="")
latents = c("G")
factorModel = mxModel("One Factor", type="RAM",
      manifestVars = manifests,
      latentVars = latents,
      mxPath(from = latents, to = manifests),
      mxPath(from = manifests, arrows = 2),
      mxPath(from = latents, arrows = 2, free = FALSE, values = 1.0),
      mxPath(from = 'one', to = manifests),
	  mxData(demoOneFactor, type = "raw")
)

# ============================================================================
# = What do our starting values indicate about the expected data covariance? =
# ============================================================================
mxGetExpected(factorModel, "covariance")

# Oops. Starting values indicate an expected zero-covariance matrix.
# The model likely won't run from these start values.
# Let's adjust them:

factorModel = mxModel("One Factor", type = "RAM",
      manifestVars = manifests, latentVars = latents,
      # Reasonable start VALUES
	  mxPath(from = latents, to = manifests, values = .2),
      mxPath(from = manifests, arrows = 2),
      mxPath(from = latents, arrows = 2, free = FALSE, values = 1.0),
      mxPath(from = 'one', to = manifests),
	  mxData(demoOneFactor, type = "raw")
)

mxGetExpected(factorModel, "covariance")
#      x1   x2   x3   x4   x5
# x1 0.04 0.04 0.04 0.04 0.04
# x2 0.04 0.04 0.04 0.04 0.04
# x3 0.04 0.04 0.04 0.04 0.04
# x4 0.04 0.04 0.04 0.04 0.04
# x5 0.04 0.04 0.04 0.04 0.04

# And this version will run:
factorModel = mxRun(factorModel)

Run the code above in your browser using DataLab