Modellfel och slumpmässighet

Introduktion till linjär modellering i Python

Jason Vestuto

Data Scientist

Typer av fel

  1. Mätfel
    • t.ex.: trasig sensor, felaktigt registrerade mätningar
  2. Urvalsbias
    • t.ex.: temperaturer enbart från augusti, när dagarna är varmast
  3. Slumpmässighet
Introduktion till linjär modellering i Python

Nollhypotesen

Fråga: Beror vårt utfall på ett samband eller på slumpen?

Svar: kontrollera nollhypotesen.

Introduktion till linjär modellering i Python

Ordnad data

Spridningsdiagram över vandringsdistansdata, med axlarna tillryggalagd distans i miles och varaktighet i timmar

Introduktion till linjär modellering i Python

Gruppering av data

Spridningsdiagram över vandringsdistansdata, med axlarna tillryggalagd distans i miles och varaktighet i timmar, där turer kortare än 5 timmar visas i rött och längre turer i blått

Introduktion till linjär modellering i Python

Gruppering av data

Två histogram, ungefär klockformade, ett i rött för korta turer centrerat kring 5 miles och ett i blått för långa turer centrerat kring 15 miles

  • Grupp korta turer, medelvärde = 5
  • Grupp långa turer, medelvärde = 15
Introduktion till linjär modellering i Python

Teststatistika

# 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)
Introduktion till linjär modellering i Python

Blandning och omgruppering

Spridningsdiagram över vandringsdistansdata, med axlarna tillryggalagd distans i miles och varaktighet i timmar, där röda och blå punkter är utspridda i hela datamängden oberoende av varaktighet

Introduktion till linjär modellering i Python

Blandning och omgruppering

Två histogram som nästan helt överlappar varandra, spridda från 0 till 25 miles, med ungefär samma form

Introduktion till linjär modellering i Python

Blandning och uppdelning

# 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:]
Introduktion till linjär modellering i Python

Sampla om och testa igen

# 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)
Introduktion till linjär modellering i Python

p-värde

Två histogram plottade mot axlarna antal observationer och teststatistikavärden: ett blått centrerat kring x=0 med bred spridning, ett rött centrerat kring x=10 med smalare spridning, och en vertikal svart linje vid x=10

Introduktion till linjär modellering i Python

Nu kör vi en övning!

Introduktion till linjär modellering i Python

Preparing Video For Download...