Accéder au contenu principal
Documents
Partager
LinkedIn
Facebook
Twitter
Copy
R DocumentationEntrée de données en RGestion des données en RGraphiques en RR InterfaceStatistiques en R

Bootstrapping en R

Bootstrapping non paramétrique

Le paquet boot offre des possibilités étendues pour le bootstrapping et les méthodes de rééchantillonnage apparentées. Vous pouvez extraire une seule statistique (par exemple, une médiane) ou un vecteur (par exemple, les poids de régression). Cette section vous permettra de vous initier au bootstrapping non paramétrique de base.

La principale fonction d'amorçage est boot( ) et a le format suivant :

bootobject <- boot(data= , statistic= , R= , ...) where

   
paramètre description
data Un vecteur, une matrice ou un cadre de données
statistic La fonction doit inclure un paramètre d'indices que la fonction boot() peut utiliser pour sélectionner des cas pour chaque réplication (voir les exemples ci-dessous).
R Nombre de répliques bootstrap
... Paramètres supplémentaires à transmettre à la fonction qui produit la statistique d'intérêt

boot( ) appelle la fonction statistique R fois. À chaque fois, il génère un ensemble d'indices aléatoires, avec remplacement, à partir des nombres entiers 1:nrow(data). Ces indices sont utilisés dans la fonction statistique pour sélectionner un échantillon. Les statistiques sont calculées sur l'échantillon et les résultats sont accumulés dans l'objet boot. La structure de l'objet de démarrage comprend

   
élément description
t0 Les valeurs observées des statistiques k appliquées aux données originales.
t Une matrice R x k où chaque ligne est une réplique bootstrap des k statistiques.

Vous pouvez y accéder en tant que bootobject$t0 et bootobject$t.

Une fois que vous avez généré les échantillons bootstrap, print(bootobject) et plot(bootobject) peuvent être utilisés pour examiner les résultats. Si les résultats semblent raisonnables, vous pouvez utiliser la fonction boot.ci( ) pour obtenir des intervalles de confiance pour les statistiques.

Le format est le suivant

boot.ci(bootobject, conf=, type= )

   
paramètre description
bootobject L'objet renvoyé par la fonction de démarrage
conf L'intervalle de confiance souhaité (par défaut : conf=0.95)
type Le type d'intervalle de confiance renvoyé. Les valeurs possibles sont "norm", "basic", "stud", "perc", "bca" et "all" (par défaut : type="all").

Bootstrap d'une seule statistique (k=1)

L'exemple suivant génère l'intervalle de confiance bootstrapped de 95 % pour le R-carré dans la régression linéaire des miles par gallon (mpg) sur le poids (wt) et la cylindrée (disp) de la voiture. La source de données est mtcars. L'intervalle de confiance bootstrap est basé sur 1000 réplications.

# Bootstrap 95% CI for R-Squared
library(boot)
# function to obtain R-Squared from the data
rsq <- function(formula, data, indices)
{
  d <- data[indices,] # allows boot to select sample
  fit <- lm(formula, data=d)
  return(summary(fit)$r.square)
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=rsq,
   R=1000, formula=mpg~wt+disp)

# view results
results
plot(results)

# get 95% confidence interval
boot.ci(results, type="bca")

résultats du bootstrap 

Bootstrap de plusieurs statistiques (k>1)

Dans l'exemple ci-dessus, la fonction rsq renvoie un nombre et boot.ci renvoie un seul intervalle de confiance. La fonction statistique que vous fournissez peut également renvoyer un vecteur. Dans l'exemple suivant, nous obtenons l'IC à 95 % pour les trois coefficients de régression du modèle (ordonnée à l'origine, poids de la voiture, déplacement). Dans ce cas, nous ajoutons un paramètre d'index à plot( ) et boot.ci( ) pour indiquer quelle colonne de bootobject$t doit être analysée.

# Bootstrap 95% CI for regression coefficients
library(boot)
# function to obtain regression weights

bs <- function(formula, data, indices)
{
  d <- data[indices,] # allows boot to select sample
  fit <- lm(formula, data=d)
  return(coef(fit))
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=bs,
   R=1000, formula=mpg~wt+disp)

# view results
results
plot(results, index=1) # intercept
plot(results, index=2) # wt
plot(results, index=3) # disp

# get 95% confidence intervals
boot.ci(results, type="bca", index=1) # intercept
boot.ci(results, type="bca", index=2) # wt
boot.ci(results, type="bca", index=3) # disp

bootstrap intercept bootstrap b1 bootstrap b2 

Aller plus loin

La fonction boot( ) peut générer un rééchantillonnage non paramétrique et paramétrique. Pour le bootstrap non paramétrique, les méthodes de rééchantillonnage comprennent l'échantillonnage ordinaire, l'échantillonnage équilibré, l'échantillonnage antithétique et l'échantillonnage par permutation. Pour le bootstrap non paramétrique, le rééchantillonnage stratifié est pris en charge. Les poids de rééchantillonnage de l'importance peuvent également être spécifiés.

La fonction boot.ci( ) prend un objet boot et génère 5 types différents d'intervalles de confiance non paramétriques bilatéraux. Il s'agit notamment de l'approximation normale de premier ordre, de l'intervalle bootstrap de base, de l'intervalle bootstrap studentized, de l'intervalle bootstrap percentile et de l'intervalle bootstrap percentile ajusté (BCa).

Consultez help(boot), help(boot.ci) et help(plot.boot) pour plus de détails.

En savoir plus

Vous trouverez de bonnes sources d'information à l'adresse Resampling Methods in R : The boot Package par Angelo Canty, Getting started with the boot package par Ajay Shah, Bootstrapping Regression Models parJohn Fox, et Bootstrap Methods and Their Applications par Davison et Hinkley.

Pratiquer

Essayez cet exercice interactif avec le package boot du cours de DataCamp Intro to Computational Finance with R.