Computes modified kappa for each item, as proposed by Polit, Beck, and Owen (2007). Modified kappa adjusts the Item-level Content Validity Index (I-CVI) for chance agreement under the assumption that each expert independently rates an item as relevant with probability 0.5.
Usage
mod_kappa(
ratings,
relevant_threshold = 3,
na.rm = FALSE,
ci = FALSE,
n_boot = 2000,
ci_method = c("percentile", "bca"),
conf_level = 0.95,
seed = NULL
)Arguments
- ratings
A numeric matrix or data frame of expert ratings (rows = experts, columns = items). A numeric vector is also accepted, treated as a single item.
- relevant_threshold
Integer. Minimum rating considered "relevant". Defaults to 3.
- na.rm
Logical. If
TRUE, missing ratings are excluded when counting experts and agreements. Defaults toFALSE.- ci
Logical. If
TRUE, returns a data frame with bootstrap confidence intervals alongside the point estimate. Defaults toFALSE(returns a numeric vector, identical to the package's pre-0.2.0 behaviour).- n_boot
Integer. Number of bootstrap replicates when
ci = TRUE. Defaults to 2000 (Davison & Hinkley, 1997; Hesterberg, 2015).- ci_method
Character. One of
"percentile"(default; Efron & Tibshirani, 1993) or"bca"(bias-corrected and accelerated; DiCiccio & Efron, 1996).- conf_level
Numeric. Confidence level between 0 and 1. Defaults to 0.95.
- seed
Integer or
NULL. If supplied, passed toset.seed()for reproducible bootstrap samples. Defaults toNULL.
Value
When ci = FALSE (default), a named numeric vector of
modified-kappa values, one per item (or a single numeric value if
ratings is a vector). When ci = TRUE, a data frame with one row
per item and columns item, mod_kappa, ci_lower, ci_upper,
ci_method, conf_level, n_boot.
Details
Optional bootstrap confidence intervals are available via ci = TRUE.
Resampling is performed at the expert (row) level, matching the standard
inferential frame for inter-rater reliability analyses (Gwet, 2014).
The formula is:
$$\kappa^* = (\mathrm{I\text{-}CVI} - P_c) / (1 - P_c)$$
where the chance agreement probability is
$$P_c = \binom{N}{A} \times 0.5^N$$
with N = number of experts and A = number of experts rating the item as relevant.
Common interpretation cutoffs (Cicchetti and Sparrow, 1981; adopted by Polit et al., 2007):
kappa* < 0.40: poor
kappa* 0.40-0.59: fair
kappa* 0.60-0.74: good
kappa* > 0.74: excellent
References
Cicchetti, D. V., & Sparrow, S. A. (1981). Developing criteria for establishing interrater reliability of specific items: Applications to assessment of adaptive behavior. American Journal of Mental Deficiency, 86(2), 127-137.
Polit, D. F., Beck, C. T., & Owen, S. V. (2007). Is the CVI an acceptable indicator of content validity? Appraisal and recommendations. Research in Nursing & Health, 30(4), 459-467. doi:10.1002/nur.20199
Davison, A. C., & Hinkley, D. V. (1997). Bootstrap methods and their application. Cambridge University Press. doi:10.1017/CBO9780511802843
DiCiccio, T. J., & Efron, B. (1996). Bootstrap confidence intervals. Statistical Science, 11(3), 189-228. doi:10.1214/ss/1032280214
Efron, B., & Tibshirani, R. J. (1993). An introduction to the bootstrap. Chapman and Hall. doi:10.1201/9780429246593
Gwet, K. L. (2014). Handbook of inter-rater reliability (4th ed.). Advanced Analytics, LLC.
Hesterberg, T. C. (2015). What teachers should know about the bootstrap: Resampling in the undergraduate statistics curriculum. The American Statistician, 69(4), 371-386. doi:10.1080/00031305.2015.1089789
Examples
ratings <- matrix(
c(4, 4, 3, 4, 4,
3, 4, 4, 4, 3,
2, 3, 3, 4, 3,
1, 2, 3, 2, 3),
nrow = 5,
dimnames = list(NULL, paste0("item", 1:4))
)
mod_kappa(ratings)
#> item1 item2 item3 item4
#> 1.0000000 1.0000000 0.7629630 0.1272727
# With bootstrap confidence intervals (new in v0.2.0)
mod_kappa(ratings, ci = TRUE, n_boot = 1000, seed = 1)
#> item mod_kappa ci_lower ci_upper ci_method conf_level n_boot
#> 1 item1 1.0000000 1.00000000 1.000000 percentile 0.95 1000
#> 2 item2 1.0000000 1.00000000 1.000000 percentile 0.95 1000
#> 3 item3 0.7629630 0.12727273 1.000000 percentile 0.95 1000
#> 4 item4 0.1272727 -0.03225806 0.762963 percentile 0.95 1000