12

Please me out! I appreciate any helps ! Thanks!

I have trouble on repeat doing re-sampling for 1000 times. I tried using replicate() to do that but it's not working. Is there any other method to do that? Can anyone show me if this maybe done by using lapply? Following is my code:

#sampling 1000 betas0 & 1 (coefficients) from the data
get.beta=function(data,indices){ 
  data=data[indices,] #let boot to select sample
  lm.out=lm(y ~ x,data=data)
  return(lm.out$coefficients)
}
n=nrow(data)
get.beta(data,1:n)

bootcoe=boot(data,get.beta,R=1000) #generate 1000 random samples
head(bootcoe$t) #look at the betas

From the above code I can get 1000 betas0 & 1 by random sampling the data. And I would like to do that 1000 times to get different betas. How should I do that besides replicate()?

Siguza
  • 21,155
  • 6
  • 52
  • 89
user2978129
  • 191
  • 1
  • 3
  • 10

1 Answers1

29

This is more of an extended comment where I demonstrate that replicate should work. Here's an example of a CLT. Just replace your lines what's between the curly braces.

x <- replicate(1000, {
  mm <- runif(10)
  mean(mm)
  })
hist(x)

enter image description here

Roman Luštrik
  • 69,533
  • 24
  • 154
  • 197
  • Thanks @Roman. So in my case, which should I put inside the {} ? I tried put get.beta but it gives errors, and having bootcoe runs for a long time. Putting both get.beta and bootcoe gives error again. – user2978129 Dec 10 '13 at 09:49
  • Also, why there is mean(mm) at the end? Thanks ! – user2978129 Dec 10 '13 at 09:49
  • @user2978129 the last line is the result of your function. You should put between braces the things you want to be evaluated.... `n` times. – Roman Luštrik Dec 10 '13 at 21:26