Python에서 가설 테스트를 수행하는 방법(예제 포함)
가설 테스트는 통계적 가설을 기각하거나 기각하지 못하는 데 사용하는 공식적인 통계 테스트입니다.
이 튜토리얼에서는 Python에서 다음 가설 테스트를 수행하는 방법을 설명합니다.
- 샘플 t 테스트
- 2-표본 T-검정
- 쌍을 이루는 표본 t-검정
갑시다!
예시 1: Python의 t-test 예시
단일 표본 t-검정은 모집단의 평균이 특정 값과 같은지 여부를 검정하는 데 사용됩니다.
예를 들어, 특정 거북이 종의 평균 무게가 310파운드인지 알고 싶다고 가정해 보겠습니다.
이를 테스트하기 위해 다음과 같은 가중치를 갖는 간단한 무작위 거북이 샘플을 수집합니다.
중량 : 300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303
다음 코드는 scipy.stats 라이브러리의 ttest_1samp() 함수를 사용하여 단일 표본 t-검정을 수행하는 방법을 보여줍니다.
import scipy.stats as stats #define data data = [300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303] #perform one sample t-test stats. ttest_1samp (a=data, popmean= 310 ) Ttest_1sampResult(statistic=-1.5848116313861254, pvalue=0.1389944275158753)
t-검정 통계량은 -1.5848 이고 해당 양측 p-값은 0.1389 입니다.
특정 표본에 대한 이 t-검정에 대한 두 가지 가설은 다음과 같습니다.
- H 0 : µ = 310(이 거북이 종의 평균 무게는 310파운드입니다)
- H A : µ ≠310 (평균 무게는 310 파운드 가 아님 )
테스트의 p-값 (0.1389) 이 알파 = 0.05보다 크기 때문에 테스트의 귀무 가설을 기각하지 못합니다.
우리는 이 특정 거북이 종의 평균 무게가 310파운드가 아니라고 말할 수 있는 충분한 증거가 없습니다.
예 2: Python의 2-표본 t-검정
2-표본 t-검정은 두 모집단의 평균이 같은지 여부를 검정하는 데 사용됩니다.
예를 들어, 서로 다른 두 종의 거북이의 평균 체중이 같은지 여부를 알고 싶다고 가정해 보겠습니다.
이를 테스트하기 위해 우리는 다음과 같은 가중치를 사용하여 각 종에서 단순 무작위 거북이 샘플을 수집합니다.
샘플 1 : 300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303
샘플 2 : 335, 329, 322, 321, 324, 319, 304, 308, 305, 311, 307, 300, 305
다음 코드는 scipy.stats 라이브러리의 ttest_ind() 함수를 사용하여 두 가지 t-test 예제를 수행하는 방법을 보여줍니다.
import scipy. stats as stats #define array of turtle weights for each sample sample1 = [300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303] sample2 = [335, 329, 322, 321, 324, 319, 304, 308, 305, 311, 307, 300, 305] #perform two sample t-tests stats. ttest_ind (a=sample1, b=sample2) Ttest_indResult(statistic=-2.1009029257555696, pvalue=0.04633501389516516)
t-검정 통계량은 -2.1009 이고 해당 양측 p-값은 0.0463 입니다.
이 특정 2-표본 t-검정에 대한 두 가지 가정은 다음과 같습니다.
- H 0 : µ 1 = µ 2 (두 종 간의 평균 중량은 동일함)
- H A : µ 1 ≠ µ 2 (두 종 간의 평균 중량이 동일하지 않음)
검정의 p-값(0.0463)이 0.05보다 작으므로 귀무 가설을 기각합니다.
이는 두 종 사이의 평균 체중이 동일하지 않다고 말할 수 있는 충분한 증거가 있음을 의미합니다.
예 3: Python의 쌍체 표본 t-테스트
쌍표본 t-검정은 한 표본의 각 관측치가 다른 표본의 관측치와 연관될 수 있는 경우 두 표본의 평균을 비교하는 데 사용됩니다.
예를 들어, 특정 훈련 프로그램이 농구 선수의 최대 수직 점프(인치)를 증가시킬 수 있는지 여부를 알고 싶다고 가정해 보겠습니다.
이를 테스트하기 위해 12명의 대학 농구 선수로 구성된 단순 무작위 표본을 모집하고 각각의 최대 수직 점프를 측정할 수 있습니다. 그런 다음 각 선수에게 한 달 동안 훈련 프로그램을 사용하게 한 다음 월말에 최대 수직 점프를 다시 측정할 수 있습니다.
다음 데이터는 각 선수의 훈련 프로그램 사용 전후의 최대 점프 높이(인치)를 보여줍니다.
전면 : 22, 24, 20, 19, 19, 20, 22, 25, 24, 23, 22, 21
이후 : 23, 25, 20, 24, 18, 22, 23, 28, 24, 25, 24, 20
다음 코드는 scipy.stats 라이브러리의 ttest_rel() 함수를 사용하여 이 대응 표본 t-검정을 수행하는 방법을 보여줍니다.
import scipy. stats as stats #define before and after max jump heights before = [22, 24, 20, 19, 19, 20, 22, 25, 24, 23, 22, 21] after = [23, 25, 20, 24, 18, 22, 23, 28, 24, 25, 24, 20] #perform paired samples t-test stats. ttest_rel (a=before, b=after) Ttest_relResult(statistic=-2.5289026942943655, pvalue=0.02802807458682508)
t-검정 통계량은 -2.5289 이고 해당 양측 p-값은 0.0280 입니다.
이 특정 쌍체 표본 t-검정에 대한 두 가지 가정은 다음과 같습니다.
- H 0 : µ 1 = µ 2 (프로그램 사용 전후의 평균 점프 높이는 동일함)
- H A : µ 1 ≠ µ 2 (프로그램 사용 전후 평균 점프 높이가 동일하지 않음)
검정의 p-값(0.0280)이 0.05보다 작으므로 귀무 가설을 기각합니다.
이는 훈련 프로그램 사용 전과 후의 평균 점프 높이가 동일하지 않다고 말할 수 있는 충분한 증거가 있음을 의미합니다.
추가 리소스
다음 온라인 계산기를 사용하여 다양한 t-검정을 자동으로 수행할 수 있습니다.