Помилки моделі та випадковість

Вступ до лінійного моделювання в Python

Jason Vestuto

Data Scientist

Види помилок

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

Нульова гіпотеза

Питання: наш ефект зумовлений зв'язком чи просто випадковістю?

Відповідь: перевірте нульову гіпотезу.

Вступ до лінійного моделювання в Python

Впорядковані дані

Точкова діаграма даних про піший похід: на осях — пройдена відстань у милях та тривалість у годинах

Вступ до лінійного моделювання в Python

Групування даних

Точкова діаграма даних про похід: на осях — відстань у милях та тривалість у годинах; часи < 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...