[R] Estimation of S.E. based on bootstrapping (functions with two or more arguments)
Chuck Cleland
ccleland at optonline.net
Thu Jan 21 14:11:03 CET 2010
On 1/21/2010 7:45 AM, Tomas Zelinsky wrote:
> Hi all,
>
> I need to estimate S.E. of a certain indicator. The function to compute the
> value of indicator contains two arguments. Can anybody tell me how to do it?
>
> Example:
>
> We have data:
> a <- c(1:10)
> b <- c(11:20)
> data <- data.frame(a, b)
>
> Function to compute value of the indicator:
> indicator <- function(X, Y) sum(X)/(sum(Y)*2)
>
> Next I need to do the bootstrapping and estimate mean value of indicator and
> its standard error.
>
> If the function (indicator in my case) contained only one argument, there
> would not be a problem, the code would look like:
>
> resamples <- lapply(1:1000, function(i) sample(data, replace = T))
> r.indicator <- sapply(resamples, indicator)
> mean(r.indicator)
> sqrt(var(r.indicator))
>
>
> But in case of function with two arguments it doesn�t work. I tried to do it
> like:
> resamples <- lapply(1:1000, function(i) data[sample(1:nrow(data), replace =
> TRUE),])
> r.indicator <- sapply(resamples, indicator)
>
> but it didn't work.
>
>
> Can anybody help?
How about using boot() in package boot? Using your example:
a <- c(1:10)
b <- c(11:20)
DF <- data.frame(a,b)
library(boot)
boot(DF,
statistic = function(d, ind){sum(d$a[ind])/sum(d$b[ind]*2)},
R = 1000)
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = DF, statistic = function(d, ind) {
sum(d$a[ind])/sum(d$b[ind] * 2)
}, R = 1000)
Bootstrap Statistics :
original bias std. error
t1* 0.1774194 -0.001594390 0.01902264
> Thanks a lot.
>
> Tomas
>
> __________ Informacia od ESET NOD32 Antivirus, verzia databazy 4792
> (20100121) __________
> Tuto spravu preveril ESET NOD32 Antivirus.
> [1]http://www.eset.sk
>
> References
>
> 1. http://www.eset.sk/
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
--
Chuck Cleland, Ph.D.
NDRI, Inc. (www.ndri.org)
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 512-0171 (M, W, F)
fax: (917) 438-0894
More information about the R-help
mailing list