Inférence fondée sur la simulation

Inférence pour la régression linéaire en R

Jo Hardin

Professor, Pomona College

Inférence pour la régression linéaire en R

Nuage de points des QI des jumeaux.

Inférence pour la régression linéaire en R

Données sur les jumeaux

Tableau des QI des jumeaux. Chaque ligne correspond à une paire. La première colonne contient le QI du jumeau élevé par une famille d'accueil, la seconde celui du jumeau élevé par ses parents biologiques.

Inférence pour la régression linéaire en R

Données permutées des jumeaux

Le tableau des QI a été permuté par colonne ; les jumeaux d'une même paire ne figurent plus sur la même ligne.

Inférence pour la régression linéaire en R

Données permutées (1) tracées

Données originales

Données permutées (1)

Inférence pour la régression linéaire en R

Données permutées (2) tracées

Données originales

Données permutées (2)

Inférence pour la régression linéaire en R

Données permutées (1) et (2)

Données permutées (1)

Données permutées (2)

Inférence pour la régression linéaire en R
twins %>%
   specify(Foster ~ Biological) %>%
   hypothesize(null = "independence") %>%
   generate(reps = 10, type = "permute") %>%
   calculate(stat = "slope")
A tibble: 10 x 2
   replicate          stat
       <int>         <dbl>
 1         1  0.0007709302
 2         2 -0.0353592305
 3         3 -0.0278627974
 4         4 -0.0072547982
 5         5 -0.1252761541
 6         6 -0.1669869287
 7         7 -0.2610519170
 8         8 -0.0157695494
 9         9  0.0581361900
10        10  0.1598471947
Inférence pour la régression linéaire en R

Beaucoup de pentes permutées

perm_slope <- twins %>%
   specify(Foster ~ Biological) %>%
   hypothesize(
     null = "independence"
     ) %>%
   generate(reps = 1000, 
            type = "permute") %>%
   calculate(stat = "slope") 

ggplot(data = perm_slope, aes(x = stat)) + 
   geom_histogram() +
   xlim(-1,1)

Inférence pour la régression linéaire en R

Pentes permutées avec pente observée en rouge

obs_slope <- lm(Foster ~ Biological,
                data = twins) %>%
   tidy() %>%   
   filter(term == "Biological") %>%
   select(estimate) %>%   
   pull()
obs_slope
0.901436
ggplot(data = perm_slope, aes(x = stat)) + 
   geom_histogram() +
   geom_vline(xintercept = obs_slope, color = "red") 
   + xlim(-1,1)

Inférence pour la régression linéaire en R

Passons à la pratique !

Inférence pour la régression linéaire en R

Preparing Video For Download...