Chyby modelu a náhodnost

Úvod do lineárního modelování v Pythonu

Jason Vestuto

Data Scientist

Typy chyb

  1. Chyba měření
    • např.: vadný senzor, chybně zaznamenaná data
  2. Výběrové zkreslení
    • např.: teploty pouze ze srpna, kdy jsou dny nejtepleší
  3. Náhoda
Úvod do lineárního modelování v Pythonu

Nulová hypotéza

Otázka: Je náš efekt důsledkem vztahu, nebo náhody?

Odpověď: Ověřte nulovou hypotézu.

Úvod do lineárního modelování v Pythonu

Uspořádaná data

Bodový graf dat o turistických výletech, na osách ujetá vzdálenost v mílích a doba trvání v hodinách

Úvod do lineárního modelování v Pythonu

Seskupení dat

Bodový graf dat o turistických výletech, na osách ujetá vzdálenost v mílích a doba trvání v hodinách; výlety kratší než 5 hodin jsou červeně, delší modře

Úvod do lineárního modelování v Pythonu

Seskupení dat

Dva histogramy přibližně zvonového tvaru: červený pro krátké výlety se středem kolem 5 mil, modrý pro dlouhé výlety se středem kolem 15 mil

  • Skupina krátkých výletů, průměr = 5
  • Skupina dlouhých výletů, průměr = 15
Úvod do lineárního modelování v Pythonu

Testová statistika

# 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)
Úvod do lineárního modelování v Pythonu

Promíchání a přeskupení

Bodový graf dat o turistických výletech, na osách ujetá vzdálenost v mílích a doba trvání v hodinách; červené a modré body jsou rozmístěny po celém grafu pro všechna trvání

Úvod do lineárního modelování v Pythonu

Promíchání a přeskupení

2 téměř zcela se překrývající histogramy od 0 do 25 mil, přibližně stejného tvaru

Úvod do lineárního modelování v Pythonu

Promíchání a rozdělení

# 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:]
Úvod do lineárního modelování v Pythonu

Resampling a nový test

# 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)
Úvod do lineárního modelování v Pythonu

p-hodnota

Na osách počet hodnot a hodnota testové statistiky jsou dva histogramy: modrý se středem v x=0 a širokým rozptylem, červený se středem v x=10 a užším rozptylem, a svislá černá čára v x=10

Úvod do lineárního modelování v Pythonu

Pojďme si procvičit!

Úvod do lineárního modelování v Pythonu

Preparing Video For Download...