Du Quick-R de Robert Kabacoff, j'ai
# 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
Comment puis-je obtenir les valeurs de p des coefficients de régression bootstrap?
r
regression
p-value
bootstrap
ECII
la source
la source
Réponses:
Juste une autre variante qui est quelque peu simpliste mais je pense délivrer le message sans utiliser explicitement la bibliothèque
boot
qui peut confondre certaines personnes avec la syntaxe qu'elle utilise.Nous avons un modèle linéaire: ,y= Xβ+ ϵ ϵ ∼ N( 0 , σ2)
Ce qui suit est un bootstrap paramétrique pour ce modèle linéaire, cela signifie que nous ne rééchantillonnons pas nos données d'origine mais en réalité nous générons de nouvelles données à partir de notre modèle ajusté. De plus, nous supposons que la distribution bootstrapée du coefficient de régression est symétrique et qu'elle est invariante par translation. (Très grossièrement, nous pouvons en déplacer l'axe en affectant ses propriétés) L'idée derrière est que les fluctuations des sont dues à et donc avec suffisamment d'échantillons, elles devraient fournir une bonne approximation de la vraie distribution des . Comme avant, nous testons à nouveau et nous définissons nos valeurs p commeβ ϵ β H 0 : 0 = β j ββ β ϵ β H0: 0 = βj "la probabilité, étant donné une hypothèse nulle pour la distribution de probabilité des données, que le résultat serait aussi extrême ou plus extrême que le résultat observé" (où les résultats observés dans ce cas sont lesnous avons obtenus pour notre modèle d'origine). Alors voilà:β
Comme mentionné, l'idée générale est que la distribution bootstrapée des est approximativement leur vraie. (Clairement, ce code est optimisé pour la vitesse mais pour la lisibilité. :))β
la source
La communauté et @BrianDiggs peuvent me corriger si je me trompe, mais je pense que vous pouvez obtenir une valeur p pour votre problème comme suit. Une valeur de p pour un test bilatéral est définie comme
Donc, si vous commandez les coefficients bootstrap par taille, puis déterminez les proportions zéro plus grand et plus petit, la proportion minimale multipliée par deux devrait vous donner une valeur p.
J'utilise normalement la fonction suivante dans une telle situation:
la source
Le bootstrap peut être utilisé pour calculer les valeurs , mais il nécessiterait une modification substantielle de votre code. Comme je ne connais pas RI, je ne peux que vous donner une référence dans laquelle vous pouvez rechercher ce que vous devez faire: le chapitre 4 de (Davison et Hinkley 1997).p
Davison, AC et Hinkley, DV 1997. Méthodes de bootstrap et leur application. Cambridge: Cambridge University Press.
la source