Pandas에서 t-테스트를 수행하는 방법(예제 3개)


다음 예에서는 Pandas DataFrame을 사용하여 세 가지 다른 t-테스트를 수행하는 방법을 보여줍니다.

  • 독립 2-표본 t-검정
  • Welch의 2-표본 t-검정
  • 쌍을 이루는 표본 t-검정

예 1: Pandas의 독립 2-표본 t-검정

독립 2-표본 t-검정은 두 모집단의 평균이 같은지 여부를 확인하는 데 사용됩니다.

예를 들어, 교수가 서로 다른 두 가지 학습 방법으로 인해 시험 평균 성적이 달라지는지 여부를 알고 싶어한다고 가정해 보겠습니다.

이를 테스트하기 위해 그는 방법 A를 사용하는 학생 10명과 방법 B를 사용하는 학생 10명을 모집합니다.

다음 코드는 각 학생의 점수를 pandas DataFrame에 입력한 다음 SciPy 라이브러리의 ttest_ind() 함수를 사용하여 독립적인 2-표본 t-검정을 수행하는 방법을 보여줍니다.

 import pandas as pd
from scipy. stats import ttest_ind

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df. head ()

  method score
0 to 71
1 To 72
2 To 72
3 to 75
4 to 78

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform independent two sample t-test
ttest_ind(group1[' score '], group2[' score '])

Ttest_indResult(statistic=-2.6034304605397938, pvalue=0.017969284594810425)

결과에서 우리는 다음을 볼 수 있습니다:

  • t-검정 통계: – 2.6034
  • p-값: 0.0179

p-값이 0.05보다 작기 때문에 t-검정의 귀무 가설을 기각하고 두 방법이 서로 다른 평균 시험 점수를 가져온다는 증거가 충분하다는 결론을 내립니다.

예 2: 팬더의 Welch’s t-test

Welch의 t-검정은 표본을 추출한 두 모집단의 분산이 동일하다고 가정하지 않는다는 점을 제외하면 독립 2-표본 t-검정과 유사합니다.

이전 예제와 정확히 동일한 데이터 세트에 대해 Welch의 t-검정을 수행하려면 다음과 같이 ttest_ind () 함수에 equal_var=False를 지정하면 됩니다.

 import pandas as pd
from scipy. stats import ttest_ind

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform Welch's t-test
ttest_ind(group1[' score '], group2[' score '], equal_var= False )

Ttest_indResult(statistic=-2.603430460539794, pvalue=0.02014688617423973)

결과에서 우리는 다음을 볼 수 있습니다:

  • t-검정 통계: – 2.6034
  • p-값: 0.0201

p-값이 0.05보다 작기 때문에 Welch의 t-검정의 귀무 가설을 기각하고 두 방법이 서로 다른 평균 시험 점수를 가져온다는 증거가 충분하다는 결론을 내립니다.

예 3: Pandas에서 쌍을 이루는 샘플 t-테스트

쌍표본 t-검정은 한 표본의 각 관측치가 다른 표본의 관측치와 연관될 수 있는 두 모집단 평균이 동일한지 여부를 확인하는 데 사용됩니다.

예를 들어, 교수가 서로 다른 두 가지 학습 방법으로 인해 시험 평균 성적이 달라지는지 여부를 알고 싶어한다고 가정해 보겠습니다.

이를 테스트하기 위해 그는 방법 A를 사용할 학생 10명을 모집한 후 테스트를 진행합니다. 그런 다음 그는 방법 B를 사용한 동일한 10명의 학생에게 비슷한 난이도의 또 다른 시험을 준비하고 치르게 했습니다.

모든 학생이 두 표본 모두에 나타나므로 이 시나리오에서는 대응 표본 t-검정을 수행할 수 있습니다.

다음 코드는 각 학생의 점수를 pandas DataFrame에 입력한 다음 SciPy 라이브러리의 ttest_rel() 함수를 사용하여 쌍 샘플 t-테스트를 수행하는 방법을 보여줍니다.

 import pandas as pd
from scipy. stats import ttest_rel

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df. head ()

  method score
0 to 71
1 To 72
2 To 72
3 to 75
4 to 78

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform independent two sample t-test
ttest_rel(group1[' score '], group2[' score '])

Ttest_relResult(statistic=-6.162045351967805, pvalue=0.0001662872100210469)

결과에서 우리는 다음을 볼 수 있습니다:

  • t-검정 통계: – 6.1620
  • p-값: 0.0001

p-값이 0.05보다 작기 때문에 쌍체 t-검정의 귀무 가설을 기각하고 두 방법이 서로 다른 평균 시험 점수를 가져온다는 증거가 충분하다는 결론을 내립니다.

추가 리소스

다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Python에서 카이제곱 독립성 테스트를 수행하는 방법
Python에서 일원 분산 분석을 수행하는 방법
Python에서 Fisher의 정확한 테스트를 수행하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다