# Bootstrap (statistiques)

En statistiques, les techniques de bootstrap sont des méthodes d'inférence statistique basées sur la réplication multiple des données à partir du jeu de données étudié, selon les techniques de rééchantillonnage. Elles datent de la fin des années 1970, époque où la possibilité de calculs informatiques intensifs devient abordable. On calculait depuis près d'un siècle des estimations : mesures de dispersion (variance, écart-type), intervalles de confiance, tables de décision pour des tests d'hypothèse, etc., à partir des expressions mathématiques des lois de probabilité, ainsi que d'approximations de celles-ci quand le calcul n'était pas réalisable. Désormais, l'approche par calcul stochastique sur technologie numérique permet de multiplier ces évaluations, et surtout de quantifier la sensibilité de ces évaluations aux particularités de l'échantillon originel, i.e. le jeu de données étudié, grâce à l'analyse statistique des sous-échantillons possibles.
Cette méthode est basée sur des simulations stochastiques, comme les méthodes de Monte-Carlo, les méthodes numériques bayésiennes (échantillonneur de Gibbs, l'algorithme de Metropolis-Hastings), à la différence près que le bootstrap ne nécessite pas d'autre information que celle disponible sur les individus de l'échantillon originel.
Plus précisément, et c'est le sens du terme « rééchantillonnage », un bootstrap consiste à créer des « nouveaux échantillons » statistiques, mais uniquement par tirage avec remise, à partir de l'échantillon initial. L'aspect autocentré et itératif de la méthode a inspiré sa désignation anglaise : en effet, le bootstrap désigne le fait de « se hisser en tirant sur ses propres lacets ou plus précisément sur ses « bootstraps » qui désignent en anglais les anneaux de cuir ou tissu cousus au rebord des bottes pour y passer les doigts afin de les enfiler plus facilement ».

## Principe général

Soit un échantillon $X_{1},X_{2},\ldots ,X_{n}$ de n observations, indépendantes et identiquement distribuées (iid) selon une loi de probabilité inconnue. On note $F$ la fonction de répartition de cette loi. On souhaite estimer la quantité $\theta =T(F)$, comme l'espérance de la loi, sa médiane ou encore sa variance. Dans le premier cas, la fonctionnelle $T$ est
    $T(F)=\int xdF(x)$
et dans le troisième
    $T(F)=\int (x-\mu )^{2}dF(x)$
avec $\mu$ l'espérance, dont l'expression a été donnée plus haut.
Une estimation classique de $\theta$ est ${\hat {\theta }}=T({\hat {F}})$, où ${\hat {F}}$ est une estimation de la fonction de répartition $F$. Il reste donc à obtenir cette estimation ${\hat {F}}$. Deux cas se présentent :
* cas paramétrique : on suppose que $F$ fait partie d'une famille de lois paramétriques, c'est-à-dire indexées par un ensemble de paramètres, disons $\omega$. Après l'estimation des paramètres $\omega$, par maximum de vraisemblance par exemple, on dispose d'une estimation (paramétrique) de $F$. On parle de bootstrap paramétrique ;
* cas non paramétrique : ici, on ne fait aucune hypothèse sur l'appartenance de la loi à une famille paramétrique. On estime ${\hat {F}}$ à l'aide de la fonction de répartition empirique. On parle de bootstrap non paramétrique.
L'étape suivante du bootstrap se base sur des simulations : étant donné l'estimation (paramétrique ou non) ${\hat {F}}$, on obtient des tirages issus de cette loi qui permettent d'estimer ${\hat {\theta }}=T({\hat {F}})$. On parle d´échantillon bootstrap pour désigner un de ces tirages. Attention, ici un tirage ne concerne pas une observation $x_{i}$, mais bien un échantillon en entier, composé de n observations indépendantes. La collection des ${\hat {\theta }}$ obtenue à partir des échantillons bootstrap s'appelle la distribution bootstrap.
Pour le cas paramétrique, la méthode de bootstrap s'apparente aux méthodes simulées comme les méthodes de Monte-Carlo. Dans le cas non-paramétrique, la méthode du bootstrap revient à utiliser un échantillon bootstrap composé d'un rééchantillonnage avec remise de l'échantillon initial. La méthode nécessite donc des échantillons simulés ; leur nombre, disons $B$, doit être assez grand pour assurer la convergence des estimations empiriques de $T({\hat {F}})$. Il est d'usage de considérer un échantillon simulé de même taille que l'échantillon initial.
Pour plus de clarté, supposons que l'on veuille estimer l'espérance de la loi, et surtout la précision de l'estimation de cette espérance (c´est-à-dire la variance de l'espérance). Voici comment procéder. On fixe d'abord le nombre $B$ d'échantillons. La procédure se déroule comme suit :
* Boucle : pour $b$ allant de $1$ à $B$ :
** on tire un échantillon bootstrap : $X_{1}^{\ast },X_{2}^{\ast },\ldots ,X_{n}^{\ast }$ selon ${\hat {F}}$;
** on calcule la statistique (ici la moyenne empirique) à partir de l'échantillon bootstrap : ${\hat {\theta }}_{b}=(X_{1}^{\ast }+\cdots +X_{n}^{\ast })/n$ ;
* La moyenne empirique ${\bar {\hat {\theta }}}$ est la moyenne des moyennes empiriques des échantillons bootstraps ${\hat {\theta }}_{b}$
* La variance de l'estimateur de la moyenne empirique ${\hat {\sigma }}^{2}({\bar {\hat {\theta }}})$ est approchée par la variance empirique de la population bootstrap des ${\hat {\theta }}_{b}$.
Dans cette dernière étape, on a à estimer
    ${\hat {\sigma }}^{2}({\bar {\hat {\theta }}})={\frac {1}{B}}\sum _{b=1}^{B}\left[{\hat {\theta }}_{b}-{\bar {\hat {\theta }}}\right]^{2}$,
