Bootstrap paramétrique, semi-paramétrique et non paramétrique pour les modèles mixtes

9

Les greffes suivantes sont extraites de cet article . Je suis novice dans le bootstrap et j'essaie d'implémenter le bootstrap paramétrique, semi-paramétrique et non paramétrique pour le modèle mixte linéaire avec le R bootpackage.

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

Code R

Voici mon Rcode:

library(SASmixed)
library(lme4)
library(boot)

fm1Cult <- lmer(drywt ~ Inoc + Cult + (1|Block) + (1|Cult), data=Cultivation)
fixef(fm1Cult)


boot.fn <- function(data, indices){
 data <- data[indices, ]
 mod <- lmer(drywt ~ Inoc + Cult + (1|Block) + (1|Cult), data=data)
 fixef(mod)
 }

set.seed(12345)
Out <- boot(data=Cultivation, statistic=boot.fn, R=99)
Out

Des questions

  1. Comment faire du bootstrap paramétrique, semi-paramétrique et non paramétrique pour des modèles mixtes avec bootpackage?
  2. Je suppose que je fais du bootstrap non paramétrique pour un modèle mixte dans mon code.

J'ai trouvé ces diapositives mais n'a pas pu obtenir le package R merBoot. Toute idée où je peux obtenir ce package. Toute aide sera grandement appréciée. Merci d'avance pour votre aide et votre temps.

MYaseen208
la source

Réponses:

8

Le bootstrap dans des modèles linéaires mixtes ressemble beaucoup au bootstrap dans la régression, sauf que vous avez la complication que les effets sont divisés en fixes et aléatoires. En régression pour effectuer le bootstrap paramétrique, vous ajustez le modèle paramétrique aux données, calculez les résidus de modèle, bootstrap les résidus, prenez les résidus de bootstrap et ajoutez-les au modèle ajusté pour obtenir un échantillon de bootstrap pour les données, puis ajustez le modèle aux données d'amorçage pour obtenir des estimations de paramètres d'échantillon d'amorçage. Vous répétez la procédure en amorçant à nouveau les résidus d'origine, puis en répétant les autres étapes de la procédure pour obtenir une autre estimation d'échantillon d'amorçage des paramètres. Pour le bootstrap non paramétrique, vous créez le vecteur de la réponse et des valeurs de covariable et bootstrap la sélection de vecteurs pour l'échantillon de bootstrap. À partir de l'exemple d'amorçage, vous ajustez le modèle pour obtenir les paramètres et vous répétez le processus. La seule différence entre le bootstrap paramétrique et non paramétrique est que vous bootstrap les résidus pour le bootstrap paramétrique tandis que le bootstrap non paramétrique bootstrap les vecteurs. Dans le cas du modèle mixte, vous pouvez également avoir un bootstrap semi-paramétrique en traitant certains effets de manière paramétrique et les autres de manière non paramétrique. Si votre code est un vecteur d'amorçage, vous effectuez le bootstrap non paramétrique. Je n'ai pas de solution spécifique à fournir pour le faire dans R, mais si vous regardez le livre d'Efron et Tibshirani ou mon livre avec Robert LaBudde, vous verrez le code R pour des types de modèles similaires au modèle mixte linéaire.

Michael R. Chernick
la source
Merci @Michael pour ta gentille réponse. Je vous serais très reconnaissant de partager des exemples pour les trois méthodes de démarrage implémentées dans R.
MYaseen208
Je ne pense pas avoir d'exemples semi-paramétriques. Je ne suis pas encore programmeur R. Robert LaBudde a fait toute la programmation R de notre livre. Il donne un exemple de bootstrap paramétrique codé en R pour un modèle autorégressif stationnaire (pp 120-122). À la page 10 du livre, il montre toutes les fonctions de bootstrap dans R qui apparaissent en utilisant la requête "> help.search ('bootstrap') Efron et Tibshirani ont documenté dans leur livre le paquet de bootstrap dans R qu'ils appellent" bootstrap "un autre package dû à Davison et Hinkley est leur package "boot" que vous pouvez découvrir plus dans leur livre de bootstrap.
Michael R. Chernick
Il convient de mentionner que l'amorçage strict non paramétrique d'un modèle mixte est susceptible d'échouer. Il peut complètement omettre un niveau d'une variable aléatoire, ce qui interrompt le processus.
Bryan
2

Vous voudrez peut-être jeter un œil à la bootMerfonction dans la version de développement de lme4,

install_github("lme4",user="lme4")
library(lme4)

qui peut faire un bootstrap (semi-) paramétrique basé sur un modèle de modèles mixtes ... ?bootMer

Tom Wenseleers
la source