Estimation of the Partial Credit Model using the Eigenvector Method
This function performs the eigenvector approach to estimate item parameters which is based on a pairwise estimation approach (Garner & Engelhard, 2002). No assumption about person parameters is required for item parameter estimation. Statistical inference is performed by Jackknifing. If a group identifier is provided, tests for differential item functioning are performed.
rasch.evm.pcm(dat, jackunits=20, weights=NULL, pid=NULL, group=NULL, powB=2, adj_eps=0.3, progress=TRUE ) ## S3 method for class 'rasch.evm.pcm' summary(object, digits=3, file=NULL, ...) ## S3 method for class 'rasch.evm.pcm' coef(object,...) ## S3 method for class 'rasch.evm.pcm' vcov(object,...)
dat |
Data frame with dichotomous or polytomous item responses |
jackunits |
A number of Jackknife units (if an integer is provided as the argument value) or a vector in which the Jackknife units are already defined. |
weights |
Optional vector of sample weights |
pid |
Optional vector of person identifiers |
group |
Optional vector of group identifiers. In this case, item parameters are group wise estimated and tests for differential item functioning are performed. |
powB |
Power created in B matrix which is the basis of parameter estimation |
adj_eps |
Adjustment parameter for person parameter estimation
(see |
progress |
An optional logical indicating whether progress should be displayed |
object |
Object of class |
digits |
Number of digits after decimals for rounding in |
file |
Optional file name if |
... |
Further arguments to be passed |
A list with following entries
item |
Data frame with item parameters. The item parameter estimate
is denoted by |
b |
Item threshold parameters |
person |
Data frame with person parameters obtained (MLE) |
B |
Paired comparison matrix |
D |
Transformed paired comparison matrix |
coef |
Vector of estimated coefficients |
vcov |
Covariance matrix of estimated item parameters |
JJ |
Number of jackknife units |
JJadj |
Reduced number of jackknife units |
powB |
Used power of comparison matrix B |
maxK |
Maximum number of categories per item |
G |
Number of groups |
desc |
Some descriptives |
difstats |
Statistics for differential item functioning if |
Choppin, B. (1985). A fully conditional estimation procedure for Rasch Model parameters. Evaluation in Education, 9, 29-42.
Garner, M., & Engelhard, G. J. (2002). An eigenvector method for estimating item parameters of the dichotomous and polytomous Rasch models. Journal of Applied Measurement, 3, 107-128.
Wang, J., & Engelhard, G. (2014). A pairwise algorithm in R for rater-mediated assessments. Rasch Measurement Transactions, 28(1), 1457-1459.
See the pairwise package for the alternative row averaging approach of Choppin (1985) and Wang and Engelhard (2014) for an alternative R implementation.
############################################################################# # EXAMPLE 1: Dataset Liking for Science ############################################################################# data(data.liking.science) dat <- data.liking.science # estimate partial credit model using 10 Jackknife units mod1 <- sirt::rasch.evm.pcm( dat, jackunits=10 ) summary(mod1) ## Not run: # compare results with TAM library(TAM) mod2 <- TAM::tam.mml( dat ) r1 <- mod2$xsi$xsi r1 <- r1 - mean(r1) # item parameters are similar dfr <- data.frame( "b_TAM"=r1, mod1$item[,c( "est","est_jack") ] ) round( dfr, 3 ) ## b_TAM est est_jack ## 1 -2.496 -2.599 -2.511 ## 2 0.687 0.824 1.030 ## 3 -0.871 -0.975 -0.943 ## 4 -0.360 -0.320 -0.131 ## 5 -0.833 -0.970 -0.856 ## 6 1.298 1.617 1.444 ## 7 0.476 0.465 0.646 ## 8 2.808 3.194 3.439 ## 9 1.611 1.460 1.433 ## 10 2.396 1.230 1.095 ## [...] # partial credit model in eRm package miceadds::library_install("eRm") mod3 <- eRm::PCM(X=dat) summary(mod3) eRm::plotINFO(mod3) # plot item and test information eRm::plotICC(mod3) # plot ICCs eRm::plotPImap(mod3) # plot person-item maps ############################################################################# # EXAMPLE 2: Garner and Engelhard (2002) toy example dichotomous data ############################################################################# dat <- scan() 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 dat <- matrix( dat, 10, 4, byrow=TRUE) colnames(dat) <- paste0("I", 1:4 ) # estimate Rasch model with no jackknifing mod1 <- sirt::rasch.evm.pcm( dat, jackunits=0 ) # paired comparison matrix mod1$B ## I1_Cat1 I2_Cat1 I3_Cat1 I4_Cat1 ## I1_Cat1 0 3 4 5 ## I2_Cat1 1 0 3 3 ## I3_Cat1 1 2 0 2 ## I4_Cat1 1 1 1 0 ############################################################################# # EXAMPLE 3: Garner and Engelhard (2002) toy example polytomous data ############################################################################# dat <- scan() 2 2 1 1 1 2 1 2 0 0 1 0 0 0 0 0 1 1 2 0 1 2 2 1 1 2 2 0 2 1 2 2 1 1 0 1 0 1 0 0 2 1 2 2 2 2 1 0 0 1 dat <- matrix( dat, 10, 5, byrow=TRUE) colnames(dat) <- paste0("I", 1:5 ) # estimate partial credit model with no jackknifing mod1 <- sirt::rasch.evm.pcm( dat, jackunits=0, powB=3 ) # paired comparison matrix mod1$B ## I1_Cat1 I1_Cat2 I2_Cat1 I2_Cat2 I3_Cat1 I3_Cat2 I4_Cat1 I4_Cat2 I5_Cat1 I5_Cat2 ## I1_Cat1 0 0 2 0 1 1 2 1 2 1 ## I1_Cat2 0 0 0 3 2 2 2 2 2 3 ## I2_Cat1 1 0 0 0 1 1 2 0 2 1 ## I2_Cat2 0 1 0 0 1 2 0 3 1 3 ## I3_Cat1 1 1 1 1 0 0 1 2 3 1 ## I3_Cat2 0 1 0 2 0 0 1 1 1 1 ## I4_Cat1 0 1 0 0 0 2 0 0 1 2 ## I4_Cat2 1 0 0 2 1 1 0 0 1 1 ## I5_Cat1 0 1 0 1 2 1 1 2 0 0 ## I5_Cat2 0 0 0 1 0 0 0 0 0 0 ############################################################################# # EXAMPLE 4: Partial credit model for dataset data.mg from CDM package ############################################################################# library(CDM) data(data.mg,package="CDM") dat <- data.mg[, paste0("I",1:11) ] #*** Model 1: estimate partial credit model mod1 <- sirt::rasch.evm.pcm( dat ) # item parameters round( mod1$b, 3 ) ## Cat1 Cat2 Cat3 ## I1 -1.537 NA NA ## I2 -2.360 NA NA ## I3 -0.574 NA NA ## I4 -0.971 -2.086 NA ## I5 -0.104 0.201 NA ## I6 0.470 0.806 NA ## I7 -1.027 0.756 1.969 ## I8 0.897 NA NA ## I9 0.766 NA NA ## I10 0.069 NA NA ## I11 -1.122 1.159 2.689 #*** Model 2: estimate PCM with pairwise package miceadds::library_install("pairwise") mod2 <- pairwise::pair(daten=dat) summary(mod2) plot(mod2) # compute standard errors semod2 <- pairwise::pairSE(daten=dat, nsample=20) semod2 ############################################################################# # EXAMPLE 5: Differential item functioning for dataset data.mg ############################################################################# library(CDM) data(data.mg,package="CDM") dat <- data.mg[ data.mg$group %in% c(2,3,11), ] # define items items <- paste0("I",1:11) # estimate model mod1 <- sirt::rasch.evm.pcm( dat[,items], weights=dat$weight, group=dat$group ) summary(mod1) ############################################################################# # EXAMPLE 6: Differential item functioning for Rasch model ############################################################################# # simulate some data set.seed(9776) N <- 1000 # number of persons I <- 10 # number of items # simulate data for first group b <- seq(-1.5,1.5,len=I) dat1 <- sirt::sim.raschtype( stats::rnorm(N), b ) # simulate data for second group b1 <- b b1[4] <- b1[4] + .5 # introduce DIF for fourth item dat2 <- sirt::sim.raschtype( stats::rnorm(N,mean=.3), b1 ) dat <- rbind(dat1, dat2 ) group <- rep( 1:2, each=N ) # estimate model mod1 <- sirt::rasch.evm.pcm( dat, group=group ) summary(mod1) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.