[R] Resampling to find Confidence intervals
Dieter Menne
dieter.menne at menne-biomed.de
Tue Jan 4 17:24:02 CET 2011
Axolotl9250 wrote:
>
> ...
> resampled_ecoli = sample(ecoli, 500, replace=T)
> coefs = (coef(lm(MIC. ~ 1 + Challenge + Cleaner + Replicate,
> data=resampled_ecoli)))
> sd(coefs)
>
> ...
>
Below a simplified and self-consistent version of your code, and some
changes
Dieter
# resample
d = data.frame(x=rnorm(10))
d$y = d$x*3+rnorm(10,0.01)
# if you do this, you only get ONE bootstrap sample
d1 = d[sample(1:nrow(d),10,TRUE),]
d1.coef = coef(lm(y~x,data=d1))
d1.coef
# No error below, because you compute the sd of (Intercept) and slope
# but result is wrong!
sd(d1.coef)
# We have to do this over and over
# Check ?replicate for a more R-ish approach....
nsamples = 1000
allboot = NULL
for (i in 1:1000) {
d1 = d[sample(1:nrow(d),10,TRUE),]
d1.coef = coef(lm(y~x,data=d1))
allboot = rbind(allboot,d1.coef) # Not very efficient, preallocate!
}
head(allboot) # display first of nsamples lines
apply(allboot,2,mean) # Compute mean
apply(allboot,2,sd) # compute sd
# After you are sure you understood the above, you might try package boot.
--
View this message in context: http://r.789695.n4.nabble.com/Resampling-to-find-Confidence-intervals-tp3172867p3173846.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list