주어진 데이터가 특정 예상되는 분포와 동일한 분포를 나타내는지에 대한 가설검정 (적합도 검정)
χ2 = Σ(측정값 – 예측값)2 / 예측값
one sample 자유도(df) = 카테고리 - 1
from scipy import stats
1 – stats.chi2.cdf(x2, df)
ex) 0.97이 나온다면 연관이 있다로 해석
import numpy as np
from scipy.stats import chisquare
A = np.array([[2, 2, 3, 1, 2, 2]])
chisquare(A, axis=None)
ex) 0.96이 나오므로 비슷하다로 해석
B = np.array([[1, 5, 8, 3, 9, 7]])
chisquare(B, axis=None)
ex) 0.12가 나오므로 비슷하지 않다로 해석
두 변수간에 연관이 있는지 없는지를 검정 (독립성 검정)
귀무가설 : 두 변수간 연관이 없다
대립가설 : 두 변수간 연관이 있다
two sample 자유도(df) = (행 - 1) x (열 - 1)
exp(예측값) = ((각row의 합) x (각column의 합)) / (모든 값의 합)
from scipy.stats import chi2_contingency
chi2_contingency(obs)
(0.00139, 0.97, 1, array([[ 8.96296296, 2.03703704],
[13.03703704, 2.96296296]]))
출력값 결과 해석
(χ2 statistic, p-value, 자유도, expected value for observed)