Devo inicializar no nível do cluster ou no nível individual?


10

Eu tenho um modelo de sobrevivência com pacientes aninhados em hospitais que inclui um efeito aleatório para os hospitais. O efeito aleatório é distribuído por gama, e estou tentando relatar a 'relevância' desse termo em uma escala que é facilmente compreendida.

Encontrei as seguintes referências que usam a Median Hazard Ratio (um pouco como a Median Odds Ratio) e calculei isso.

Bengtsson T, Dribe M: Métodos Históricos 43:15, 2010

No entanto, agora desejo relatar a incerteza associada a essa estimativa usando o bootstrap. Os dados são dados de sobrevivência e, portanto, existem várias observações por paciente e vários pacientes por hospital. Parece óbvio que preciso agrupar as observações do paciente ao realizar uma nova amostragem. Mas não sei se devo agrupar os hospitais também (ou seja, reamostrar hospitais, em vez de pacientes?

Gostaria de saber se a resposta depende do parâmetro de interesse e, portanto, seria diferente se o objetivo fosse algo relevante no nível do paciente e não no hospital?

Listei o código stata abaixo, caso isso ajude.

cap program drop est_mhr
program define est_mhr, rclass
stcox patient_var1 patient_var2 ///
    , shared(hospital) ///
    noshow
local twoinvtheta2 = 2 / (e(theta)^2)
local mhr = exp(sqrt(2*e(theta))*invF(`twoinvtheta2',`twoinvtheta2',0.75))
return scalar mhr = `mhr'
end

bootstrap r(mhr), reps(50) cluster(hospital): est_mhr

Respostas:


2

Imagine que você conduziu um estudo sobre as realizações educacionais das crianças. Você tirou uma amostra aleatória de escolas de alguma área e de cada escola uma classe foi incluída no estudo. Você conduziu a análise e agora deseja usar o bootstrap para obter intervalos de confiança para suas estimativas. Como fazer isso?

Primeiro, observe que seus dados são hierárquicos, eles têm vários níveis: escolas, aulas nas escolas e alunos nas aulas. Como há apenas uma turma por escola, o segundo nível não existe nos seus dados. Podemos assumir que existem algumas semelhanças nas escolas e diferenças entre as escolas. Se houver semelhanças nas escolas, se você fizer uma amostragem aleatória dos alunos, sem levar em consideração a participação na escola, você poderá destruir a estrutura hierárquica dos seus dados.

Em geral, existem várias opções:

  1. amostra de alunos com substituição,
  2. experimente escolas inteiras com substituição,
  3. primeiro experimente as escolas com substituição e depois experimente os alunos (a) com substituição ou (b) sem substituição.

Parece que a primeira abordagem é a pior. Lembre-se de que a amostragem por autoinicialização deve, de alguma forma, imitar o processo de amostragem em seu estudo e você estudou escolas em vez de alunos individuais. Escolher entre (2) e (3) é mais complicado, mas espero que você possa encontrar trabalhos de pesquisa considerando esse tópico (por exemplo, Rena et al. 2010, Field e Welsh, 2007). Geralmente as opções (2) ou (3b) são preferíveis, pois parece que incluir níveis demais de amostragem com substituição leva a resultados tendenciosos. Você pode encontrar mais informações sobre esse tópico também nos livros de Efron e Tibshirani (1994) e Davison e Hinkley (1997). Observe que temos um problema semelhante com a inicialização de dados de séries temporaise, nesse caso, também experimentamos blocos inteiros de séries (por exemplo, temporada inteira, se assumirmos sazonalidade), em vez de observações individuais, porque, caso contrário, a estrutura temporal seria destruída. Na prática, não existe uma solução única, mas com estruturas de dados complicadas, você deve escolher um esquema de amostragem de autoinicialização que melhor se adapte aos seus dados e ao seu problema e, se possível, use um estudo de simulação para comparar diferentes soluções.


Davison, AC e Hinkley, DV (1997). Métodos de inicialização e sua aplicação. Cambridge.

Efron, B. e Tibshirani, RJ (1994). Uma introdução ao Bootstrap . CRC Pressione.

Ren, S., Lai, H., Tong, W., Aminzadeh, M., Hou, X. e Lai, S. (2010). Bootstrapping não paramétrico para dados hierárquicos. Jornal de Estatística Aplicada, 37 (9), 1487-1498.

Field, CA, e Galês, AH (2007). Bootstrapping de dados em cluster. Jornal da Sociedade Estatística Real: Série B (Metodologia Estatística), 69 (3), 369-390.


11
Aceitou sua resposta (obrigado), mas, para outros, agora eu implementei uma função no R para fazer isso na minha resposta
drstevok

3

A resposta parece ser que o processo de reamostragem precisa levar em conta a estrutura dos dados. Há uma boa explicação aqui (junto com algum código R para implementar isso).

http://biostat.mc.vanderbilt.edu/wiki/Main/HowToBootstrapCorrelatedData

Agradecimentos ao ponteiro do UCLA Statistical Consulting Group .

Eu escrevi uma versão mais rápida (mas menos flexível) do snippet de código vinculado a acima - verifique aqui para atualizações e detalhes.

rsample2 <- function(data=tdt, id.unit=id.u, id.cluster=id.c) {
require(data.table)

setkeyv(tdt,id.cluster)
# Generate within cluster ID (needed for the sample command)
tdt[, "id.within" := .SD[,.I], by=id.cluster, with=FALSE]

# Random sample of sites
bdt <- data.table(sample(unique(tdt[[id.cluster]]), replace=TRUE))
setnames(bdt,"V1",id.cluster)
setkeyv(bdt,id.cluster)

# Use random sample of sites to select from original data
# then
# within each site sample with replacement using the within site ID
bdt <- tdt[bdt, .SD[sample(.SD$id.within, replace=TRUE)],by=.EACHI]

# return data sampled with replacement respecting clusters
bdt[, id.within := NULL] # drop id.within
return(bdt)
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.