[R] Bootstrap ICC estimate with nested data

Spencer Graves spencer.graves at pdf.com
Tue Sep 21 19:01:44 CEST 2004


      Have you considered "simulate.lme" in package nlme?  This is not 
bootstrapping, but it's not obvious to me how to bootstrap with a 
complicated structure and get anything with a simple interpretation.  
More information on this is provided in Pinhiero and Bates (2000) 
Mixed-Effects Models in S and S-Plus (Springer).  Bates is the primary 
architect of lme, nlme, etc.  I have found this book quite valuable. 

      hope this helps.  spencer graves

Andrew Robinson wrote:

>Paul,
>
>I think that you should account for the group structure.
>
>My reading of Davison and Hinkley "Bootstrap Methods and their
>Application" (1997, p. 100) suggests that for balanced data structures
>with more than, say, 10 clusters, one should apply the bootstrap to
>the clusters, but not within the clusters.  They provide some further
>notes that you might find useful.
>
>I hope that this helps.
>
>Andrew
>
>On Tue, Sep 21, 2004 at 03:41:29PM +0200, Bliese, Paul D MAJ USAMH wrote:
>  
>
>>I would appreciate some thoughts on using the bootstrap functions in the
>>library "bootstrap" to estimate confidence intervals of ICC values
>>calculated in lme.
>>
>>In lme, the ICC is calculated as tau/(tau+sigma-squared).  So, for instance
>>the ICC in the following example is 0.116:
>>
>>    
>>
>>>tmod<-lme(CINISMO~1,random=~1|IDGRUP,data=TDAT)
>>>VarCorr(tmod)
>>>      
>>>
>>IDGRUP = pdLogChol(1) 
>>            Variance  StdDev  
>>(Intercept) 0.1829931 0.427777
>>Residual    1.3907732 1.179310
>>    
>>
>>>0.18299/(0.18299+1.39077)
>>>      
>>>
>>[1] 0.1162757
>>
>>Using the bootstrap library, I can set up theta to do the ICC as follows:
>>
>>    
>>
>>>theta<-function(x,DATA){tmod<-lme(CINISMO~1,random=~1|IDGRUP,data=DATA[x,])
>>>      
>>>
>>OUT<-as.numeric(VarCorr(tmod)[[1]])/(as.numeric(VarCorr(tmod)[[1]])+as.numer
>>ic(VarCorr(tmod)[[2]]))
>>return(OUT)}
>>
>>Finally, I can run the bootstrap-t confidence limit function (or other
>>functions) as follows:
>>
>>    
>>
>>>bootout<-boott(1:nrow(TDAT),100,theta,data=TDAT)
>>>      
>>>
>>This seems to work, but the estimates also seem strange.  For intance, the
>>observed ICC value is larger than the 95% confidence intervals provided by
>>the bootstrap.  It occurs to me that the results might be strange because
>>the sampling with replacement is being done without regard to group
>>membership.  That is, I might select individual 1 from group 1 10 times
>>(even though in the sample the group only has 5 members), and I might not
>>select any individuals from group 2.
>>
>>My fundamental question is:  "What are people's thoughts about using
>>bootstaping in nested data?  Does one have to sample with replacement taking
>>into consideration the group structure in the data?"  If so, any suggestions
>>on how to do this?
>>
>>
>>Paul Bliese
>>US Army Medical Research Unit - Europe
>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>>    
>>
>
>  
>

-- 
Spencer Graves, PhD, Senior Development Engineer
O:  (408)938-4420;  mobile:  (408)655-4567




More information about the R-help mailing list