Stats & AI tech blog - '일단 시도함'

[R] Cohen's Kappa (카파상관계수) 본문

Programming/R

[R] Cohen's Kappa (카파상관계수)

justdoit ok? 2024. 1. 12. 16:34

Kappa 상관계수에 대한 개념 설명은 이전 포스팅 참고.

2024.01.11 - [Data Analysis/Statistics] - [통계] Cohen's Kappa (카파 상관계수)

 

[통계] Cohen's Kappa (카파 상관계수)

Cohen's Kappa (카파 상관계수) 1) 카파 상관계수란? 범주형 변수 간의 일치도를 측정하는 통계량이다. 예를 들어 n명의 환자에 대한 검사 방법 X와 Y의 결과가 있을 때, 두 검사 방법의 일치도가 어떠

meowstudylog.tistory.com

 

이번 포스팅에서는 R에서 Kappa 상관계수를 통한 일치도를 확인하는 방법에 대해 알아보겠다.

 

예제)

  • 분석 목적 : 2개의 진단 법 간의 일치도를 확인하고자 한다.
  • 사용 데이터 : 순서 척도로 이루어진 두 개의 범주형 변수
> head(data[,c(4,5)])
# A tibble: 6 × 2
  SP    SC   
  <chr> <chr>
1 B     B    
2 A     B    
3 A     A    
4 B     A    
5 B     A    
6 B     B 
> table(data$SP, data$ST)
   
      A   B   C   D
  A 264   4   0   0
  B 130  10   0   0
  C  46   0   6   1
  D  33   1   0   2
  E   1   0   0   0

 

  • 분석 절차 및 방법
  1. 위 교차표를 보면 ST 진단 결과에 E항목으로 분류된 환자가 없어서 테이블이 정방행렬 형태를 띄고있지 않다.
    Kappa() 함수의 인자로 정방행렬형태의 테이블이 인풋되어야 하기 때문에, squarematrix() 함수를 통해 테이블 형태를 변경한다.
  2. 자료가 순서형 척도이므로 Weighted Cohen's Kappa를 통해 일치도를 확인한다.

 

  • R 코드
library(vcd) # for Kappa()
library(miscset) # for squarematrix()

# 1. create table
tb <- squarematrix(table(data$SP, data$SC))
tb[is.na(tb)] <- 0

# 2. cohen's kappa
res.k <- Kappa(tb)
res.k
confint(res.k) # confidence interval

 

  • 분석 결과
> tb <- squarematrix(table(data$SP, data$SC))
> tb[is.na(tb)] <- 0
> tb
    A   B C D E
A 118 143 4 3 0
B  79  58 2 1 0
C  22  20 6 5 0
D  11  23 2 0 0
E   1   0 0 0 0
> res.k <- Kappa(tb)
> res.k
              value     ASE       z Pr(>|z|)
Unweighted -0.04307 0.03335 -1.2913   0.1966
Weighted    0.00929 0.03290  0.2824   0.7776
> confint(res.k)
            
Kappa                lwr        upr
  Unweighted -0.10844348 0.02230310
  Weighted   -0.05518766 0.07376854

 

Weighted 행의 value를 아래 표와 비교하여 해석한다. 일치도가 매우 낮음을 확인할 수 있다.

여기서 p.value는 kappa가 무작위 수준이라는 귀무가설을 검정한 결과이다. Kappa 값이 크더라도 p.value가 유의하지 않으면 진단법 간 일치도를 통계적으로 확신할 수 없다.

 

>0.8  Almost Perfect
>0.6   Substantial
>0.4   Moderate
>0.2 Fair
0-0.2   Slight
<0   Poor