Як виконувати t-тести в pandas (3 приклади)
У наступних прикладах показано, як виконати три різні t-тести за допомогою pandas DataFrame:
- Незалежний двовибірковий t-тест
- Двовибірковий t-критерій Велча
- Т-критерій парних вибірок
Приклад 1: незалежний двовибірковий t-тест у панд
Незалежний двовибірковий t-критерій використовується, щоб визначити, чи рівні середні дві сукупності.
Наприклад, припустімо, що професор хоче знати, чи призводять два різні методи навчання до різних середніх оцінок на іспитах.
Щоб перевірити це, він набирає 10 студентів для використання методу А та 10 студентів для використання методу Б.
Наступний код показує, як ввести бали кожного студента в pandas DataFrame, а потім використати функцію 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
- p-значення: 0,0179
Оскільки p-значення менше 0,05, ми відкидаємо нульову гіпотезу t-критерію та робимо висновок, що є достатньо доказів, щоб стверджувати, що два методи призводять до різних середніх балів за іспит.
Приклад 2: t-критерій Велча для панд
Т-критерій Велча подібний до незалежного t-критерію для двох вибірок, за винятком того, що він не припускає, що дві генеральні сукупності, з яких взято вибірки, мають однакову дисперсію .
Щоб виконати t-тест Велча на тому ж наборі даних, що й у попередньому прикладі, нам просто потрібно вказати equal_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
Т-критерій для парних вибірок використовується для визначення рівності двох середніх сукупностей, у яких кожне спостереження в одній вибірці може бути пов’язане зі спостереженням в іншій вибірці.
Наприклад, припустімо, що професор хоче знати, чи призводять два різні методи навчання до різних середніх оцінок на іспитах.
Щоб перевірити це, він набирає 10 студентів для використання Методу А, а потім проходить тест. Потім він дозволяє тим самим 10 учням, які використовували метод Б, підготуватися та пройти інший тест подібної складності.
Оскільки всі студенти з’являються в обох вибірках, ми можемо виконати t-тест парних вибірок у цьому сценарії.
Наступний код показує, як ввести бали кожного студента в pandas DataFrame, а потім використати функцію 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