mxDataWLS {OpenMx} | R Documentation |
This function creates a new MxData object of type
“ULS” (unweighted least squares), “WLS” (weighted least squares)
or “DLS” (diagonally-weighted least squares). The appropriate
fit function to include with these models is mxFitFunctionWLS
mxDataWLS(data, type = "WLS", useMinusTwo = TRUE, returnInverted = TRUE, debug = FALSE, fullWeight = TRUE)
data |
A matrix or data.frame which provides raw data to be used for WLS. |
type |
A character string 'WLS' (default), 'DLS', or 'ULS' for weighted, diagonal, or unweighted least squares |
useMinusTwo |
Logical indicating whether to use -2LL (default) or -LL. |
returnInverted |
Logical indicating whether to return the information matrix (default) or the covariance matrix. |
debug |
Logical to set debugging on or off (default) |
fullWeight |
Logical determining if the full weight matrix is returned (default). Needed for standard error and quasi-chi-squared calculation. |
The mxDataWLS function creates an MxData object, which can be used in
MxModel objects. This function takes raw data and returns
an MxData
object to be used in a model to fit with weighted least squares.
Both Ordinal and continuous data are supported. A combination of these data
types succeeds without error, but when using 'WLS' or 'DLS' the answers
appear incorrect. The 'ULS' estimates for joint ordinal and continuous data
appear accurate. Consequently, do not use this function for joint
problems unless type='ULS'
.
Returns a new MxData object.
The OpenMx User's guide can be found at http://openmx.psyc.virginia.edu/documentation.
mxFitFunctionWLS. MxData for the S4 class created by mxData. matrix and data.frame for objects which may be entered as arguments in the ‘observed’ slot. More information about the OpenMx package may be found here.
# Create and fit a model using mxMatrix, mxAlgebra, mxExpectationNormal, and mxFitFunctionWLS library(OpenMx) # Simulate some data x=rnorm(1000, mean=0, sd=1) y= 0.5*x + rnorm(1000, mean=0, sd=1) tmpFrame <- data.frame(x, y) tmpNames <- names(tmpFrame) wdata <- mxDataWLS(tmpFrame) # Define the matrices S <- mxMatrix(type = "Full", nrow = 2, ncol = 2, values=c(1,0,0,1), free=c(TRUE,FALSE,FALSE,TRUE), labels=c("Vx", NA, NA, "Vy"), name = "S") A <- mxMatrix(type = "Full", nrow = 2, ncol = 2, values=c(0,1,0,0), free=c(FALSE,TRUE,FALSE,FALSE), labels=c(NA, "b", NA, NA), name = "A") I <- mxMatrix(type="Iden", nrow=2, ncol=2, name="I") # Define the expectation expCov <- mxAlgebra(solve(I-A) %*% S %*% t(solve(I-A)), name="expCov") expFunction <- mxExpectationNormal(covariance="expCov", dimnames=tmpNames) # Choose a fit function fitFunction <- mxFitFunctionWLS() # Define the model tmpModel <- mxModel(model="exampleModel", S, A, I, expCov, expFunction, fitFunction, wdata) # Fit the model and print a summary tmpModelOut <- mxRun(tmpModel) summary(tmpModelOut)