Description Usage Arguments Details Author(s) References See Also Examples
This function uses a jackknife approach to compute person parameters. The jackknife ability measure is based on primarily estimated models (PP_4pl()
, PP_gpcm()
or PPall()
) - so the function is applied on the estimation objects, and jackknifed ability measures are returned.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | JKpp(estobj, ...)
## S3 method for class 'fourpl'
JKpp(
estobj,
cmeth = "mean",
maxsteps = 500,
exac = 0.001,
fullmat = FALSE,
ctrl = list(),
...
)
## S3 method for class 'gpcm'
JKpp(
estobj,
cmeth = "mean",
maxsteps = 500,
exac = 0.001,
fullmat = FALSE,
ctrl = list(),
...
)
## S3 method for class 'gpcm4pl'
JKpp(
estobj,
cmeth = "mean",
maxsteps = 500,
exac = 0.001,
fullmat = FALSE,
ctrl = list(),
...
)
## S3 method for class 'jk'
print(x, ...)
## S3 method for class 'jk'
summary(object, nrowmax = 15, ...)
|
estobj |
An object which originates from using |
... |
More input. |
cmeth |
Choose the centering method, to summarize the n jackknife results to one single ability estimate. There are three valid entries: "mean", "median" and "AMT" (see Details for further description). |
maxsteps |
The maximum number of steps the NR Algorithm will take. |
exac |
How accurate are the estimates supposed to be? Default is 0.001. |
fullmat |
Default = FALSE. If TRUE, the function returns the whole jackknife matrix, which is the basis for the jackknife estimator. |
ctrl |
More controls |
x |
an object of class |
object |
An object of class |
nrowmax |
When printing the matrix of estimates - how many rows should be shown? Default = 15. |
Please use the Jackknife Standard-Error output with caution! It is implemented as suggested in Wainer and Wright (1980), but the results seem a bit strange, because the JK-SE is supposed to overestimate the SE compared to the MLE-SE. Actually, in all examples an underestimation of the SE was observed compared to the MLE/WLE-SE!
AMT-robustified jackknife: When choosing cmeth = AMT
, the jackknife ability subsample estimates and the original supplied ability estimate are combined to a single jackknife-ability value by the Sine M-estimator. The AMT (or Sine M-estimator) is one of the winners in the Princeton Robustness Study of 1972. To get a better idea how the estimation process works, take a closer look to the paper which is mentioned below (Wainer & Wright, 1980).
Manuel Reif
Wainer, H., & Wright, B. D. (1980). Robust estimation of ability in the Rasch model. Psychometrika, 45(3), 373-391.
PP_gpcm, PP_4pl, PPall
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | ################# Jackknife ###################################################
### 4 PL model ######
### data creation ##########
set.seed(1623)
# intercepts
diffpar <- seq(-3,3,length=12)
# slope parameters
sl <- round(runif(12,0.5,1.5),2)
la <- round(runif(12,0,0.25),2)
ua <- round(runif(12,0.8,1),2)
# response matrix
abpar <- rnorm(10,0,1.7)
awm <- sim_4pl(beta = diffpar,alpha = sl,lowerA = la,upperA=ua,theta = abpar)
## 1PL model #####
# MLE
res1plmle <- PP_4pl(respm = awm,thres = diffpar,type = "mle")
# WLE
res1plwle <- PP_4pl(respm = awm,thres = diffpar,type = "wle")
# MAP estimation
res1plmap <- PP_4pl(respm = awm,thres = diffpar,type = "map")
# EAP estimation
res1pleap <- PP_4pl(respm = awm,thres = diffpar,type = "eap")
# robust estimation
res1plrob <- PP_4pl(respm = awm,thres = diffpar,type = "robust")
## centering method = mean
res_jk1 <- JKpp(res1plmle)
res_jk2 <- JKpp(res1plwle)
res_jk3 <- JKpp(res1plmap)
res_jk4 <- JKpp(res1plrob)
res_jk5 <- JKpp(res1pleap)
summary(res_jk1)
## centering method = median
res_jk1a <- JKpp(res1plmle,cmeth = "median")
res_jk2a <- JKpp(res1plwle,cmeth = "median")
res_jk3a <- JKpp(res1plmap,cmeth = "median")
summary(res_jk2a)
## centering method = AMT
res_jk1b <- JKpp(res1plmle,cmeth = "AMT")
res_jk2b <- JKpp(res1plwle,cmeth = "AMT")
res_jk3b <- JKpp(res1plmap,cmeth = "AMT")
summary(res_jk3b)
## 2PL model #####
# MLE
res2plmle <- PP_4pl(respm = awm,thres = diffpar, slopes = sl,type = "mle")
# WLE
res2plwle <- PP_4pl(respm = awm,thres = diffpar, slopes = sl,type = "wle")
# MAP estimation
res2plmap <- PP_4pl(respm = awm,thres = diffpar, slopes = sl,type = "map")
# EAP estimation
res2pleap <- PP_4pl(respm = awm,thres = diffpar,slopes = sl,type = "eap")
# robust estimation
res2plrob <- PP_4pl(respm = awm,thres = diffpar,slopes = sl,type = "robust")
res_jk6 <- JKpp(res2plmle)
res_jk7 <- JKpp(res2plwle)
res_jk8 <- JKpp(res2plmap)
res_jk9 <- JKpp(res2pleap)
res_jk10 <- JKpp(res2plrob)
### GPCM model ######
# some threshold parameters
THRES <- matrix(c(-2,-1.23,1.11,3.48,1
,2,-1,-0.2,0.5,1.3,-0.8,1.5),nrow=2)
# slopes
sl <- c(0.5,1,1.5,1.1,1,0.98)
awmatrix <- matrix(c(1,0,2,0,1,1,1,0,0,1,2,0,0,0,0,0,0,0,0,1,
1,2,2,1,1,1,1,0,0,1),byrow=TRUE,nrow=5)
### PCM model ######
# MLE
respcmlmle <- PP_gpcm(respm = awmatrix,thres = THRES,
slopes = rep(1,ncol(THRES)),type = "mle")
# WLE
respcmwle <- PP_gpcm(respm = awmatrix,thres = THRES,
slopes = rep(1,ncol(THRES)),type = "wle")
# MAP estimation
respcmmap <- PP_gpcm(respm = awmatrix,thres = THRES,
slopes = rep(1,ncol(THRES)),type = "map")
res_jk11 <- JKpp(respcmlmle)
res_jk12 <- JKpp(respcmwle)
res_jk13 <- JKpp(respcmmap)
### GPCM/4-PL mixed model ######
THRES <- matrix(c(-2,-1.23,1.11,3.48,1
,2,-1,-0.2,0.5,1.3,-0.8,1.5),nrow=2)
sl <- c(0.5,1,1.5,1.1,1,0.98)
THRESx <- THRES
THRESx[2,1:3] <- NA
# for the 4PL item the estimated parameters are submitted,
# for the GPCM items the lower asymptote = 0
# and the upper asymptote = 1.
la <- c(0.02,0.1,0,0,0,0)
ua <- c(0.97,0.91,1,1,1,1)
awmatrix <- matrix(c(1,0,1,0,1,1,1,0,0,1
,2,0,0,0,1,0,0,0,0,1
,0,2,2,1,1,1,1,0,0,1),byrow=TRUE,nrow=5)
# create model2est
# this function tries to help finding the appropriate
# model by inspecting the THRESx.
model2est <- findmodel(THRESx)
# MLE estimation
respmixed_mle <- PPall(respm = awmatrix,
thres = THRESx,
slopes = sl,
lowerA = la,
upperA=ua,
type = "mle",
model2est=model2est)
# WLE estimation
respmixed_wle <- PPall(respm = awmatrix,
thres = THRESx,
slopes = sl,
lowerA = la,
upperA=ua,
type = "wle",
model2est=model2est)
res_jk114 <- JKpp(respmixed_mle)
res_jk115 <- JKpp(respmixed_wle)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.