반응형

[이론] 연속성을 수정한 카이 제곱 검정 (Chi-squared test with Yates's correction for continuity)

이 글을 읽기 전에 이전 포스팅을 읽고 오길 권한다.

2022.08.29 - [통계 이론] - [이론] 카이 제곱 검정과 피셔 정확 검정의 관계

 

[이론] 카이 제곱 검정과 피셔 정확 검정의 관계

[이론] 카이 제곱 검정과 피셔 정확 검정의 관계  범주형 자료 분석을 할 때 "기대 빈도가 5 미만인 셀이 25% 이상인 경우 카이 제곱 검정을 신뢰할 수 없으며 피셔 정확 검정의 결과를 확인

medistat.tistory.com

 

범주형 자료를 분석할 때 카이 제곱 검정을 많이 사용하곤 한다. 하지만 카이 제곱 검정에는 치명적인 단점이 존재한다. 이는 이산 분포인 초기하 분포를 연속형 분포인 카이 제곱 분포에 근사하는 과정에서 발생한다. 

 

이산형 변수 = 소수점이 없는 변수

 이산형 변수는 쉽게 말해 소수점 아래 데이터가 없는 변수다.

 예를 들어 30살인 사람 11명이 모여있을 때 이 사람들의 평균 나이는 어떻게 될까? 모두 30살이므로 평균도 30이라고 할 수 있을까? 도대체 30살이라는 것이 무엇인가?

 30살인 사람은 30년 0일을 산 사람부터 30년 364일 23시간 59분 59초 9999.. 를 산 사람까지를 아우르는 말이다. 일상적으로 내가 $x$살 $y$개월을 살았어도 모두들 $x$살 살았다고 표현한다. 그런데 소수점 이하 숫자를 버린다면 과소평가 (underestimation)하게 된다.  가상의 11명의 나이를 반올림해보기도 하고 버림을 해보기도 하면 다음과 같다.

피험자번호 나이 반올림 나이 버림 나이 평가 (반올림)
1 30년 1개월 30 30 과소평가
2 30년 2개월 30 30 과소평가
3 30년 3개월 30 30 과소평가
4 30년 4개월 30 30 과소평가
5 30년 5개월 30 30 과소평가
6 30년 6개월 31 30 과대평가
7 30년 7개월 31 30 과대평가
8 30년 8개월 31 30 과대평가
9 30년 9개월 31 30 과대평가
10 30년 10개월 31 30 과대평가
11 30년 11개월 31 30 과대평가
평균 30년 6개월 (30.5살) 30.55살 30  

 반올림을 하면 10명 중 절반 정도는 "억울하게" 더 많은 나이를 갖게 되고 (과대평가), 나머지 절반 정도는 "운이 좋게" 더 어린 나이를 갖게 된다 (과소평가). 그래서 나이의 평균과 반올림 나이의 평균은 거의 일치한다. 하지만 버림을 한 나이는 누구나 "운이 좋게" 어린 나이를 갖게 되므로 (과소평가) 평균은 항상 참값보다 적게 나오게 된다. 

 

 

Yates의 의문점

 그렇다면 "Yates"가 제기한 의문은 이것이다.

 

"버림을 시행한 자료가 원자료를 대표한다고 할 수 있겠는가?"

 

해결

해결은 두 가지 논리로 설명해 보겠다. 결론은 같으나 함의가 다르니 찬찬히 살펴보길 바란다.

 

방법 (1) - 분할표는 버림이 된 상태다!

  흡연자 비흡연자 총합
폐암 환자 30   200
정상인     800
총합 300 700 1000

 

 흡연자이자 폐암 환자인 사람은 30명이었다고 하자. 하지만, 만약 전체 인구가 10,000명이었다면 어땠을까? 폐암 환자이면서 흡연자인 사람은 300명일 수도 있고, 301명, 302,... , 309명 일 수도 있었을 것이다. 그런데 1,000명만 뽑으면서 흡연자이자 폐암 환자인 사람은 30명이 뽑힐 수도 있고, 30.1명이 뽑힐 수도 있고, 30.2, 30.3,..., 30.9명이 뽑힐 수도 있었다. 이 상황에서 깔끔히 버림을 하고 30이라고 적자고 합의를 한 것이다. 

 그러면 폐암 환자이자 흡연자인 "30명"이라는 값은 $30\leq x<31$을 대표하는 값이다. 근사하기 전 분포인 초기하 분포는 이산 분포이므로 30 다음의 숫자는 31이다. 하지만 근사 시킨 카이 제곱 분포는 연속 분포이므로 30 다음의 숫자가 31이 아니다. 30부터 31 사이에는 수많은 숫자가 존재한다. 따라서 여기에는 $30\leq x <31$라는 숫자가 존재하므로 $30\leq x <31$의 숫자를 대표하는 숫자로 "30명"을 쓰는 것은 적절하지 않다. 그 중간값인 "30.5명"을 쓰는 것이 더욱 적절하다. 그리하여 카이 제곱 통계량 계산 식이 다음과 같이 바뀌는 것이다.

$$\chi^{2} _{Yates}=\sum_{ij} \frac{\left( \lvert a_{ij}-e_{ij}\rvert-0.5 \right)^{2}}{e_{ij}}$$

 

아마 Yates가 의도한 연속성 수정 (Correction for contunuity)이라는 말은 여기에서 기인한 것일 거다.

 

하지만 결론적으로 연속성 수정한 카이 제곱 검정은 현실적으로 쓰이고 있지 않은데, 아마 다음의 이유 때문일 것이다.

 

방법 (2) - 분할표는 반올림이 된 상태다!

 버림이 된 상황이라고 가정한 것은 순전히 위 상황을 합리화하기 위한 것이었다. 세상 대부분의 일은 반올림이 시행된다.   예를 들어 소수점 첫째 자리까지 표기할 수 있는 디지털 체중계가 75.3kg을 나타냈다고 하자. 이 사람의 실제 몸무게는 $75.25\leq 몸무게<75.35$ 사이에 있다고 보는 것이 적당할 것이다.

 

 분할표에 있는 숫자 또한 반올림이 된 상태라는 가정 하에 다시 분할표를 살펴보자. 폐암 환자이자 흡연자인 사람의 수 "30명"이 나타내는 것은 $29.5\leq x<30.5$을 나타내는 숫자다. 그런데 "30명"이라는 숫자로 구한 카이 제곱 검정의 p-value는 30명이 발생하는 것보다 일어나기 어려운 사건들이 일어날 확률을 의미한다. 여기에서 기대 빈도는 60명이므로 60 이하에서는 관찰 빈도가 낮아진다는 것은 일어나기 어려운 상황을 의미한다. 따라서 $29.5\leq x \leg30$이 발생할 확률은 "30명"이라는 숫자로 구한 카이 제곱 검정의 p-value에 포함되어 있다. 하지만 $30<x<30.5$는 포함되지 못한다. 그런데 위에서 구한 식 

$$\chi^{2} _{Yates}=\sum_{ij} \frac{\left( \lvert a_{ij}-e_{ij}\rvert-0.5 \right)^{2}}{e_{ij}}$$

을 쓴다는 것은 다음을 의미한다.

 

"30이라는 숫자에는 $30<x<30.5$가 발생할 가능성도 내포하고 있는 것이다. 혹시 모르니까 30이 아닌 30.5로 계산하자."

따라서 p-value가 더 커지게 되고 보수적인 계산을 하게 되는 것이다.

 

 

그런데 왜 절댓값 기호가 붙었는지 이해하기 위해 다음 내용을 봐보자.

 

여기에서 2*2 분할표가 위와 같을 때 이 데이터로 구하는 카이 제곱 통계량의 의미를 다시 생각해보자.

 - 폐암 환자이면서 흡연자의 기대 빈도는 60명이다. 

 - 폐암 환자이면서 흡연자인 사람이 30명인 사건이 발생했다.

 - p-value는 "이 정도의 일이 발생할 확률이 얼마인가?"를 의미하는 것이다.

 

따라서, p-value를 구하기 위해서는 30명이 발생할 확률만 알아서는 안 된다.

 - 30명이 발생하는 것보다 일어나기 어려운 사건들의 확률을 모두 합해야 한다.

 - 기대 빈도인 60명이 발생할 확률이 가장 크고, 60에서 멀어질수록 확률은 낮아진다.

 (1) 30명보다 작은 경우 

   - 29명이 발생할 확률은 더 낮을 것이므로 더해야 한다.

   - 28, 27,... , 1, 0명이 발생할 확률은 더 낮으므로 모두 더해야 한다.

 (2) 30명보다 큰 경우 

   - 30명보다 커지는 상황을 상상해볼 때 60명이 될 때까지는 확률이 증가하다가 그 이후로 감소한다.

   - 하필이면 30명일 확률과 정확히 똑같아지는 시점은 90명일 때다. (계산을 해보면 알 수 있다.)

   - 따라서 90명일 발생할 확률, 91, 92,..., 199, 200명이 발생할 확률을 모두 더해야 한다.

 

"(1) 30명보다 작은 경우" 30이 아닌 30.5를 쓰는 이유는 위에서 모두 설명이 되었다,

 

"(2) 30명보다 큰 경우"에 대해 설명을 하겠다.

예를 들어 90이라는 숫자에는 $89.5\leq x<90.5$가 포함되어 있는 것이다. 그런데 $90\leq x<90.5$는 이미 카이 제곱 검정 계산에 포함되어 있다. 하지만 $89.5\leq x<90$은 포함되어 있지 않으므로 "89.5"를 기준으로 계산해야 한다는 것이 Yates의 논리다. 그가 의도했든 의도하지 않았든 말이다. 즉, 기댓값보다 작을 때에는 0.5를 더하고, 기댓값보다 클 때에는 0.5를 빼는 로직을 만들어야 하는데, 이를 수식으로 한 번에 나타내는 방법이 절댓값 기호를 붙이는 것이다.

 

 

하지만, 결국 Yates의 연속성 수정은 너무나 보수적이고, 학자들 사이에서도 의견이 분분하여 굳이 쓰이지 않고 있는 분석 방법이다.

 

[이론] 연속성을 수정한 카이 제곱 검정 (Chi-squared test with Yates's correction for continuity) 정복 완료!

 

작성일: 2022.08.30.

최종 수정일: 2022.08.30.

반응형

+ Recent posts