Błędy modelu i losowość

Wprowadzenie do modelowania liniowego w Pythonie

Jason Vestuto

Data Scientist

Rodzaje błędów

  1. Błąd pomiaru
    • np.: uszkodzony czujnik, błędnie zapisane pomiary
  2. Błąd próbkowania
    • np.: temperatury tylko z sierpnia, gdy dni są najgorętsze
  3. Przypadek losowy
Wprowadzenie do modelowania liniowego w Pythonie

Hipoteza zerowa

Pytanie: Czy efekt wynika z zależności czy z przypadku losowego?

Odpowiedź: sprawdź hipotezę zerową.

Wprowadzenie do modelowania liniowego w Pythonie

Uporządkowane dane

Wykres punktowy danych z wycieczek górskich, na osiach odległość w milach i czas w godzinach

Wprowadzenie do modelowania liniowego w Pythonie

Grupowanie danych

Wykres punktowy danych z wycieczek górskich, na osiach odległość w milach i czas w godzinach; trasy krótsze niż 5 godzin zaznaczone na czerwono, dłuższe na niebiesko

Wprowadzenie do modelowania liniowego w Pythonie

Grupowanie danych

Dwa histogramy o kształcie zbliżonym do dzwonu: czerwony dla wycieczek krótkich wyśrodkowany ok. 5 mil, niebieski dla wycieczek długich wyśrodkowany ok. 15 mil

  • Grupa krótka, średnia = 5
  • Grupa długa, średnia = 15
Wprowadzenie do modelowania liniowego w Pythonie

Statystyka testowa

# 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)
Wprowadzenie do modelowania liniowego w Pythonie

Losowanie i ponowne grupowanie

Wykres punktowy danych z wycieczek górskich, na osiach odległość w milach i czas w godzinach, z czerwonymi i niebieskimi punktami rozrzuconymi we wszystkich przedziałach czasowych

Wprowadzenie do modelowania liniowego w Pythonie

Losowanie i ponowne grupowanie

2 niemal całkowicie nakładające się histogramy, rozciągające się od 0 do 25 mil, o zbliżonym kształcie

Wprowadzenie do modelowania liniowego w Pythonie

Losowanie i podział

# 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:]
Wprowadzenie do modelowania liniowego w Pythonie

Ponowne próbkowanie i testowanie

# 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)
Wprowadzenie do modelowania liniowego w Pythonie

Wartość p

Na osiach liczba obserwacji i wartości statystyki testowej: dwa histogramy – niebieski wyśrodkowany w x=0 o szerokim rozkładzie, czerwony wyśrodkowany w x=10 o węższym rozkładzie, oraz pionowa czarna linia w x=10

Wprowadzenie do modelowania liniowego w Pythonie

Czas na ćwiczenia!

Wprowadzenie do modelowania liniowego w Pythonie

Preparing Video For Download...