Python 데이터 분석

Python 데이터분석 기초 35 - 서로 대응인 두 집단의 평균 차이 검정(paired samples t-test)

코딩탕탕 2022. 11. 8. 15:19

 

# * 서로 대응인 두 집단의 평균 차이 검정(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)