qml | R Documentation |
Fits a structural equation model with latent interaction effects using Quasi-maximum likelihood estimation.
qml(model, data, start, max.iter = 150, optimizer = c("nlminb",
"optim"), neg.hessian = TRUE, ...)
model |
a specified structural equation model of class
|
data |
the data the model should be fitted to. Data needs to be a
matrix and variables need to be in the order x1, x2, ..., y1, y2, ...
as specified in |
start |
starting values for parameters. |
max.iter |
maximum number of iterations for optimizer. |
optimizer |
which optimizer should be used for maximization of
parameters: |
neg.hessian |
should negative Hessian be calculated. |
... |
additional arguments. See Details. |
Additional arguments can be passed to ... for these optimizers. See
documentation for optim
and nlminb
.
Quasi-maximum likelihood (QML) estimation is in principle a faster version for LMS, but might be less accurate for normal data. For practical purposes differences are negligible, though. For nonnormal data QML outperforms LMS.
An object of class qmlEst
that consists of the following components:
model.class |
class of model that was fitted. Will always be
|
coefficients |
estimated parameters. |
objective |
final loglikelihood obtained with EM algorithm. |
convergence |
convergence code for optimizer. See documentation
for |
Hessian |
negative Hessian matrix for final parameter estimation. |
info |
list of number of exogenous ( |
Klein, A. &, Muthen, B. O. (2007). Quasi-Maximum Likelihood Estimation of Structural Equation Models With Multiple Interaction and Quadratic Effects. Multivariate Behavior Research, 42, 647–673. doi:http://dx.doi.org/10.1080/00273170701710205
specify_sem
# specify model of class singleClass
sc <- specify_sem(num.x=4, num.y=2, num.xi=2, num.eta=1, xi="x1-x2,x3-x4",
eta="y1-y2", interaction="eta1~xi1:xi2")
# simulate data
pars.orig <- c(0.6, 0.7, # Lx
0.8, # Ly
0.2, 0.4, # G
0.25, 0.25, 0.25, 0.25, # Td
0.25, 0.25, # Te
0.2, # Psi
0.49, 0.235, 0.64, # Phi
0, 0, # nu.x
0, # nu.x
1, # alpha
1, 1, # tau
0.7 # Omega
)
dat <- simulate(sc, parameters=pars.orig, seed=81)
# fit model
set.seed(1609)
start <- runif(count_free_parameters(sc))
## Not run:
qml1 <- qml(sc, dat, start)
summary(qml1)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.