1. 카이제곱 독립성 검정이란?
카이제곱 독립성 검정은 두 범주형 변수가 독립적으로 분포하는지 테스트하는 검정입니다.
여기서 독립이란 A집단의 값이 B집단의 값에 아무런 영향을 미치치 않는것을 말합니다.
쉽게 말해 두 변수 A,B를 독립이라고 정한뒤 독립이 맞는지 확인해보는것입니다.
2. 카이제곱 검정 가설
귀무가설(H0) : "두집단은 독립적이다."
대립가설(H1) : "두집단은 독립적이지않다."
3. Python에서 독립성 검정
파이썬에서는 scipy라이브러리의 stats모듈에서 카이제곱 독립성을 검정할수 있는 chi2_contingency함수를 제공합니다.
3-1 함수 설명
scipy.stats.chi2_contingency(observed, correction=True, lambda_=None)
- observed : 교차표(Contingency Table)는 각 범주에서 관찰된 빈도(발생 횟수)를 포함하는 테이블입니다.
이차원 경우에는 이 테이블을 "R x C 표"로 설명하기도 합니다.
두집단의 독립성을 검정할때에는 2x2표의 형태로 데이터를 넣습니다. - Lambda_ : 기본적으로 이 테스트에서 계산된 통계는 Pearson의 카이제곱 통계량입니다 . Lambda_를 사용 하면 Cressie-Read 전력 발산 계열의 통계를 대신 사용할 수 있습니다.
3-2 구현
국민 기초체력을 조사한 데이터에서 성별과 등급이 독립적인지 검정해보겠습니다.
해당 문제에 대한 가설은 다음과 같습니다.
귀무가설(H0) : "성별과 등급은 독립이다."
대립가설(H1) : "성별과 등급은 독립이아니다."
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/body/body.csv')
df.head()
# 2X2형태의 표로 만들어줍니다.
cross_df = pd.crosstab(df['측정회원성별'],df['등급'])
display(cross_df)
from scipy.stats import chi2_contingency
chi2_contingency(cross_df)
# 결과
Chi2ContingencyResult(
statistic=120.06233631119409,
pvalue=7.481892813401677e-26,
dof=3,
expected_freq=array([[1220.25, 1220.25, 1220.25, 1220.25],
[2128.75, 2128.75, 2128.75, 2128.75]]))
결과를 보았을때 pvalue값이 0에 근접한 값을 가지므로 귀무가설을 기각합니다.
즉, 대립가설인 성별과 등급간에는 관련이 없다고 볼수있습니다.
'통계 분석' 카테고리의 다른 글
[Python] T-검정의 종류와 구현3(대응하는 비모수 검정) (0) | 2023.11.18 |
---|---|
[Python] T-검정의 종류와 구현2(대응하는 비모수 검정) (0) | 2023.11.10 |
[Python] 등분산 검정 (0) | 2023.11.09 |
[Python] 일표본 t-검정(대응하는 비모수 검정) (6) | 2023.11.08 |
[기초 통계] 신뢰수준, 신뢰구간, 유의확률(P-value), 유의수준 (1) | 2023.10.31 |