Recent Posts
Stats & AI tech blog - '일단 시도함'
[R] Cohen's Kappa (카파상관계수) 본문
Kappa 상관계수에 대한 개념 설명은 이전 포스팅 참고.
2024.01.11 - [Data Analysis/Statistics] - [통계] Cohen's Kappa (카파 상관계수)
이번 포스팅에서는 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
- 분석 절차 및 방법
- 위 교차표를 보면 ST 진단 결과에 E항목으로 분류된 환자가 없어서 테이블이 정방행렬 형태를 띄고있지 않다.
Kappa() 함수의 인자로 정방행렬형태의 테이블이 인풋되어야 하기 때문에, squarematrix() 함수를 통해 테이블 형태를 변경한다. - 자료가 순서형 척도이므로 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 |
'Programming > R' 카테고리의 다른 글
[R] 그룹 별로 정규성 검정 (shapiro_test, group_by, qqplot) (0) | 2024.01.17 |
---|---|
[R] Decision Tree (의사결정나무) (0) | 2024.01.15 |
[R] Scatter plot with Regression lines (ggplot2) (0) | 2024.01.10 |
[R] CCA, Canonical Correlation Analysis (정준상관분석) (0) | 2024.01.08 |
[R] Logistic Regression Probability Curve (0) | 2023.12.24 |