# ============================================================
# Cohen's Kappa: Rater Agreement
# Biostatistics in R — Rverse Analytics
# https://rverseanalytics.com/learn-biostatistics/kappa
# ============================================================

# Inter-rater agreement: Cohen's kappa (base R)
# Two raters classify 50 items; their agreement table:
tab <- matrix(c(20, 5, 3, 22), nrow = 2, byrow = TRUE,
              dimnames = list(Rater1 = c("+", "-"), Rater2 = c("+", "-")))
tab
# Observed vs chance-expected agreement
po <- sum(diag(tab)) / sum(tab)
pe <- sum(rowSums(tab) * colSums(tab)) / sum(tab)^2
c(observed = po, expected = pe)
# Cohen's kappa - agreement beyond chance
kappa <- (po - pe) / (1 - pe)
kappa
