t-test는 그룹의 평균값에 대해 비교하는 가설검정이었다. 그리고 t-test를 수행하기 위해서는 몇 가지 조건이 만족되어야 한다.
이 세가지 조건을 모두 만족할 때 t-test를 사용할 수 있다. 이렇게 모집단이 특정 분포를 따른다고 전제하는 방식을 parametric method 라고한다.
하지만 현실에서는 모든 데이터가 정규분포를 따르지는 않을 것이다. 모집단의 분포에 관계없이 가설검정을 해야한다면 어떻게 해야할까?
주어진 데이터가 예상되는 특정 분포와 동일한 분포를 나타내는지 확인하는 가설검정
이때 나오는 값을 가지고 비교표를 통해 p-value를 구할 수 있다. python에서는 numpy를 통해 계산할 수도 있고 scipy의 stats.chiquare
를 사용할 수도 있다.
chisquare
obs = np.array([18, 22, 20, 15, 23, 22])
chisquare(obs, axis=None) # SIMILAR!
결과로 나오는 p-value는 귀무가설(input의 분포와 같지 않다)이 우연이 아닐 확률이므로 p-value가 0.05보다 크면 두 분포가 같다는 결론을 내린다.
f_exp
에 특정 분포를 넣으면 그 분포와 비슷한지 확인하고, None
이면 f_obs
와 같은 분포로 가정
두 변수가 서로 연관성이 있는지 알아보는 가설검정
stats.chi2_contingency
를 사용한다. 이때도 귀무가설은 (두 변수는 연관성이 없다)이고 p-value가 작으면 H0을 기각하고 두 변수가 연관성이 있다는 결론을 내리게 된다.