cfa_meas_inv {sirt} | R Documentation |
Estimation of a Unidimensional Factor Model under Full and Partial Measurement Invariance
Description
Estimates a unidimensional factor model based on the normal distribution fitting
function under full and partial measurement invariance.
Item loadings and item intercepts are successively freed based on the largest
modification index and a chosen significance level alpha
.
Usage
cfa_meas_inv(dat, group, weights=NULL, alpha=0.01, verbose=FALSE, op=c("~1","=~"))
Arguments
dat |
Data frame containing items |
group |
Vector of group identifiers |
weights |
Optional vector of sampling weights |
alpha |
Significance level |
verbose |
Logical indicating whether progress should be shown |
op |
Operators (intercepts or loadings) for which estimation should be freed |
Value
List with several entries
pars_mi |
Model parameters under full invariance |
pars_pi |
Model parameters under partial invariance |
mod_mi |
Fitted model under full invariance |
mod_pi |
Fitted model under partial invariance |
... |
More output |
See Also
See also sirt::invariance.alignment
Examples
## Not run:
#############################################################################
# EXAMPLE 1: Factor model under full and partial invariance
#############################################################################
#--- data simulation
set.seed(65)
G <- 3 # number of groups
I <- 5 # number of items
# define lambda and nu parameters
lambda <- matrix(1, nrow=G, ncol=I)
nu <- matrix(0, nrow=G, ncol=I)
err_var <- matrix(1, nrow=G, ncol=I)
# define size of noninvariance
dif <- 1
#- 1st group: N(0,1)
lambda[1,3] <- 1+dif*.4; nu[1,5] <- dif*.5
#- 2nd group: N(0.3,1.5)
gg <- 2 ;
lambda[gg,5] <- 1-.5*dif; nu[gg,1] <- -.5*dif
#- 3nd group: N(.8,1.2)
gg <- 3
lambda[gg,4] <- 1-.7*dif; nu[gg,2] <- -.5*dif
#- define distributions of groups
mu <- c(0,.3,.8)
sigma <- sqrt(c(1,1.5,1.2))
N <- rep(1000,3) # sample sizes per group
#* use simulation function
dat <- sirt::invariance_alignment_simulate(nu, lambda, err_var, mu, sigma, N,
exact=TRUE)
#--- estimate CFA
mod <- sirt::cfa_meas_inv(dat=dat[,-1], group=dat$group, verbose=TRUE, alpha=0.05)
mod$pars_mi
mod$pars_pi
## End(Not run)
[Package sirt version 4.1-15 Index]