# * 서로 대응인 두 집단의 평균 차이 검정(paired samples t-test)
# 처리 이전과 처리 이후를 각각의 모집단으로 판단하여, 동일한 관찰 대상(한 개의 집단)으로부터 처리 이전과 처리 이후를 1:1로 대응시킨 두 집단으로 부터
# 의 표본을 대응표본(paired sample, 동일표본)이라고 한다.
# 대응인 두 집단의 평균 비교는 동일한 관찰 대상으로부터 처리 이전의 관찰과 이후의 관찰을 비교하여 영향을 미친 정도를 밝히는데 주로 사용
# 하고 있다. 집단 간 비교가 아니므로 등분산 검정을 할 필요가 없다.
# 즉, 하나의 집단에 대해 독립변수를 적용하기 전과 후의 종속변수의 수준을 측정하고, 이들의 평균 차이를 통계적으로 확인.
# 집단 간 비교가 아니므로 등분산 검정은 필요하지 않다.
# 예 : 광고 전후의 상품 선호도, 매출액 평균의 차이...
import numpy as np
import scipy.stats as stats
# 특정 학생들을 대상으로 특강 전후의 시험점수의 평균에 차이가 있는 지 검증
# 귀무 : 학생들을 대상으로 특강 전후의 시험점수의 평균에 차이가 없다.
# 귀무 : 학생들을 대상으로 특강 전후의 시험점수의 평균에 차이가 있다.
np.random.seed(123)
x1 = np.random.normal(75, 10, 100) # 평균 75 표준편차 10, 표본 100개
x2 = np.random.normal(80, 10, 100) # 평균 80 표준편차 10, 표본 100개
print(x1)
print(x2)
print(stats.shapiro(x1).pvalue) # 0.27488 > 0.05 이므로 정규성 만족
print(stats.shapiro(x2).pvalue) # 0.10213 > 0.05 이므로 정규성 만족
print(stats.ttest_rel(x1, x2))
# statistic=-3.003102708378836, pvalue=0.0033837913974620205
# 해석 : pvalue=0.003383 < 0.05 이므로 귀무가설 기각. 학생들을 대상으로 특강 전후의 시험점수의 평균에 차이가 있다.
# 그러므로 특강 개설이 효과가 있음을 알 수 있다.
<console>
[64.14369397 84.97345447 77.82978498 59.93705286 69.21399748 91.51436537
50.73320757 70.71087371 87.65936259 66.33259598 68.21113848 74.05291031
89.91389626 68.61098003 70.5601804 70.65648724 97.05930083 96.86786089
85.04053898 78.86186399 82.37368576 89.90732028 65.64166132 86.75829045
62.46119332 68.62248498 84.07105196 60.713193 73.5993128 66.38245104
72.44380629 47.01410895 57.28466895 68.00122765 84.27462432 73.26364317
75.02845916 81.88222711 66.20463657 77.83627324 66.94633482 57.72330506
71.09100206 80.73805862 78.38589051 74.88169506 98.92365266 79.1291216
84.78736006 97.38143338 62.05914677 64.6121179 92.43712225 67.01937265
75.2968323 85.69315969 83.90706391 92.54886182 89.95644137 85.6939267
67.27291286 82.94862668 78.14271995 61.7373454 89.17299046 83.07236535
75.45490081 72.66907939 63.01698855 76.99524074 79.68439119 66.68845016
86.62204049 64.02796954 53.7689965 85.39727091 70.96633962 73.73970415
66.62483277 58.94037239 87.55237375 68.11131016 91.60952488 83.07308186
71.85241853 64.14097599 67.67538013 62.87476869 95.8711336 76.6444123
86.50205543 62.32647951 76.8103513 86.77861939 71.64989238 85.31114459
64.15432088 61.36528455 78.79400612 71.20823565]
[ 86.42054689 60.22112068 87.12264635 105.98303927 79.75374019
80.34142129 81.79549485 61.38024289 84.2614664 63.94590256
75.72320402 92.4286955 72.64783044 85.0124899 90.12739054
82.78740856 66.2905153 76.67524725 99.59411342 59.74954237
77.24213986 74.47891929 81.20747363 87.48215617 96.08690968
77.29767608 88.1234133 84.99740145 84.74347298 74.36076068
70.02678531 68.99956887 72.43562791 83.21686576 87.60949393
83.23468848 74.51044904 98.0597011 95.18865624 76.45999887
71.76568594 81.30214954 92.67298645 83.32764977 85.56548705
77.87919878 84.56270895 95.44544451 77.60331219 81.43307733
82.53816477 82.83725356 65.88111124 61.23131344 69.80344929
81.67942295 85.53856166 74.6932544 93.77257483 78.56824026
80.20315998 78.06036129 81.34026793 87.04474074 86.65653438
71.01577059 95.23663776 69.04973543 80.79227014 77.25603426
69.51008323 79.24879412 72.59186227 80.72907243 84.03085961
94.71929369 83.07384219 73.8877466 76.08380189 81.39978106
80.93460829 94.59589268 93.9535293 76.41064074 74.51357872
54.42945396 74.51079587 70.21942294 76.45175542 83.91584242
81.77192329 79.70031993 81.99582111 78.73882227 81.97018933
47.68944992 77.3070651 78.89149279 76.58738284 77.82053738]
0.2748860716819763
0.1021389588713646
Ttest_relResult(statistic=-3.003102708378836, pvalue=0.0033837913974620205)