# [R] Speed up studentized confidence intervals ?

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Thu Dec 23 14:10:31 CET 2021

```Hello,

The code is running very slowly because you are recreating the function
in the replicate() loop and because you are creating a data.frame also
in the loop.

And because in the bootstrap statistic function med() you are computing
the variance of yet another loop. This is probably statistically wrong
but like David says, without a problem description it's hard to say.

Also, why compute variances if they are never used?

Here is complete code executing in much less than 2:00 hours. Note that
it passes the vector a directly to med(), not a df with just one column.

library(boot)

set.seed(2021)
s <- sample(178:798, 100000, replace = TRUE)
mean(s)

med <- function(d, i) {
temp <- d[i]
f <- mean(temp)
g <- var(temp)
c(Mean = f, Var = g)
}

N <- 1000
out <- replicate(N, {
a <- sample(s, size = 5)
boot.out <- boot(data = a, statistic = med, R = 10000)
boot.ci(boot.out, type = "stud")\$stud[, 4:5]
})
mean(out[1, ] < mean(s) & mean(s) < out[2, ])
#[1] 0.952

Hope this helps,

Às 11:45 de 19/12/21, varin sacha via R-help escreveu:
> Dear R-experts,
>
> Here below my R code working but really really slowly ! I need 2 hours with my computer to finally get an answer ! Is there a way to improve my R code to speed it up ? At least to win 1 hour ;=)
>
> Many thanks
>
> ########################################################
> library(boot)
>
> s<- sample(178:798, 100000, replace=TRUE)
> mean(s)
>
> N <- 1000
> out <- replicate(N, {
> a<- sample(s,size=5)
> mean(a)
> dat<-data.frame(a)
>
> med<-function(d,i) {
> temp<-d[i,]
> f<-mean(temp)
> g<-var(replicate(50,mean(sample(temp,replace=T))))
> return(c(f,g))
>
> }
>
>    boot.out <- boot(data = dat, statistic = med, R = 10000)
>    boot.ci(boot.out, type = "stud")\$stud[, 4:5]
> })
> mean(out[1,] < mean(s) & mean(s) < out[2,])
> ########################################################
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help