dmlavaan | R Documentation |
The function dmlavaan
compares model parameters from different lavaan
models fitted to the same dataset. This leads to dependent coefficients.
Statistical inference is either conducted by M-estimation (i.e., robust
sandwich method; method="bootstrap"
) or bootstrap (method="bootstrap"
).
See Mize et al. (2019) or Weesie (1999) for more details.
dmlavaan(fun1, args1, fun2, args2, method="sandwich", R=50)
fun1 |
lavaan function of the first model (e.g., |
args1 |
arguments for lavaan function in the first model |
fun2 |
lavaan function of the second model (e.g., |
args2 |
arguments for lavaan function in the second model |
method |
estimation method for standard errors |
R |
Number of bootstrap samples |
In bootstrap estimation, a normal approximation is applied in the
computation of confidence intervals. Hence, R
could be chosen
relatively small.
TO DO (not yet implemented):
1) | inclusion of sampling weights |
2) | cluster robust standard errors in hierarchical sampling |
3) | stratification |
A list with following entries
coef |
Model parameters of both models |
vcov |
Covariance matrix of model parameters of both models |
partable |
Parameter table containing all univariate model parameters |
... |
More entries |
Mize, T.D., Doan, L., & Long, J.S. (2019). A general framework for comparing predictions and marginal effects across models. Sociological Methodology, 49(1), 152-189. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1177/0081175019852763")}
Weesie, J. (1999) Seemingly unrelated estimation and the cluster-adjusted sandwich estimator. Stata Technical Bulletin, 9, 231-248.
## Not run:
############################################################################
# EXAMPLE 1: Confirmatory factor analysis with and without fourth item
#############################################################################
#**** simulate data
N <- 200 # number of persons
I <- 4 # number of items
# loadings and error correlations
lam <- seq(.7,.4, len=I)
PSI <- diag( 1-lam^2 )
# define some model misspecification
sd_error <- .1
S1 <- matrix( c( -1.84, 0.39,-0.68, 0.13,
0.39,-1.31,-0.07,-0.27,
-0.68,-0.07, 0.90, 1.91,
0.13,-0.27, 1.91,-0.56 ), nrow=4, ncol=4, byrow=TRUE)
S1 <- ( S1 - mean(S1) ) / sd(S1) * sd_error
Sigma <- lam %*% t(lam) + PSI + S1
dat <- MASS::mvrnorm(n=N, mu=rep(0,I), Sigma=Sigma)
colnames(dat) <- paste0("X",1:4)
dat <- as.data.frame(dat)
rownames(Sigma) <- colnames(Sigma) <- colnames(dat)
#*** define two lavaan models
lavmodel1 <- "F=~ X1 + X2 + X3 + X4"
lavmodel2 <- "F=~ X1 + X2 + X3"
#*** define lavaan estimation arguments and functions
fun2 <- fun1 <- "cfa"
args1 <- list( model=lavmodel1, data=dat, std.lv=TRUE, estimator="MLR")
args2 <- args1
args2$model <- lavmodel2
#* run model comparison
res1 <- sirt::dmlavaan( fun1=fun1, args1=args1, fun2=fun2, args2=args2)
# inspect results
sirt:::print_digits(res1$partable, digits=3)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.