카이제곱 검정(교차 분석)이란?
카이제곱 검정이란 독립 변수와 종속 변수가 모두 범주형 자료인 경우, 두 변수가 연관성이 있는지 여부를 확인하는 검정입니다. 여기서 독립변수란 연구자가 의도적으로 변화시키는 변수로써 다른 변수의 영향을 받지 않습니다. 종속변수란 독립변수의 변화에 따라서 변화하는 변수를 말합니다.
예를 들어 비만 유무가 고혈압 유무에 영향을 미치는지를 알아보고자 합니다. 여기서 비만은 종속 변수이고 고혈압은 종속 변수가 됩니다. 그리고 비만은 비만 유, 무를 확인하므로 범주형 변수이고, 고혈압 또한 고혈압 유, 무를 확인하므로 범주형 변수가 됩니다.
이와 같이 비만 유무(범주형 변수)가 고혈압 유무에 영향을 미치는 지를 알아보고자 할 때는 카이제곱 검정을 사용하게 됩니다.
카이제곱 검정 파이썬 코드 및 예시
앞서 설명한 비만 유무가 고혈압 유무에 영향을 미치는 지를 카이제곱 검정을 해 보겠습니다.
먼저 pandas와 scipy.stats를 import 해 줍니다.
import pandas as pd
import scipy.stats as stats
비만 유무와 고혈압 유무에 대한 2x2 dataframe을 만들어 줍니다.
data = pd.DataFrame({'고혈압':[10, 15], '정상':[10, 65]})
data.index = ['비만', '정상']
data
그러면 다음과 같은 data가 만들어집니다. 데이터를 살펴보면 총 100명의 데이터가 있으며 비만인 사람 중 고혈압인 사람은 10명, 정상 혈압은 10명이며, 정상 체중인 사람 중 고혈압은 10명, 정상 혈압은 10명입니다.
카이제곱 검정을 통하여 비만 유무가 고혈압 유무에 영향이 있는지를 알아보겠습니다.
여기서 귀무가설은 "비만 유무는 고혈압 유무와 연관성이 없다." 입니다.
대립가설은 "비만 유무는 고혈압 유무와 연관성이 있다."입니다.
통계 결과가 귀무가설을 기각한다면 비만 유무는 고혈압 유무와 연관성이 있다고 생각할 수 있습니다.
result = stats.chi2_contingency(data)
result
stats.chi2_contingency() 명령어를 통해 카이제곱 검정을 해 줍니다. 그러면 다음과 같은 결과가 나옵니다.
결과를 보면 p-value가 0.05보다 작으므로 귀무가설을 기각하게 되겠습니다. 그러면 대립 가설을 따르게 되고 '비만 유무는 고혈압 유무와 연관성이 있다'라고 판단할 수 있겠습니다.
* 통계학 전문가가 아니므로 수학적인 증명보다는 파이썬으로 카이제곱 검정을 해보는 것에 중점을 두고 포스팅해 보았습니다.
'파이썬 통계 분석' 카테고리의 다른 글
[python]선형 회귀 모델 구현해 보기(1) (0) | 2023.10.14 |
---|