Двухвыборочный t-тест

Анализ данных опросов на Python

EbunOluwa Andrew

Data Scientist

Сравнение уступчивости

люди пожимают руки

group_a.agreeableness.mean()
4.011701199563795
group_b.agreeableness.mean()
4.03669574700109
Анализ данных опросов на Python

Определение двухвыборочного t-теста

  • Проверяет, значимо ли различаются средние двух независимых групп
  • Определяет, случайны ли наблюдаемые различия

Пара бутылочек с метками A и B

Анализ данных опросов на Python

Условия двухвыборочного t-теста

  • Независимость
  • Нормальное распределение
    • Тест Шапиро–Уилка
    • stats.shapiro()
    • p-значение > 0,05 -> нормальное распределение
  • Равенство дисперсий
    • Тест Левена
    • stats.levene()
    • p-значение > 0,05 -> дисперсии равны

Деревянные цифры

Анализ данных опросов на Python

Результаты опроса

group_a

| userid | agreeableness |
|--------|---------------|
|    895 |          4.78 |
|    a06 |          3.40 |
|    e94 |          3.66 |
|    ee6 |          5.41 |
|    521 |          4.58 |
|    f4c |          3.24 |
...

1 = Неуступчивый

group_b

| userid | agreeableness |
|--------|---------------|
|    b7e | 4.43          |
|    030 | 2.92          |
|    f91 | 4.01          |
|    36f | 2.20          |
|    875 | 3.83          |
|    750 | 4.95          |
...

7 = Уступчивый

Анализ данных опросов на Python

Независимые группы

две группы

Анализ данных опросов на Python

Нормальное распределение групп

from scipy.stats import shapiro
import scipy.stats as stats

norm_A = stats.shapiro(
  group_a.agreeableness)

ShapiroResult(
statistic=0.997467577457428,
pvalue=0.16834689676761627)
from scipy.stats import shapiro
import scipy.stats as stats

norm_B = stats.shapiro(
  group_b.agreeableness)

ShapiroResult(
statistic=0.9987381100654602,
pvalue=0.7757995128631592)
Анализ данных опросов на Python

Равенство дисперсий

import scipy.stats as stats

var_test = stats.levene(group_a.agreeableness, group_b.agreeableness)
LeveneResult(statistic=0.40492634057696597, pvalue=0.5246354858484796)
Анализ данных опросов на Python

Условия проверены

  • Независимые группы
    • наблюдения не пересекаются
  • Нормальное распределение групп
  • Равенство дисперсий
    • значимых различий между дисперсиями нет

Apple Pencil — фото Dose Media на Unsplash

Анализ данных опросов на Python

Двухвыборочный t-тест с помощью statsmodels

from scipy import stats

stats.ttest_ind(group_a.agreeableness, group_b.agreeableness)
Анализ данных опросов на Python

Двухвыборочный t-тест с помощью statsmodels

Ttest_indResult(statistic=0.7746406648066304, pvalue=0.4386519848366188)
Анализ данных опросов на Python

Дальнейший анализ

group_a_mean = 4.011701199563795
group_b_mean = 4.03669574700109

Жилые дома в Калифорнии

Анализ данных опросов на Python

Давайте потренируемся!

Анализ данных опросов на Python

Preparing Video For Download...