This function parses a so called tammodel which is a
string used for model estimation in TAM.
The function is based on the lavaan syntax and operates
at the extension lavaanify.IRT.
String for model definition following the rules described in Details and
in Examples.
resp
Item response dataset
tam.method
One of the TAM methods tam.mml, tam.mml.2pl
or tam.mml.3pl.
doparse
Optional logical indicating whether lavmodel
should be parsed for DO statements.
Details
The model syntax tammodel consists of several sections.
Some of them are optional.
ANALYSIS:
Possible model types are unidimensional and multidimensional
item response models (TYPE="TRAIT"), latent class models
("LCA"), located latent class models ("LOCLCA";
e.g. Formann, 1989; Bartolucci, 2007),
ordered latent class models ("OLCA"; only works for
dichotomous item responses; e.g. Hoijtink, 1997; Shojima, 2007) and
mixture distribution models ("MIXTURE"; e.g. von Davier, 2007).
LAVAAN MODEL:
For specification of the syntax, see lavaanify.IRT.
MODEL CONSTRAINT:
Linear constraints can be specified by using conventional
specification in R syntax. All terms must be combined
with the + operator. Equality constraints are
set by using the == operator as in lavaan.
ITEM TYPE:
The following item types can be defined: Rasch model (Rasch),
the 2PL model (2PL), partial credit model (PCM)
and the generalized partial credit model (GPCM).
The item intercepts can also be smoothed for the PCM
and the GPCM by using a Fourier basis proposed by
Thissen, Cai and Bock (2010). For an item with a maximum
of score of K, a smoothed partial credit model
is requested by PCM(kk) where kk is an
integer between 1 and K. With kk=1, only a linear
function is used. The subsequent integers correspond to
Fourier functions with decreasing periods.
See Example 2, Model 7 of the tamaan
function.
PRIOR:
Possible prior distributions: Normal distribution N(mu,sd),
truncated normal distribution TN(mu,sd,low,upp) and
Beta distribution Beta(a,b).
Parameter labels and prior specification must be separated
by ~.
Value
A list with following (optional) entries
which are used as input in one of the TAM functions
tam.mml, tam.mml.2pl or
tam.mml.3pl:
tammodel
Model input for TAM
tammodel.dfr
Processed tammodel input
ANALYSIS
Syntax specified in ANALYSIS
ANALYSIS.list
Parsed specifications in ANALYSIS
LAVAANMODEL
Syntax specified in LAVAAN MODEL
lavpartable
Parameter table processed by the
syntax in LAVAAN MODEL
items
Informations about items: Number of categories,
specified item response function
maxcat
Maximum number of categories
ITEMTYPE
Syntax specified in ITEM TYPE
MODELCONSTRAINT
Syntax specified in MODEL CONSTRAINT
MODELCONSTRAINT.dfr
Processed syntax in MODEL CONSTRAINT
modelconstraint.thresh
Processed data frame for model constraint of thresholds
modelconstraint.loading
Processed data frame for loadings
resp
Data set for usage
method
Used TAM function
A
Design matrix A
Q
Design matrix for loadings
Q.fixed
Fixed values in Q matrix
B.fixed
Matrix with fixed item loadings
(used for tam.mml.2pl)
L
Processed design matrix for loadings when there
are model constraints for loadings
variance.fixed
Matrix for specification of fixed values
in covariance matrix
est.variance
Logical indicating whether variance should
be estimated (tam.mml.2pl)
theta.k
Theta design matrix
E
Design matrix E
notA
Logical indicating whether A matrix is defined
gammaslope.fixed
Fixed gammaslope parameters
gammaslope.prior
Prior distributions for gammaslope parameters
xsi.fixed
Fixed ξ parameter
xsi.prior
Prior distributions for ξ parameters
References
Bartolucci, F. (2007). A class of multidimensional IRT models for testing
unidimensionality and clustering items.
Psychometrika, 72, 141-157.
Formann, A. K. (1989). Constrained latent class models: Some further
applications. British Journal of Mathematical and Statistical
Psychology, 42, 37-54.
Hojtink, H., & Molenaar, I. W. (1997). A multidimensional item response model:
Constrained latent class analysis using the Gibbs sampler and posterior
predictive checks. Psychometrika, 62(2), 171-189.
Thissen, D., Cai, L., & Bock, R. D. (2010).
The nominal categories item response model.
In M. L. Nering & Ostini, R. (Eds.).
Handbook of Polytomous Item Reponse Models
(pp. 43-75). New York: Routledge.
Shojima, K. (2007). Latent rank theory: Estimation of item reference
profile by marginal maximum likelihood method with EM algorithm.
DNC Research Note 07-12.
von Davier, M. (2007). Mixture distribution diagnostic models.
ETS Research Report ETS RR-07-32. Princeton, ETS.
See Also
See tamaan for more examples. Other examples
are included in tam.mml and tam.mml.3pl.
lavaanify.IRT
Examples
#############################################################################
# EXAMPLE 1: Examples dichotomous data data.read
#############################################################################
library(sirt)
data(data.read,package="sirt")
dat <- data.read
#*********************************************************************
#*** Model 1: 2PL estimation with some fixed parameters and
# equality constraints
tammodel <- "
LAVAAN MODEL:
F2 =~ C1__C2 + 1.3*C3 + C4
F1 =~ A1__B1
# fixed loading of 1.4 for item B2
F1 =~ 1.4*B2
F1 =~ B3
F1 ~~ F1
F2 ~~ F2
F1 ~~ F2
B1 | 1.23*t1 ; A3 | 0.679*t1
A2 | a*t1 ; C2 | a*t1 ; C4 | a*t1
C3 | x1*t1 ; C1 | x1*t1
ITEM TYPE:
A1__A3 (Rasch) ;
A4 (2PL) ;
B1__C4 (Rasch) ;
"
# process model
out <- tamaanify( tammodel , resp=dat)
# inspect some output
out$method # used TAM function
out$lavpartable # lavaan parameter table
#*********************************************************************
#*** Model 2: Latent class analysis with three classes
tammodel <- "
ANALYSIS:
TYPE=LCA;
NCLASSES(3); # 3 classes
NSTARTS(5,20); # 5 random starts with 20 iterations
LAVAAN MODEL:
F =~ A1__C4
"
# process syntax
out <- tamaanify( tammodel , resp=dat)
str(out$E) # E design matrix for estimation with tam.mml.3pl function
## Not run:
#*********************************************************************
#*** Model 3: Linear constraints for item intercepts and item loadings
tammodel <- "
LAVAAN MODEL:
F =~ lam1__lam10*A1__C2
F ~~ F
A1 | a1*t1
A2 | a2*t1
A3 | a3*t1
A4 | a4*t1
B1 | b1*t1
B2 | b2*t1
B3 | b3*t1
C1 | t1
MODEL CONSTRAINT:
# defined parameters
# only linear combinations are permitted
b2 == 1.3*b1 + (-0.6)*b3
a1 == q1
a2 == q2 + t
a3 == q1 + 2*t
a4 == q2 + 3*t
# linear constraints for loadings
lam2 == 1.1*lam1
lam3 == 0.9*lam1 + (-.1)*lam0
lam8 == lam0
lam9 == lam0
"
# parse syntax
mod1 <- tamaanify( tammodel , resp=dat)
mod1$A # design matrix A for intercepts
mod1$L[,1,] # design matrix L for loadings
## End(Not run)
#############################################################################
# EXAMPLE 2: Examples polytomous data data.Students
#############################################################################
library(CDM)
data( data.Students , package="CDM")
dat <- data.Students[,3:13]
#*********************************************************************
#*** Model 1: Two-dimensional generalized partial credit model
tammodel <- "
LAVAAN MODEL:
FA =~ act1__act5
FS =~ sc1__sc4
FA ~~ 1*FA
FS ~~ 1*FS
FA ~~ FS
act1__act3 | t1
sc2 | t2
"
out <- tamaanify( tammodel , resp=dat)
out$A # design matrix for item intercepts
out$Q # loading matrix for items
#*********************************************************************
#*** Model 2: Linear constraints
# In the following syntax, linear equations for multiple constraints
# are arranged over multiple lines.
tammodel <- "
LAVAAN MODEL:
F =~ a1__a5*act1__act5
F ~~ F
MODEL CONSTRAINT:
a1 == delta +
tau1
a2 == delta
a3 == delta + z1
a4 == 1.1*delta +
2*tau1
+ (-0.2)*z1
"
# tamaanify model
res <- tamaanify( tammodel , dat )
res$MODELCONSTRAINT.dfr
res$modelconstraint.loading