Ошибки модели и случайность

Введение в линейное моделирование на Python

Jason Vestuto

Data Scientist

Типы ошибок

  1. Ошибка измерения
    • например: неисправный датчик, неверно записанные данные
  2. Ошибка выборки
    • например: температуры только за август, когда дни самые жаркие
  3. Случайность
Введение в линейное моделирование на Python

Нулевая гипотеза

Вопрос: наш эффект обусловлен реальной зависимостью или случайностью?

Ответ: проверьте нулевую гипотезу.

Введение в линейное моделирование на Python

Упорядоченные данные

Диаграмма рассеяния данных о пешем походе: по осям — пройденное расстояние в милях и продолжительность похода в часах

Введение в линейное моделирование на Python

Группировка данных

Диаграмма рассеяния данных о пешем походе: по осям — пройденное расстояние в милях и продолжительность в часах; походы менее 5 часов выделены красным, более 5 часов — синим

Введение в линейное моделирование на Python

Группировка данных

Две гистограммы приблизительно колоколообразной формы: красная — для коротких походов, с центром около 5 миль; синяя — для длинных, с центром около 15 миль

  • Группа коротких походов, среднее = 5
  • Группа длинных походов, среднее = 15
Введение в линейное моделирование на Python

Тестовая статистика

# Group into early and late times
group_short = sample_distances[times < 5]
group_long = sample_distances[times > 5]
# Resample distributions
resample_short = np.random.choice(group_short, size=500, replace=True)
resample_long = np.random.choice(group_long, size=500, replace=True)
# Test Statistic
test_statistic = resample_long - resample_short
# Effect size as mean of test statistic distribution
effect_size = np.mean(test_statistic)
Введение в линейное моделирование на Python

Перемешивание и перегруппировка

Диаграмма рассеяния данных о пешем походе: по осям — пройденное расстояние в милях и продолжительность в часах; красные и синие точки перемешаны по всему диапазону значений

Введение в линейное моделирование на Python

Перемешивание и перегруппировка

Две гистограммы, почти полностью перекрывающие друг друга, в диапазоне от 0 до 25 миль, приблизительно одинаковой формы

Введение в линейное моделирование на Python

Перемешивание и разделение

# Concatenate and Shuffle
shuffle_bucket = np.concatenate((group_short, group_long))
np.random.shuffle(shuffle_bucket)
# Split in the middle
slice_index = len(shuffle_bucket)//2
shuffled_half1 = shuffle_bucket[0:slice_index]
shuffled_half2 = shuffle_bucket[slice_index+1:]
Введение в линейное моделирование на Python

Повторная выборка и проверка

# Resample shuffled populations
shuffled_sample1 = np.random.choice(shuffled_half1, size=500, replace=True)
shuffled_sample2 = np.random.choice(shuffled_half2, size=500, replace=True)
# Recompute effect size
shuffled_test_statistic = shuffled_sample2 - shuffled_sample1
effect_size = np.mean(shuffled_test_statistic)
Введение в линейное моделирование на Python

p-значение

По осям — количество в бинах и значения тестовой статистики: две гистограммы — синяя с центром при x=0 и широким разбросом, красная с центром при x=10 и более узким разбросом; вертикальная чёрная линия при x=10

Введение в линейное моделирование на Python

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

Введение в линейное моделирование на Python

Preparing Video For Download...