如何在R Studio中计算两位评估者3个变量的Cohen's Kappa?
正确计算Cohen's Kappa的步骤
1. 导入Excel数据
首先用readxl包读取两个Excel文件,先安装并加载包:
install.packages("readxl") library(readxl) # 替换成你的Excel文件路径 IRR_1 <- read_excel("你的评估者1表格路径.xlsx") IRR_2 <- read_excel("你的评估者2表格路径.xlsx")
2. 提取对应评估列
从两个表格中提取需要对比的3列,必须确保两表中提取的列是同一评估项,且样本顺序完全一致:
# 假设要提取的列名为var1、var2、var3,根据实际列名修改 rater1_cols <- IRR_1[, c("var1", "var2", "var3")] rater2_cols <- IRR_2[, c("var1", "var2", "var3")]
如果列名不一致,手动调整列索引或列名,保证每一组列对应同一个评估维度。
3. 合并数据(可选但便于管理)
把两个评估者的对应列合并到一个数据框:
combined_df <- data.frame( r1_var1 = rater1_cols$var1, r2_var1 = rater2_cols$var1, r1_var2 = rater1_cols$var2, r2_var2 = rater2_cols$var2, r1_var3 = rater1_cols$var3, r2_var3 = rater2_cols$var3 )
4. 逐列计算Cohen's Kappa
Cohen's Kappa是针对一对评估结果计算的,所以需要对每个评估维度单独计算:
library(DescTools) # 计算第一个维度的Kappa kappa_var1 <- CohenKappa(table(combined_df$r1_var1, combined_df$r2_var1)) print(kappa_var1) # 计算第二个维度的Kappa kappa_var2 <- CohenKappa(table(combined_df$r1_var2, combined_df$r2_var2)) print(kappa_var2) # 计算第三个维度的Kappa kappa_var3 <- CohenKappa(table(combined_df$r1_var3, combined_df$r2_var3)) print(kappa_var3)
你之前代码的问题
xtabs(IRR_1$1 + IRR_2$1)写法错误:xtabs需要公式格式,且列索引$1的写法仅当列名是纯数字时有效,还要加引号$"1",但即便如此,这种用法也不适合构造评估者对比的列联表。CohenKappa需要的是由table()生成的列联表,或两个对应的评分向量,不是你错误构造的xtabs输出。
内容的提问来源于stack exchange,提问作者eagersquirrel
相关产品推荐
相关产品推荐

