marginal.truescore.reliability.RdThis function computes the marginal true-score reliability for
dichotomous data (Dimitrov, 2003; May & Nicewander, 1994) for
the four-parameter logistic item response model
(see rasch.mml2 for details regarding this IRT model).
marginal.truescore.reliability(b, a=1+0*b,c=0*b,d=1+0*b, mean.trait=0, sd.trait=1, theta.k=seq(-6,6,len=200) )
| b | Vector of item difficulties |
|---|---|
| a | Vector of item discriminations |
| c | Vector of guessing parameters |
| d | Vector of upper asymptotes |
| mean.trait | Mean of trait distribution |
| sd.trait | Standard deviation of trait distribution |
| theta.k | Grid at which the trait distribution should be evaluated |
A list with following entries:
Reliability of the test
True score variance (sig2.true, error variance
(sig2.error) and item reliability (rel.item).
Expected proportions correct are in the column pi.
Average proportion correct for all items and persons
True score variance \(\sigma^2_{\tau}\) (calculated by the formula in May & Nicewander, 1994)
Error variance \(\sigma^2_{e}\)
Dimitrov, D. (2003). Marginal true-score measures and reliability for binary items as a function of their IRT parameters. Applied Psychological Measurement, 27, 440-458.
May, K., & Nicewander, W. A. (1994). Reliability and information functions for percentile ranks. Journal of Educational Measurement, 31, 313-325.
See greenyang.reliability for calculating the reliability
for multidimensional measures.
############################################################################# # EXAMPLE 1: Dimitrov (2003) Table 1 - 2PL model ############################################################################# # item discriminations a <- 1.7*c(0.449,0.402,0.232,0.240,0.610,0.551,0.371,0.321,0.403,0.434,0.459, 0.410,0.302,0.343,0.225,0.215,0.487,0.608,0.341,0.465) # item difficulties b <- c( -2.554,-2.161,-1.551,-1.226,-0.127,-0.855,-0.568,-0.277,-0.017, 0.294,0.532,0.773,1.004,1.250,1.562,1.385,2.312,2.650,2.712,3.000 ) marginal.truescore.reliability( b=b, a=a ) ## Reliability=0.606 ############################################################################# # EXAMPLE 2: Dimitrov (2003) Table 2 # 3PL model: Poetry items (4 items) ############################################################################# # slopes, difficulties and guessing parameters a <- 1.7*c(1.169,0.724,0.554,0.706 ) b <- c(0.468,-1.541,-0.042,0.698 ) c <- c(0.159,0.211,0.197,0.177 ) res <- sirt::marginal.truescore.reliability( b=b, a=a, c=c) ## Reliability=0.403 ## > round( res$item, 3 ) ## item pi sig2.tau sig2.error rel.item ## 1 1 0.463 0.063 0.186 0.252 ## 2 2 0.855 0.017 0.107 0.135 ## 3 3 0.605 0.026 0.213 0.107 ## 4 4 0.459 0.032 0.216 0.130 ############################################################################# # EXAMPLE 3: Reading Data ############################################################################# data( data.read) #*** # Model 1: 1PL mod <- sirt::rasch.mml2( data.read ) marginal.truescore.reliability( b=mod$item$b ) ## Reliability=0.653 #*** # Model 2: 2PL mod <- sirt::rasch.mml2( data.read, est.a=1:12 ) marginal.truescore.reliability( b=mod$item$b, a=mod$item$a) ## Reliability=0.696 if (FALSE) { # compare results with Cronbach's alpha and McDonald's omega # posing a 'wrong model' for normally distributed data library(psych) psych::omega(dat, nfactors=1) # 1 factor ## Omega_h for 1 factor is not meaningful, just omega_t ## Omega ## Call: omega(m=dat, nfactors=1) ## Alpha: 0.69 ## G.6: 0.7 ## Omega Hierarchical: 0.66 ## Omega H asymptotic: 0.95 ## Omega Total 0.69 ##! Note that alpha in psych is the standardized one. }