avec
    ${\bar {\hat {\theta }}}={\frac {1}{B}}\sum _{b=1}^{B}{\hat {\theta }}_{b}$
qui constitue une alternative à l'estimateur classique
    ${\hat {\theta }}={\frac {1}{n}}\sum _{i}X_{i}$.
Pour le bootstrap non-paramétrique, l'étape de simulation est très simple : il s'agit d'un échantillon bootstrap obtenu tout simplement par rééchantillonnage avec remise de l'échantillon initial. Par exemple, pour un échantillon initial (1,2,5,4), un échantillon bootstrap sera par exemple (5,5,4,1) ou encore (4,1,4,2) et ainsi de suite.

### Intervalle de confiance

Le bootstrap permet aussi de donner une idée de l'intervalle de confiance d'une estimation. Un intervalle de confiance bootstrap, au niveau $\alpha$, se détermine en identifiant les quantiles de la distribution bootstrap, en laissant de part et d'autre de la distribution $\alpha /2\times 100\%$. Ainsi, au seuil 5 %, l'intervalle de confiance est simplement délimité par les percentiles 2,5 % et 97,5 % de la distribution bootstrap.
Pour obtenir un intervalle de confiance bootstrap, un nombre de simulations $B$ nécessite d'être suffisamment grand ; en particulier $B\geq 1000$.
Cette technique n'est valable que lorsque la distribution bootstrap est symétrique et centrée sur l'échantillon original. On consultera avec profit les ouvrages cités en bibliographie pour déterminer les techniques — plus ou moins triviales — permettant d'appréhender ce cas.

### Régression linéaire

Le bootstrap peut aussi s'appliquer à la détermination de l'intervalle de confiance pour le paramètre $\beta$ dans le cas de la régression linéaire classique. Ce cas est dénommé smooth bootstrap en anglais.
Dans le modèle de régression linéaire
    $y=X\beta +\epsilon ,$
on suppose que la variable dépendante y et les aléas $\epsilon$ sont de dimension $n\times 1$, les explicatives $X$ de dimension $n\times p$ et qu'il y a $p$ coefficients $\beta$ à déterminer.
Les hypothèses classiques de la régression linéaire permettent de conclure que l'estimateur de $\beta$ par les moindres carrés ordinaires, ${\hat {\beta }}=(X'X)^{-1}X'y$, est distribué normalement :
    ${\hat {\beta }}\sim N\left(\beta ;\sigma ^{2}(X'X)^{-1}\right).$
Ainsi, pour un $j$ entre $1$ et $p$, on peut construire un intervalle de confiance au seuil de $\alpha$ % pour ${\hat {\beta }}_{j}$ :
    ${\hat {\beta }}_{j}\pm t_{\alpha /2;n-p}\times {\sqrt {{\widehat {s^{2}}}c_{j,j}}}.$
Dans cette formule, $t_{\alpha /2;n-p}$ est le quantile issu de la loi de Student, ${\widehat {s^{2}}}$ l'estimateur conventionnel de $\sigma ^{2}$ et $c_{j,j}$ l'élément $(j,j)$ de la matrice $C=(X'X)^{-1}$.
Le bootstrap s'utilise pour fournir une alternative à cet intervalle de confiance. Les aléas $\epsilon$ ne sont pas observables, car leur loi est inconnue. Dans la démarche bootstrap, les aléas sont remplacés par les résidus :
    ${\hat {e}}=({\hat {e}}_{1},\ldots ,{\hat {e}}_{n})=y-{\hat {y}}=y-X{\hat {b}}.$
Le bootstrap se déroule comme suit :
* Pour $b$ allant de $1$ à $B$ :
** rééchantillonnage : on remplace les aléas par des résidus bootstrap ${\hat {e}}^{\ast }$, obtenus par rééchantillonnage avec remise des résidus initiaux ${\hat {e}}$. Ces résidus ont pour dimension $n$, et la dépendance à l'index $b$ n'a pas été indiquée afin d'alléger les notations ;
** on construit des variables dépendantes bootstrap : ${\hat {y}}^{\ast }=X{\hat {\beta }}+{\hat {e}}^{\ast }$, puis on estime par les moindres carrés ordinaires ${\hat {\beta }}_{b}^{\ast }=(X'X)^{-1}X'{\hat {y}}^{\ast }$.
* Exploitation de la population des ${\hat {\beta }}_{b}^{\ast }$ pour construire l'intervalle de confiance comme indiqué plus haut. On a besoin d'obtenir les quantiles d'ordre $\alpha$ et $1-\alpha$ de la population des ${\hat {\beta }}_{b}^{\ast }$.

### Test bootstrap
## Bibliothèque logicielle

* Bibliothèque gratuite pour MATLAB
* Sous R, il existe principalement deux paquets :
** bootstrap basé sur Efron et Tibshirani (1994) ;
** boot présente plus de fonctionnalités (d’après Davison et Hinkley, 1997).

## Exemple

On utilise 34 des 507 observations concernant les dimensions du corps humains. On extrait le poids (en kilogramme) et la taille (en mètre), afin de calculer l'indice de masse corporelle, défini comme le rapport du poids à la taille au carré. Les données sont reproduites ci-dessous.
Les 34 données disponibles :
| poids | taille | IMC |
| 65,60 | 1,74 | 21,67 |
| 71,80 | 1,75 | 23,36 |
| 80,70 | 1,94 | 21,55 |
| 72,60 | 1,87 | 20,87 |
| 78,80 | 1,87 | 22,49 |
| 74,80 | 1,82 | 22,71 |
| 62,00 | 1,75 | 20,24 |
| 81,60 | 1,84 | 24,10 |
| 76,60 | 1,80 | 23,64 |
| 83,60 | 1,78 | 26,44 |
| 74,60 | 1,76 | 24,08 |
| 76,40 | 1,80 | 23,50 |
| 63,20 | 1,65 | 23,36 |
| 60,90 | 1,73 | 20,35 |
| 74,80 | 1,84 | 22,21 |
| 59,50 | 1,70 | 20,59 |
| 67,20 | 1,82 | 20,29 |
| 61,30 | 1,70 | 21,21 |
| 68,60 | 1,78 | 21,70 |
| 55,20 | 1,64 | 20,50 |
| 57,00 | 1,63 | 21,45 |
| 66,10 | 1,72 | 22,40 |
| 72,00 | 1,82 | 21,74 |
| 64,60 | 1,67 | 23,16 |
| 74,80 | 1,78 | 23,66 |
| 70,00 | 1,65 | 25,87 |
| 68,40 | 1,77 | 21,96 |
| 65,90 | 1,69 | 22,96 |
| 75,70 | 1,82 | 22,83 |
| 73,20 | 1,77 | 23,29 |
| 53,90 | 1,67 | 19,23 |
| 72,00 | 1,78 | 22,70 |
| 55,50 | 1,69 | 19,46 |
| 58,40 | 1,57 | 23,63 |
On s'intéresse à l'espérance $\mu$ de l'IMC. L'estimateur naturel est la moyenne empirique :
    ${\hat {\mu }}={\frac {1}{n}}\sum _{i=1}^{n}x_{i}$
L'estimateur de la variance de cette moyenne empirique, noté ${\hat {\sigma }}^{2}({\hat {\mu }})$, est connu explicitement : il est obtenu à partir de la variance empirique ${\hat {\sigma }}_{P}^{2}$, divisée par n, c'est-à-dire :
    ${\hat {\sigma }}^{2}({\hat {\mu }})={\frac {{\hat {\sigma }}_{P}^{2}}{n}}={\frac {1}{n(n-1)}}\sum _{i=1}^{n}(x_{i}-{\hat {\mu }})^{2}$
Les estimations empiriques sont ${\hat {\mu }}=22,32941$ et ${\hat {\sigma }}^{2}({\hat {\mu }})=0,079882$.
On peut comparer aux résultats obtenus grâce aux techniques bootstrap. On utilise $B=1000$ échantillons bootstrap, de dimension $n=34$. On rappelle la procédure à suivre :
* pour b allant de 1 à B
** on construit un échantillon bootstrap par rééchantillonnage avec remise ;
** on calcule la moyenne (empirique) de cet échantillon bootstrap, notée $\mu _{b}$ ;
* on calcule la moyenne empirique et la variance de cette moyenne empirique de la distribution bootstrap.
Ces calculs sont les suivants :
    ${\hat {\mu }}_{\ast }={\frac {1}{B}}\sum _{b=1}^{B}\mu _{b}$
et
    ${\hat {\sigma }}^{2}({\hat {\mu }})_{\ast }={\frac {1}{B-1}}\sum _{b=1}^{B}(\mu _{b}-{\hat {\mu }}_{\ast })^{2}$
La moyenne empirique est ${\hat {\mu }}_{\ast }=22,33521$ et la variance de cette estimation de moyenne empirique est de ${\hat {\sigma }}^{2}({\hat {\mu }})_{\ast }=0,079582$, valeurs très proches des estimations non bootstrap. Qui plus est, la distribution bootstrap semble normale, comme en témoigne le qq-plot. On pourrait alors construire un intervalle de confiance bootstrap, malgré la taille très modeste de l'échantillon.