2013-07-18 16 views

回答

1

由於沒有人使用Stata解決方案做出迴應,我開發了一些代碼來使用Gwet,K.L。(2012)中提供的公式計算Conger's kappa。 Inter-Rater可靠性手冊(第三版),Gaithersburg,MD: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(第35頁)對運行數據的代碼的表2.16僅單個驗證測試,並已複製了康格的卡帕= 0.23343如在頁碼計算由Gwet。 34.在依靠它之前,請使用已知的Conger's kappas在其他數據上測試此代碼。

0

我不知道,如果康格的卡帕多評估者是在Stata可用,但在R是可通過irr包,使用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找到它。

0

本地kappa命令是否處理多個評估者案例?

+0

有問題,與dimitriy指的是鏈接。 – TheSquirrel

-1

爲了響應Dimitriy的評論,我相信Stata的原生kappa命令適用於兩個獨特的評價者或兩個以上的非唯一評價者。

原始海報也可能要考慮Stata中的icc命令,該命令允許多個獨特的評估者。

+0

如果我使用icc,是否需要轉置數據以將評估者作爲stata中的變量?此外,國際刑事法院是參數,所以正常分配將是可取的。我是否正確? – TheSquirrel

2

這是一個古老的問題,但如果任何人仍在尋找 - SSC包kappaetc現在可以計算出,以及您可能需要的每個其他評估人員間的統計數據。