Function for Parsing TAM Input
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.
tamaanify(tammodel, resp, tam.method=NULL, doparse=TRUE )
tammodel |
String for model definition following the rules described in Details and in Examples. |
resp |
Item response dataset |
tam.method |
One of the TAM methods |
doparse |
Optional logical indicating whether |
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 ~.
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 |
ANALYSIS |
Syntax specified in |
ANALYSIS.list |
Parsed specifications in |
LAVAANMODEL |
Syntax specified in |
lavpartable |
Parameter table processed by the
syntax in |
items |
Informations about items: Number of categories, specified item response function |
maxcat |
Maximum number of categories |
ITEMTYPE |
Syntax specified in |
MODELCONSTRAINT |
Syntax specified in |
MODELCONSTRAINT.dfr |
Processed syntax in |
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 |
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 ( |
theta.k |
Theta design matrix |
E |
Design matrix E |
notA |
Logical indicating whether A matrix is defined |
gammaslope.fixed |
Fixed |
gammaslope.prior |
Prior distributions for |
xsi.fixed |
Fixed ξ parameter |
xsi.prior |
Prior distributions for ξ parameters |
Bartolucci, F. (2007). A class of multidimensional IRT models for testing unidimensionality and clustering items. Psychometrika, 72, 141-157. doi: 10.1007/s11336-005-1376-9
Formann, A. K. (1989). Constrained latent class models: Some further applications. British Journal of Mathematical and Statistical Psychology, 42, 37-54. doi: 10.1111/j.2044-8317.1989.tb01113.x
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. doi: 10.1007/BF02295273
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 Response 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. doi: 10.1002/j.2333-8504.2007.tb02074.x
See tamaan for more examples. Other examples
are included in tam.mml and tam.mml.3pl.
#############################################################################
# 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 <- TAM::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 <- TAM::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 <- TAM::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 <- TAM::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 <- TAM::tamaanify( tammodel, dat )
res$MODELCONSTRAINT.dfr
res$modelconstraint.loadingPlease choose more modern alternatives, such as Google Chrome or Mozilla Firefox.