두 이산형 변수의 연관성 척도 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 |




