The tmt_rm function estimates the Rasch model if the data is collected within a multistage design (see Zwitser and Maris, 2015). If no mstdesign is submitted to the function, than a simple Rasch model will be estimated.

tmt_rm(dat, mstdesign = NULL, weights = NULL, start = NULL,
  sum0 = TRUE, se = TRUE, optimization = "nlminb", ...)

Arguments

dat

a matrix of dichotomous (0/1) data or a list of the function tmt_designsim

mstdesign

Model for the multistage design, if CML should be applied to multistage. If not, leave the default value

weights

is optional for the weights of cases

start

Vector of start values. If no vector is provided, the start values will be automatic generated

sum0

logical: If the item parameters should be normed to 'sum = 0' as recommended by Glas (2016, p. 208). Otherwise sum0=FALSE

se

logical: should the standard error should be estimated?

optimization

character: Per default 'nlminb' is used but 'optim' is also supported.

...

optional further arguments for optim and nlminb use control = list() with arguments.

Value

List with following entries

betapar

Estimated item difficulty parameters (if sum0=FALSE, than the first item is set to 0)

se.beta

Standard errors of the estimated item parameters

loglik

Conditional log-likelihood of the model

df

Number of estimated parameters

N

Number of Persons

I

Number of items

data_orig

Submitted data frame with item responses

data

Used data frame with item responses

desmat

Design matrix

convergence

Convergence criterion

iterations

Number of iterations

hessian

Hessian-Matrix

model

Used model ((mst) for Rasch model with multistage design)

call

Submitted arguments for the function (matched call)

designelements

If the multistage version is requested, the preprocessed design is returned, otherwise NULL

mstdesign

If the multistage version is requested, the submitted design is returned, otherwise NULL

Details

According to Glas (1988) <doi:10.3102/10769986013001045> CML estimation of item parameters is biased if the data is collected in multistage designs and this design is not considered. Zwitser and Maris (2015) <doi:10.1007/s11336-013-9369-6> propose to use an additional design matrix to fragment the elementary-symmetric-function. Their approach is implemented in this package.

References

  • Baker, F. B., & Harwell, M. R. (1996). Computing elementary symmetric functions and their derivatives: A didactic. Applied Psychological Measurement, 20(2), 169-192. Chicago

  • Baker, F. B., & Kim, S. H. (2004). Item response theory: Parameter estimation techniques. CRC Press.

  • Fischer, G. H., & Molenaar, I. W. (Eds.). (2012). Rasch models: Foundations, recent developments, and applications. Springer Science & Business Media.

  • Formann, A. K. (1986). A note on the computation of the second-order derivatives of the elementary symmetric functions in the Rasch model. Psychometrika, 51(2), 335-339.

  • Glas, C.A.W. (1988). The Rasch model and multistage testing. Journal of Educational Statistics, 13(1), 45-52.

  • Glas, C.A.W. (2016). Maximum-Likelihood Estimation. In van der Linden, W.J. (Ed.), Handbook of Item Response Theory: Volume two: Statistical tools. (pp. 197 - 236). New York: CRC Press.

  • Rasch, G. (1960). Probabalistic models for some intelligence and attainment tests. Danmarks paedagogiske institut.

  • Verhelst, N.D., Glas, C.A.W. und van der Sluis, A. (1984). Estimation Problems in the Rasch-Model: The Basic Symmetric Functions. Computational Statistics Quarterly, 1(3), 245-262.

  • Zwitser, R. J., & Maris, G. (2015). Conditional statistical inference with multistage testing designs. Psychometrika, 80(1), 65-84.

See also

Examples

