Как выполнить t-тесты в pandas (3 примера)


В следующих примерах показано, как выполнить три различных t-теста с использованием DataFrame pandas:

  • Независимый двухвыборочный t-критерий
  • Двухвыборочный t-критерий Уэлча
  • Парные выборки t-критерий

Пример 1: Независимый двухвыборочный t-критерий в пандах

Независимый двухвыборочный t-критерий используется для определения равенства средних значений двух совокупностей.

Например, предположим, что профессор хочет знать, приводят ли два разных метода обучения к разным средним оценкам на экзаменах.

Чтобы проверить это, он набирает 10 студентов для использования метода А и 10 студентов для использования метода Б.

Следующий код показывает, как ввести оценки каждого учащегося в DataFrame pandas, а затем использовать функцию ttest_ind() библиотеки SciPy для выполнения независимого 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
  • р-значение: 0,0179

Поскольку значение p меньше 0,05, мы отвергаем нулевую гипотезу t-критерия и приходим к выводу, что существует достаточно доказательств, чтобы утверждать, что два метода приводят к разным средним баллам на экзамене.

Пример 2: t-критерий Уэлча у панд

T-критерий Уэлча аналогичен независимому t-критерию для двух выборок, за исключением того, что он не предполагает, что две популяции, из которых взяты выборки, имеют одинаковую дисперсию .

Чтобы выполнить t-критерий Уэлча на том же наборе данных, что и в предыдущем примере, нам просто нужно указать равный_var=False в функции ttest_ind () следующим образом:

 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, мы отвергаем нулевую гипотезу t-критерия Уэлча и приходим к выводу, что существует достаточно доказательств того, что два метода приводят к разным средним баллам на экзамене.

Пример 3: t-критерий парных выборок в Pandas

T-критерий парных выборок используется для определения равенства двух средних совокупных значений, при котором каждое наблюдение в одной выборке может быть связано с наблюдением в другой выборке.

Например, предположим, что профессор хочет знать, приводят ли два разных метода обучения к разным средним оценкам на экзаменах.

Чтобы проверить это, он набирает 10 студентов, которые будут использовать метод А, а затем проходят тест. Затем он позволяет тем же 10 ученикам, которые использовали метод Б, подготовиться и пройти еще один тест такой же сложности.

Поскольку все студенты присутствуют в обеих выборках, в этом сценарии мы можем выполнить t-тест для парных выборок.

Следующий код показывает, как ввести оценки каждого учащегося в DataFrame pandas, а затем использовать функцию ttest_rel() библиотеки SciPy для выполнения 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *