[R] Cohen's Kappa for beginners

Scot W. McNary smcnary at charm.net
Tue May 25 15:42:07 CEST 2010


Hi,

It doesn't seem happy with non-numeric data in the data frame version.  
Maybe a recode would work?

 > x1 <- c(1, 2, 3, 1)
 > y1 <- c(1, 3, 3, 1)
 > cohen.kappa(data.frame(x = x1, y = y1))
Call: cohen.kappa1(x = x, w = w, n.obs = n.obs, alpha = alpha)

Cohen Kappa and Weighted Kappa correlation coefficients and confidence 
boundaries
                  lower estimate upper
unweighted kappa 0.098     0.60   1.1
weighted kappa   0.601     0.86   1.1

The unweighted kappa is .60.

I also tried to create the p x p table version, thinking that it would 
be unhappy with less than a p x p table. The example dataset produces a 
3 x 2 table, so this pads it out to a 3 x 3:

 > x <- factor(x)
 > y <- factor(y, levels = c("blue", "red", "yellow"))
 > table(x,y)
         y
x        blue red yellow
   blue      1   0      0
   red       0   2      0
   yellow    1   0      0
 > cohen.kappa(table(x,y))
Call: cohen.kappa1(x = x, w = w, n.obs = n.obs, alpha = alpha)

Cohen Kappa and Weighted Kappa correlation coefficients and confidence 
boundaries
                   lower estimate upper
unweighted kappa  0.098      0.6  1.10
weighted kappa   -0.693      0.0  0.69

  Number of subjects = 4>

The unweighted kappa is the same as above and as found by Jim with other 
packages.

Scot

On 5/25/2010 7:31 AM, Jim Lemon wrote:
> On 05/25/2010 06:01 PM, Jason Priem wrote:
>> Hi,
>> I've got two vectors with ratings from two coders, like this:
>>
>> x<-c("red", "yellow", "blue", "red") #coder number 1
>> y<-c("red", "blue", "blue", "red") #coder number 2
>>
>> I want to find Cohen's Kappa using the wkappa function in the psych
>> package. The only example in the docs is using a matrix, which I'm
>> afraid I don't understand--I don't know how to get there from what I've
>> got. Could anyone point me in the right direction? Thanks!
>
> Hi Jason,
> You're not alone. I tried to work out how to run this and it took a 
> while. Both kappa2 in the "irr" package:
>
> kappa2(cbind(x,y))
>
> and classAgreement in the "e1071" package:
>
> classAgreement(table(x,y))
>
> produce a kappa of 0.6. I was unable to work out how to use the wkappa 
> function in the "psych" package:
>
> wkappa(table(x,y))
>
> The above led to a kappa of -0.8. Although wkappa is presented as a 
> test of the reliability of ratings of nominal level data, the example 
> uses numeric data.
>
> Jim
>

-- 
Scot McNary
smcnary at charm dot net



More information about the R-help mailing list