# example for tmt_rm ############################################################################# # Example-1 simple Rasch model ############################################################################# dat <- tmt:::sim.rm(theta = 100, b = 10, seed = 1111) dat.rm <- tmt_rm(dat = dat) summary(dat.rm)
#> #> Call: #> tmt_rm(dat = dat) #> #> #> Results of Rasch model (nmst) estimation: #> #> Difficulty parameters: #> est.b_i01 est.b_i02 est.b_i03 est.b_i04 est.b_i05 est.b_i06 #> Estimate -0.5437735 0.8132419 0.1538561 0.2977100 -0.4505727 -2.9776993 #> Std. Error 0.2096113 0.2261380 0.2101321 0.2122692 0.2087598 0.3658568 #> est.b_i07 est.b_i08 est.b_i09 est.b_i10 #> Estimate 0.2014657 0.6506939 0.9856182 0.8694598 #> Std. Error 0.2107595 0.2206770 0.2330848 0.2282706 #> #> CLL: -373.6552 #> Number of iterations: 26 #> Number of parameters: 10 #>
############################################################################# # Example-1 for multistage-design ############################################################################# mstdesign <- " M1 =~ c(i1, i2, i3, i4, i5) M2 =~ c(i6, i7, i8, i9, i10) M3 =~ c(i11, i12, i13, i14, i15) # define starting module Start == M2 # define path p1 := Start(0,2) + M1 p2 := Start(3,5) + M3 " items <- seq(-1,1,length.out = 15) names(items) <- paste0("i",1:15) persons = 1000 mean = 0 sd = 1 dat <- tmt_sim(mstdesign = mstdesign, items = items, persons = persons, mean = mean, sd = sd) dat.rm <- tmt_rm(dat = dat, mstdesign = mstdesign) summary(dat.rm)
#> #> Call: #> tmt_rm(dat = dat, mstdesign = mstdesign) #> #> #> Results of Rasch model (mst) estimation: #> #> Difficulty parameters: #> est.b_i1 est.b_i2 est.b_i3 est.b_i4 est.b_i5 est.b_i6 #> Estimate -1.1231632 -0.7460452 -0.4971600 -0.6128814 -0.4614154 -0.35769525 #> Std. Error 0.1041632 0.1031663 0.1036342 0.1033056 0.1037749 0.07328443 #> est.b_i7 est.b_i8 est.b_i9 est.b_i10 est.b_i11 est.b_i12 #> Estimate -0.11585266 0.004447177 0.10088173 0.33974679 0.5174146 0.4135879 #> Std. Error 0.07293232 0.072935340 0.07302074 0.07357146 0.1066099 0.1067474 #> est.b_i13 est.b_i14 est.b_i15 #> Estimate 0.6499617 0.9784994 0.9096738 #> Std. Error 0.1066768 0.1080116 0.1075931 #> #> CLL: -4021.47 #> Number of iterations: 48 #> Number of parameters: 15 #>
if (FALSE) { ############################################################################ # Example-2 simple Rasch model ############################################################################ dat <- tmt:::sim.rm(theta = 100, b = 10, seed = 1111) dat.rm <- tmt_rm(dat = dat) summary(dat.rm) ############################################################################ # Example-2 for multistage-design ############################################################################ # also using 'paste' is possible mstdesign <- " M1 =~ paste0('i',1:5) M2 =~ paste0('i',6:10) M3 =~ paste0('i',11:15) M4 =~ paste0('i',16:20) M5 =~ paste0('i',21:25) M6 =~ paste0('i',26:30) # define starting module Start == M4 # define path p1 := Start(0,2) + M2(0,2) + M1 p2 := Start(0,2) + M2(3,5) + M3 p3 := Start(3,5) + M5(0,2) + M3 p4 := Start(3,5) + M5(3,5) + M6 " items <- seq(-1,1,length.out = 30) names(items) <- paste0("i",1:30) persons = 1000 mean = 0 sd = 1 dat <- tmt_sim(mstdesign = mstdesign, items = items, persons = persons, mean = mean, sd = sd) dat.rm <- tmt_rm(dat = dat, mstdesign = mstdesign) summary(dat.rm) ############################################################################ # Example-3 for cumulative multistage-design ############################################################################ # also using 'paste' is possible mstdesign <- " M1 =~ paste0('i',21:30) M2 =~ paste0('i',11:20) M3 =~ paste0('i', 1:10) M4 =~ paste0('i',31:40) M5 =~ paste0('i',41:50) M6 =~ paste0('i',51:60) # define starting module Start == M1 # define path p1 := Start(0, 5) += M2( 0,10) += M3 p2 := Start(0, 5) += M2(11,15) += M4 p3 := Start(6,10) += M5( 6,15) += M4 p4 := Start(6,10) += M5(16,20) += M6 " items <- seq(-1,1,length.out = 60) names(items) <- paste0("i",1:60) persons = 1000 mean = 0 sd = 1 dat <- tmt_sim(mstdesign = mstdesign, items = items, persons = persons, mean = mean, sd = sd) dat.rm <- tmt_rm(dat = dat, mstdesign = mstdesign) summary(dat.rm) }