두 이산형 변수의 연관성 척도 Cramér’s V

2011/06/7

두 이산형 변수의 연관성(association)에 대해 알아볼 때 흔히 카이제곱 검정을 이용합니다. 하지만, 엄밀히 말하면 카이제곱 검정은 연관성의 유의한 정도(test for the significance)의 결과일 뿐, 연관성 크기를 나타내는 척도는 아닙니다. 즉, 두 개의 데이터 셋에 대해 각각 연관성 검정을 했을 때 검정결과인 유의확률을 가지고 어느 쪽이 연관성이 크다고는 말할 수 없다는 것이죠.

두 이산형 변수의 연관성의 크기를 나타내는 척도 중 하나가 Cramér’s V라는 것이 있습니다.

Cramér’s V의 계산 식은
\[
\phi_c = \sqrt{\frac{\chi^2}{N(k-1)}}
\]
이며, 0에서 1 사이의 값을 가집니다. 단, 위 식에서 \(\chi^2 \)는 카이제곱 검정의 검정 통계량, N은 관측값의 수, k는 두 이산형 변수의 수준(level) 중 작은 값을 의미합니다.

R을 이용해 Cramér’s V를 구하는 함수를 만들어 보면

1
2
3
4
5
> cramer.v < - function(x,y) {
  CV <- sqrt(chisq.test(x, y, correct=FALSE)$statistic /
    (length(x) * (min(length(unique(x)),length(unique(y))) - 1)))
  cat("Cramér V =" ,CV, "n")
}
1
2
3
4
5
> class < - rep(c("case","ctl"),each=100)
> genotype < - c(rep(c("AA+AT","TT"),c(70,30)),rep(c("AA+AT","TT"),c(38,62)))
> cramer.v(class, genotype)
 
Cramér V = 0.3210289
Post comment as twitter logo facebook logo
Sort: Newest | Oldest