Conger (1980) 提出的 kappa的修改版本是否在 Stata 中可用?试图谷歌它无济于事。
4 回答
这是一个老问题,但万一有人还在寻找——SSC 软件包kappaetc
现在会计算出它,以及您可能想要的所有其他评分者间统计数据。
由于没有人对 Stata 解决方案做出回应,我开发了一些代码来使用 Gwet, KL (2012) 中提供的公式计算 Conger 的 kappa。评估者间可靠性手册(第 3 版),盖瑟斯堡,马里兰州:Advanced Analytics,LLC。尤其见第 34-35 页。
毫无疑问,我的代码没有其他人编写的那么高效,我欢迎其他人希望对代码或程序格式进行任何改进。
cap prog drop congerkappa
prog def congerkappa
* This program has only been tested with Stata 11.2, 12.1, and 13.0.
preserve
* Number of judges
scalar judgesnum = _N
* Subject IDs
quietly ds
local vlist `r(varlist)'
local removeit = word("`vlist'",1)
local targets: list vlist - removeit
* Sums of ratings by each judge
egen judgesum = rowtotal(`targets')
* Sum of each target's ratings
foreach i in `targets' {
quietly summarize `i', meanonly
scalar mean`i' = r(mean)
}
* % each target rating of all target ratings
foreach i in `targets' {
gen `i'2 = `i'/judgesum
}
* Variance of each target's % ratings
foreach i in `targets' {
quietly summarize `i'2
scalar s2`i'2 = r(Var)
}
* Mean variance of each target's % ratings
foreach i in `targets' {
quietly summarize `i'2, meanonly
scalar mean`i'2 = r(mean)
}
* Square of mean of each target's % ratings
foreach i in `targets' {
scalar mean`i'2sq = mean`i'2^2
}
* Sum of variances of each target's % ratings
scalar sumvar = 0
foreach i in `targets' {
scalar sumvar = sumvar + s2`i'2
}
* Sum of means of each target's % ratings
scalar summeans = 0
foreach i in `targets' {
scalar summeans = summeans + mean`i'2
}
* Sum of meansquares of each target's % ratings
scalar summeansqs = 0
foreach i in `targets' {
scalar summeansqs = summeansqs + mean`i'2sq
}
* Conger's kappa
scalar conkappa = summeansqs -(sumvar/judgesnum)
di _n "Conger's kappa = " conkappa
restore
end
程序所需的数据结构如下图所示。变量名不固定,但judge/rater变量必须在数据集中的首位。数据集不应包含除评委/评分者和目标/评分之外的任何变量。
Judge S1 S2 S3 S4 S5 S6
Rater1 2 4 2 1 1 4
Rater2 2 3 2 2 2 3
Rater3 2 5 3 3 3 5
Rater4 3 3 2 3 2 3
如果您想针对测试数据集运行此操作,您可以使用来自 StataCorp 的 Judges 数据集并如图所示对其进行重塑。
use http://www.stata-press.com/data/r12/judges.dta, clear
sort judge
list, sepby(judge)
reshape wide rating, i(judge) j(target)
rename rating* S*
list, noobs
* Run congerkappa program on demo data set in memory
congerkappa
我只针对 Gwet(第 35 页)中表 2.16 中的数据对此代码进行了一次验证测试,并复制了 Gwet 在第 35 页计算的 Conger 的 kappa = .23343。34. 在依赖它之前,请使用已知 Conger 的 kappas 在其他数据上测试此代码。
我不知道 Conger 的多个评估者的 kappa 是否在 Stata 中可用,但它可以通过irr
包在 R 中使用,使用kappam.fleiss
函数并指定exact
选项。有关irr
R 中的包的信息,请参阅http://cran.r-project.org/web/packages/irr/irr.pdf#page.12。
在 R 中安装并加载irr
包后,您可以使用以下代码查看演示数据集和 Conger 的 kappa 计算。
data(diagnoses)
print(diagnoses)
kappam.fleiss(diagnoses, exact=TRUE)
我希望这里的其他人可以按照您的要求提供 Stata 解决方案,但如果您在 Stata 中找不到它,这至少可以提供一个解决方案。
为了回应 Dimitriy 在下面的评论,我相信 Stata 的本机kappa
命令适用于两个独特的评估者或两个以上的非独特评估者。
原始发布者可能还想考虑icc
Stata 中的命令,该命令允许多个唯一的评估者。