I'm trying to determine the variance partitioning within plant drought tolerance data among hierarchical ecological levels, from species to forest sites to biome levels. I did that with the varcomp random effects model in R:

varcomp(lme(TLP_DRY~1, random=~1|Biomes/SiteNum/Species, data=d, na.action =na.omit),1)

Now, I want to bootstrap 95% confidence intervals for variance at each level, but I get incredibly weird results! Almost all of my species variance percentages become 100%, while within-species and biome variation becomes 10E-32, which looks nothing like the results for the actual dataset.

My questions: What is happening in the bootstrap and What does it mean about my ability to calculate confidence intervals?

My code in R for generating the bootstrap is:

matrix(NA, nrow=1000, ncol = 4)-> emptylist # define a place to put the simulated values

for(ii in 1:1000){
Data[sample(nrow(Data),100, replace = TRUE),] -> d # take a random sample the same size as the dataset with replacement

varcomp(lme(TLP_DRY~1, random=~1|Biomes/SiteNum/Species, data=d, na.action =na.omit),1) -> mod  # calculate variance partitioning 

mod[1]-> emptylist[ii,1] # stick the values together in one place
mod[2]-> emptylist[ii,2]
mod[3]-> emptylist[ii,3]
mod[4]-> emptylist[ii,4]
quantile(emptylist[,1], c(.025, .975))  # determine the 95% confidence intervals
quantile(emptylist[,2], c(.025, .975))
quantile(emptylist[,3], c(.025, .975))
quantile(emptylist[,4], c(.025, .975))

1 Answer 1


Bootstrapping from a hierarchical data set is not straight-forward. Your implementated bootstrap procedure where you just select rows with replacement from the original dataset is too simplified and not correct. You could either try parametric bootstrapping or, if you want (or need) to stay non-parametric, select data units from the highest level in the hierarchy with replacement as suggested by Ren et al. http://www.tandfonline.com/doi/abs/10.1080/02664760903046102

So I guess in your case that would be selecting biome levels with replacement if I understood you correctly. Maybe there are newer publications on that subject that I am not aware of.

  • $\begingroup$ I just saw your answer- that was tremendously helpful, thanks so much! $\endgroup$
    – UCLAEeb
    Jan 13, 2013 at 21:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.