Latent Regression Model
This function fits a latent regression model \bold{θ}=\bold{Y}
\bold{β} + \bold{\varepsilon}.
Only the individual likelihood evaluated at a
\bold{θ} grid is needed as the input. Like in
tam.mml
a multivariate normal distribution is posed
on the residual distribution. Plausible values can be drawn by subsequent
application of tam.pv
(see Example 1).
tam.latreg(like, theta=NULL, Y=NULL, group=NULL, formulaY=NULL, dataY=NULL, beta.fixed=FALSE, beta.inits=NULL, variance.fixed=NULL, variance.inits=NULL, est.variance=TRUE, pweights=NULL, pid=NULL, userfct.variance=NULL, variance.Npars=NULL, verbose=TRUE, control=list()) ## S3 method for class 'tam.latreg' summary(object,file=NULL,...) ## S3 method for class 'tam.latreg' print(x,...)
like |
Individual likelihood. This can be typically extracted from fitted
item response models by making use of |
theta |
Used \bold{θ} grid in the fitted IRT model. If |
Y |
A matrix of covariates in latent regression. Note that the intercept is automatically included as the first predictor. |
group |
An optional vector of group identifiers |
formulaY |
An R formula for latent regression. Transformations of predictors
in Y (included in |
dataY |
An optional data frame with possible covariates Y in latent regression.
This data frame will be used if an R formula in |
beta.fixed |
A matrix with three columns for fixing regression coefficients.
1st column: Index of Y value, 2nd column: dimension,
3rd column: fixed β value. |
beta.inits |
A matrix (same format as in |
variance.fixed |
An optional matrix with three columns for fixing entries in covariance matrix: 1st column: dimension 1, 2nd column: dimension 2, 3rd column: fixed value |
variance.inits |
Initial covariance matrix in estimation. All matrix entries have to be
specified and this matrix is NOT in the same format like
|
est.variance |
Should the covariance matrix be estimated? This argument
applies to estimated item slopes in |
pweights |
An optional vector of person weights |
pid |
An optional vector of person identifiers |
userfct.variance |
Optional user customized function for variance specification (See Simulated Example 17). |
variance.Npars |
Number of estimated parameters of variance matrix
if a |
verbose |
Optional logical indicating whether iteration should be displayed. |
control |
List of control parameters, see |
object |
Object of class |
file |
A file name in which the summary output will be written |
x |
Object of class |
... |
Further arguments to be passed |
Subset of values of tam.mml
See also tam.pv
for plausible value imputation.
## Not run: ############################################################################# # EXAMPLE 1: Unidimensional latent regression model with fitted IRT model in # sirt package ############################################################################# library(sirt) data(data.pisaRead, package="sirt") dat <- data.pisaRead$data items <- grep("R4", colnames(dat), value=TRUE ) # select test items from data # define testlets testlets <- substring( items, 1, 4 ) itemcluster <- match( testlets, unique(testlets) ) # fit Rasch copula model (only few iterations) mod <- sirt::rasch.copula2( dat[,items], itemcluster=itemcluster, mmliter=5) # extract individual likelihood like1 <- IRT.likelihood( mod ) # fit latent regression model in TAM Y <- dat[, c("migra", "hisei", "female") ] mod2 <- TAM::tam.latreg( like1, theta=attr(like1, "theta"), Y=Y, pid=dat$idstud ) summary(mod2) # plausible value imputation pv2 <- TAM::tam.pv( mod2 ) # create list of imputed datasets Y <- dat[, c("idstud", "idschool", "female", "hisei", "migra") ] pvnames <- c("PVREAD") datlist <- TAM::tampv2datalist( pv2, pvnames=pvnames, Y=Y, Y.pid="idstud") #--- fit some models library(mice) library(miceadds) # convert data list into a mice object mids1 <- miceadds::datalist2mids( datlist ) # perform an ANOVA mod3a <- with( mids1, stats::lm(PVREAD ~ hisei*migra) ) summary( pool( mod3a )) mod3b <- miceadds::mi.anova( mids1, "PVREAD ~ hisei*migra" ) ############################################################################# # EXAMPLE 2: data.pisaRead - fitted IRT model in mirt package ############################################################################# library(sirt) library(mirt) data(data.pisaRead, package="sirt") dat <- data.pisaRead$data # define dataset with item responses items <- grep("R4", colnames(dat), value=TRUE ) resp <- dat[,items] # define dataset with covariates X <- dat[, c("female","hisei","migra") ] # fit 2PL model in mirt mod <- mirt::mirt( resp, 1, itemtype="2PL", verbose=TRUE) print(mod) # extract coefficients sirt::mirt.wrapper.coef(mod) # extract likelihood like <- IRT.likelihood(mod) str(like) # fit latent regression model in TAM mod2 <- TAM::tam.latreg( like, Y=X, pid=dat$idstud ) summary(mod2) # plausible value imputation pv2 <- TAM::tam.pv( mod2, samp.regr=TRUE, nplausible=5 ) # create list of imputed datasets X <- dat[, c("idstud", "idschool", "female", "hisei", "migra") ] pvnames <- c("PVREAD") datlist <- TAM::tampv2datalist( pv2, pvnames=pvnames, Y=X, Y.pid="idstud") str(datlist) # regression using semTools package library(semTools) lavmodel <- " PVREAD ~ hisei + female " mod1a <- semTools::sem.mi( lavmodel, datlist) summary(mod1a, standardized=TRUE, rsquare=TRUE) ############################################################################# # EXAMPLE 3: data.Students - fitted confirmatory factor analysis in lavaan ############################################################################# library(CDM) library(sirt) library(lavaan) data(data.Students, package="CDM") dat <- data.Students vars <- scan(what="character", nlines=1) urban female sc1 sc2 sc3 sc4 mj1 mj2 mj3 mj4 dat <- dat[, vars] dat <- na.omit(dat) # fit confirmatory factor analysis in lavaan lavmodel <- " SC=~ sc1__sc4 SC ~~ 1*SC MJ=~ mj1__mj4 MJ ~~ 1*MJ SC ~~ MJ " # process lavaan syntax res <- TAM::lavaanify.IRT( lavmodel, dat ) # fit lavaan CFA model mod1 <- lavaan::cfa( res$lavaan.syntax, dat, std.lv=TRUE) summary(mod1, standardized=TRUE, fit.measures=TRUE ) # extract likelihood like1 <- TAM::IRTLikelihood.cfa( dat, mod1 ) str(like1) # fit latent regression model in TAM X <- dat[, c("urban","female") ] mod2 <- TAM::tam.latreg( like1, Y=X ) summary(mod2) # plausible value imputation pv2 <- TAM::tam.pv( mod2, samp.regr=TRUE, normal.approx=TRUE ) # create list of imputed datasets Y <- dat[, c("urban", "female" ) ] pvnames <- c("PVSC", "PVMJ") datlist <- TAM::tampv2datalist( pv2, pvnames=pvnames, Y=Y ) str(datlist) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.