Conger的卡帕是否适用于Stata?

时间:2013-07-18 22:19:21

标签: stata

Conger(1980)提出的modified version of kappa是否可以在Stata中找到?试图谷歌它没有用。

5 个答案:

答案 0 :(得分:2)

这是一个老问题,但是如果有人还在寻找 - SSC软件包kappaetc现在会计算出这个,以及您可能想要的其他每个评估者之间的统计数据。

答案 1 :(得分:1)

由于没有人用Stata解决方案做出回应,我开发了一些代码来使用Gwet,K.L。(2012)中提供的公式来计算Conger的kappa。 Inter-Rater可靠性手册(第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    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中的评判数据集并重新整形,如图所示。

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中表2.16中的数据(p.35)运行了此代码的单一验证测试,并复制了由Gwet在p上计算的Conger的kappa = .23343。 34.在依赖它之前,请使用已知的Conger的kappas在其他数据上测试此代码。

答案 2 :(得分:0)

我不知道Conger的多个评估者的kappa是否可用于Stata,但是可以通过irr包在R中使用kappam.fleiss函数并指定exact选项。有关R中irr包的信息,请参阅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中找到它,至少可以提供解决方案。

答案 3 :(得分:0)

本机kappa命令是否处理多个rater案例?

答案 4 :(得分:-1)

为了回应下面的Dimitriy的评论,我相信Stata的本地kappa命令适用于两个独特的评估者或两个以上的非独特评估者。

原始海报可能还想考虑Stata中的icc命令,该命令允许多个独特的评估者。