Description Usage Arguments Details Value Author(s) See Also Examples
View source: R/semMatrixAlgebra.R
This function can be used to extract or calculate with model matrices given a "semMatriModel"
object (from modelMatrices
) or a "semPlotModel"
object or any of the input types that can be used in semPlotModel
directly.
If the model is not specified it is attempted to be identified by the given algebra.
1 | semMatrixAlgebra(object, algebra, group, simplify = TRUE, model, endoOnly = FALSE)
|
object |
A |
algebra |
An R expression to use. |
group |
Groups the algebra should be used on. If more than one a list is returned with the result for each group. |
simplify |
If TRUE and only one group is used, return output as is instead of in a list. |
model |
Model to be used in |
endoOnly |
Only needed when the model is |
The "lisrel"
model uses the following matrix names: LY
, TE
, PS
, BE
, LX
, TD
, PH
, GA
, TY
, TX
, AL
and KA
.
The "mplus"
model uses the following matrix names: Lambda
, Nu
, Theta
, Kappa
, Alpha
, Beta
, Gamma
and Psi
.
The "ram"
model uses the following matrix names: F
, A
and S
.
A list containing output per group
Sacha Epskamp <[email protected]>
semPlotModel
semPlotModel-class
modelMatrices
lisrelModel
ramModel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | ## Mplus user guide SEM example:
outfile <- tempfile(fileext=".out")
download.file("http://www.statmodel.com/usersguide/chap5/ex5.11.out",outfile)
# Plot model:
semPaths(outfile,intercepts=FALSE)
# Obtain latent regressions (mplus)
semMatrixAlgebra(outfile, Beta)
# mplus model implied covariance:
mat1 <- semMatrixAlgebra(outfile,
Lambda %*% Imin(Beta, TRUE) %*% Psi %*% t(Imin(Beta, TRUE)) %*% t(Lambda) + Theta)
# Lisrel model implied covariance:
mat2 <- semMatrixAlgebra(outfile,
LY %*% Imin(BE, TRUE) %*% PS %*% t(Imin(BE, TRUE)) %*% t(LY) + TE, endoOnly = TRUE)
# RAM model implied covariance:
mat3 <- semMatrixAlgebra(outfile,
F %*% Imin(A,TRUE) %*% S %*% t(Imin(A, TRUE)) %*% t(F))
## Not run:
# Plot:
library("qgraph")
pdf("Models.pdf",width=15,height=5)
layout(t(1:3))
qgraph(round(cov2cor(mat1),5), maximum=1, edge.labels=TRUE, layout = "spring",
cut = 0.4, minimum = 0.1)
title("Mplus model")
qgraph(round(cov2cor(mat2),5), maximum=1, edge.labels=TRUE, layout = "spring",
cut = 0.4, minimum = 0.1)
title("LISREL model")
qgraph(round(cov2cor(mat3),5), maximum=1, edge.labels=TRUE, layout = "spring",
cut = 0.4, minimum = 0.1)
title("RAM model")
dev.off()
## End(Not run)
# They are the same.
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.