Bootstrapping paramétrico, semiparamétrico e não paramétrico para modelos mistos

9

Os seguintes enxertos são retirados deste artigo . Eu sou novato no bootstrap e estou tentando implementar o bootstrap paramétrico, semiparamétrico e não paramétrico para o modelo misto linear com o R bootpacote.

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

Código R

Aqui está o meu Rcódigo:

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

Questões

  1. Como executar bootstrap paramétrico, semiparamétrico e não paramétrico para modelos mistos com bootpacote?
  2. Eu acho que estou fazendo bootstrapping não paramétrico para modelo misto no meu código.

Eu encontrei esses slides , mas não conseguiu obter o pacote R merBoot. Alguma idéia de onde posso obter esse pacote. Qualquer ajuda será muito apreciada. Agradecemos antecipadamente a sua ajuda e tempo.

MYaseen208
fonte

Respostas:

8

O bootstrapping em modelos lineares mistos é muito parecido com o bootstrapping na regressão, exceto que você tem a complicação de que os efeitos são divididos em fixo e aleatório. Na regressão para executar o bootstrap paramétrico, você ajusta o modelo paramétrico aos dados, calcula os resíduos do modelo, inicializa os resíduos, pega os resíduos do bootstrap e os adiciona ao modelo ajustado para obter uma amostra de bootstrap para os dados e, em seguida, ajusta o modelo aos dados de autoinicialização para obter estimativas de parâmetros de amostra de autoinicialização. Você repete o procedimento inicializando os resíduos originais novamente e depois repetindo as outras etapas do procedimento para obter outra estimativa de amostra dos parâmetros. Para a inicialização não paramétrica, você cria o vetor dos valores de resposta e covariáveis ​​e inicializa a seleção de vetores para a amostra de inicialização. A partir da amostra de autoinicialização, você ajusta o modelo para obter os parâmetros e repete o processo. A única diferença entre a inicialização paramétrica e não paramétrica é que você inicializa os resíduos da inicialização paramétrica enquanto a inicialização não paramétrica inicializa os vetores. No caso do modelo misto, você também pode ter uma inicialização semiparamétrica tratando alguns efeitos parametricamente e outros não parametricamente. Se o seu código for vetores de inicialização, você estará executando a inicialização não paramétrica. Não tenho uma solução específica para fazer isso em R, mas se você olhar o livro de Efron e Tibshirani ou o meu livro com Robert LaBudde, verá o código R para tipos de modelos semelhantes ao modelo linear misto.

Michael R. Chernick
fonte
Obrigado @ Michael pela sua boa resposta. Eu apreciaria muito se você compartilhar exemplos dos três métodos de inicialização implementados no R.
MYaseen208
Eu não acho que tenho exemplos semiparamétricos. Eu não sou um programador R (ainda). Robert LaBudde fez toda a programação R em nosso livro. Ele dá um exemplo de uma inicialização paramétrica codificada em R para um modelo autorregressivo estacionário (pp 120-122). Na página 10 do livro, ele mostra todas as funções de inicialização no R que aparecem usando a consulta "> help.search ('bootstrap') Efron e Tibshirani documentaram em seu livro o pacote de inicialização no R que eles chamam de" inicialização " pacote devido à Davison e Hinkley é o seu pacote de "boot", que você pode descobrir mais sobre em seu livro de bootstrap.
Michael R. Chernick
Deve-se mencionar que o bootstrap não-paramétrico rigoroso de um modelo misto é propenso a falhas. Pode omitir completamente o nível de uma variável aleatória, o que interrompe o processo.
217 Bryan
2

Você pode dar uma olhada na bootMerfunção na versão de desenvolvimento do lme4,

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

que pode executar bootstrap (semi-) paramétrico baseado em modelo de modelos mistos ... Basta verificar ?bootMer

Tom Wenseleers
fonte