From 1b05c03cf76483ee9fd5099dd1b6b482ed39d6cf Mon Sep 17 00:00:00 2001 From: Maxime Wack Date: Tue, 10 Dec 2019 14:22:59 +0100 Subject: [PATCH] Update metamethods course and add examples --- 05_Metamethods/cours.odp | Bin 2078924 -> 2077748 bytes 05_Metamethods/exemples.Rmd | 189 ++++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 05_Metamethods/exemples.Rmd diff --git a/05_Metamethods/cours.odp b/05_Metamethods/cours.odp index 4dd1680400bef0e8a2c88c1f8cb1b27fb1dd675b..01c4d13a3c60532a28b545505b366ab430af85d5 100644 GIT binary patch delta 42440 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 df +``` + +## Partition train/test + +Partition du set de données en un set d'**entraînement** (80%), +et un set de **test** (les 20% restants). + +```{r partition CV} +df %>% + sample_n(80) -> df_train + +df %>% + anti_join(df_train) -> df_test +``` + +## Fonctions + +Création de quelques fonctions pour la réalisation de la cross-validation. + +### Générateur de modèles + +Fonction prenant une dataframe et un degré de polynôme pour générer le modèle correspondant. +La syntaxe `I(...)` dans un modèle sert à décrire des calculs littéraux sur les variables. +Ici, on concatène `x^n` avec `n` allant de 1 au degré du polynôme, et on applique le modèle. + +```{r model function} +model_lm <- function(degre) +{ + polynome <- str_c("I(x^", 1:degre, ")", collapse = " + ") + formule <- str_c("y ~ ", polynome) + + # lm(as.formula(formule), data = df) + partial(lm, formula = as.formula(formule)) +} +``` + +### Validateur de modèles + +Fonction prenant un set d'entraînement, un set de test, et un degré de polynôme, et calculant la _Mean Square Error_ du modèle polynomial correspondant. + +```{r MSE of a model} +mse <- function(train, test, model) +{ + modele <- model(train) + + verite <- test$y + predictions <- predict(modele, test) + + mean((verite - predictions) ^ 2) +} +``` + +### Subsampling pour CV + +Fonction prenant un dataset et un nombre **k** comme arguments, et générant **k** permutations train/test. +On passe par la création d'une variable _groupVar_ qui est un tirage aléatoire équilibré (le vecteur 1:k est répété sur la longueur du dataset, puis mélangé). +Ensuite, chaque k-ième du dataset est pris comme set de test, pendant que le reste sert de set d'entraînement. + +```{r subsampling} +subsampl <- function(df, k) +{ + df %>% + mutate(groupVar = rep(1:k, + length.out = nrow(df)) %>% + sample) %>% + group_nest(groupVar, .key = "test") %>% + mutate(train = test %>% map(~ anti_join(df, .))) %>% + select(-groupVar) +} +``` + +### Cross-validation d'un modèle + +Fonction appliquant la procédure de cross-validation pour un modèle. +On créé tout d'abord les k permutations, puis on calcule la **MSE** pour chaque permutation, avec le modèle donné. +Enfin, on calcule la moyenne des MSE de chacune des permutations. + +```{r CV_one} +CV_one <- function(df, model, k) +{ + df %>% + subsampl(k) %>% + mutate(mse = map2_dbl(train, test, ~mse(.x, .y, model))) %>% + pull(mse) %>% + mean +} +``` + +### Cross-validation sur tous les modèles + +Fonction appliquant la procédure de cross-validation à tous les modèles en argument. +Le dataset est dupliqué pour chaque modèle, et on applique ensuite la procédure unique pour chaque couple degré-modèle. + +```{r CV} +CV <- function(df, k, models) +{ + df %>% + crossing(degre = 1:length(models)) %>% + group_nest(degre) %>% + mutate(mse = map2_dbl(data, degre, ~ CV_one(.x, .y, k))) +} +``` + +## Application + +Il ne reste plus qu'à appliquer la cross-validation souhaitée sur notre set d'entraînement, et choisir le modèle le plus approprié. + +```{r application} +2:5 %>% + map(model_lm) -> liste_modeles + +df_train %>% + CV(80, liste_modeles) +``` + +## Modèle final + +```{r modèle final} +lm(y ~ x, data = df_train) -> fit + +predict(fit, df_test) -> predictions + +mean((df_test$y - predictions)^2) +``` + + + +# Bootstrap + +Le bootstrap est une méthode de _resampling_ qui consiste à tirer un grand nombre **n** de tirages au sort avec remise de la distribution en entrée. + +## Bootstrap de la moyenne + +Fonction prenant un vecteur à bootstrap, et le nombre de répétitions. +Il s'agit d'un simple tirage avec remise, effectué **b** fois, dont on calcule la moyenne. + +```{r bootstrap} +bootstrap <- function(x, n) +{ + replicate(n, sample(x, replace = T) %>% mean) +} +``` + +## Exemple + +Calcul de l'intervalle à 95% de la moyenne. + +### Données + +Distribution normale aléatoire de 30 sujets. + +```{r} +x <- rnorm(30) +qplot(x) +mean(x) +t.test(x)$conf.int +``` + +### Production du bootstrap + +```{r apply bootstrap} +b <- bootstrap(x, 10000) + +tibble(x = b) %>% + ggplot() + + aes(x = x) + + geom_histogram() + + geom_vline(xintercept = mean(b)) + + geom_vline(xintercept = quantile(b, probs = c(.025, .975))) + +mean(b) +quantile(b, probs = c(.025, .975)) +```