1 표본 t검정, 2 표본 t검정, 대응표본 t검정, 가설검정
문제:- 한 온라인쇼핑몰에서 불평건수가 하루 평균 11건이었다. 마케팅관리자는 소비자만족도를 향상하기 위해 고객이 원하면 무조건 환불을 해주는 정책을 6개월간 실시하였다. 최근 30일간 하루 평균 불평건수는 10건이었으며 표준편차는 4건으로 나타났다. 이 자료를 바탕으로 평균불평건수가 감소했다고 할 수 있는지 통계검정을 하라. (유의 수준 a = 0.05)
답:
H0 : mu = 11 (평균은 11 이다.)
H1 : mu ~= 11 (평균은 11이 아니다.)
파이썬으로 t검정을 한다.
결론: 유의 수준 a= 0.05에서 검정통계량은 -2.73으로 임계치 1.69보다 크기 때문에 귀무가설은 기각된다.
유의 수준 a= 0.05에서 p-value는 0.01(양측검정)로 귀무가설은 기각된다.
따라서 불평건수가 감소했다고 할 수 있다.
단일 모집단 평균차이 검정은 1 표본 t검정은 같은 말이다. 위의 문제에서는 평균과 표준편차가 주어졌기 때문에 공식에 대입하여 답을 구하였다. 만약 데이터포인트가 주어지면 파이썬에서 scipy.stats를 사용하여 다음 코드로 구할 수 있다.
귀무가설 설정
H0 : mu = x (평균은 x 이다.)
H1 : mu ~= x (평균은 x가 아니다.)
1. 정규성 검정 stats.shapiro(표본데이터) #귀무가설은 정규성이 있다.
2. 정규성이 있으면 stats.ttest_1samp(표본데이터 - 평균) #평균은 귀무가설의 평균을 말한다.
2. 정규성이 없으면 stats.wilcoxon(표본데이터 - 평균)
양측검정이 기본 값이다. 단측검정 시 alternative = 'greater' 또는 'less'를 사용한다.
H0: diff = 0 (전과 후의 차이는 없다.)
H1: diff ~= 0 (전과 후의 차이가 있다. 즉 효과가 있다.)
두 개의 표본에 평균차를 구할 때에는 scipy.stats를 사용하여 다음 코드로 구할 수 있다.
2 표본의 경우 정규성과 등분산성을 가정을 충족하는지에 따라 검정 방법이 달라진다.
귀무가설 설정
H0: mu1 = mu2 (표본데이터1의 평균과 표본데이터2의 평균은 같다.)
H1: mu1 ~= mu2 (표본데이터1의 평균과 표본데이터2의 평균은 차이가 있다.)
1. 정규성 검정 stats.shapiro(표본데이터) #귀무가설은 정규성이 있다.
2. 등분성 검정 stats.levene(표본데이터 1, 표본데이터 2) #귀무가설은 등분산이다.
3. 정규성이 있고, 등분산이면 stats.ttest_1samp(표본데이터1, 표본데이터2)
3. 정규성이 있고, 등분산이 아니면 stats.wilcoxon(표본데이터1, 표본데이터2)
3. 정규성이 없으면 stats.wilcoxon(표본데이터1, 표본데이터2)
양측검정이 기본 값이다. 단측검정시 alternative = 'greater' 또는 'less'를 사용한다.
2표본 평균차이 가설설정:
대응표본 t검정은 1표본 t검정과 원리가 같다. 예로는 혈압약을 복용하기 전의 혈압과 복용 후의 혈압을 비교하고 혈압약이 효과가 있는가? 와 같은 검정을 할 때 사용한다.
정규성 검정은 전 후 차이값을 기준으로 한다. 같은 표본을 전후 측정한 것이기 때문에 등분산성은 만족하르모 등분산성 검정은 할 필요 없다.
귀무가설 설정
H0: diff = 0 (전과 후의 차이는 없다.)
H1: diff ~= 0 (전과 후의 차이가 있다. 즉 효과가 있다.)
1. 정규성 검정 stats.shapiro(전후차 데이터) #귀무가설은 정규성이 있다.
2. 정규성이 있으면 stats.ttest_rel(후 데이터, 전 데이터)
2. 정규성이 없으면 stats.wilcoxon(후 데이터, 전 데이터)
양측검정이 기본 값이다. 단측검정시 alternative = 'greater' 또는 'less'를 사용한다. 대응표본의 경우 단측검정을 하게 되면 후, 전의 데이터 입력 순서에 주의해야한다.