【问题标题】:Repeat the re-sampling function for 1000 times ? Using lapply?重复重采样功能 1000 次 ?使用 lapply?
【发布时间】:2013-12-27 17:26:02
【问题描述】:

请我出去!我很感激任何帮助!谢谢!

我无法重复重新采样 1000 次。 我尝试使用 replicate() 来做到这一点,但它不起作用。有没有其他方法可以做到这一点?谁能告诉我这是否可以通过使用 lapply 来完成? 以下是我的代码:

#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

从上面的代码中,我可以通过随机抽样数据得到 1000 个 betas0 和 1。我想这样做 1000 次以获得不同的测试版。除了replicate()我应该怎么做?

【问题讨论】:

  • 所以replicate(1000, {your_codez}) 不起作用?
  • 是的,我已经尝试了 rep(1000, function()) 但无法得到结果。
  • 我没说要使用function()。你应该使用花括号。
  • 仅供参考,replicatesapply 的常用包装器,用于重复计算表达式。 sapply 本身是lapply 的用户友好版本和包装器,它返回向量或矩阵而不是列表。

标签: r lm statistics-bootstrap


【解决方案1】:

这更像是一个扩展评论,我证明replicate 应该可以工作。这是 CLT 的示例。只需将大括号之间的内容替换为您的行。

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

【讨论】:

  • 谢谢@Roman。所以在我的情况下,我应该把哪个放在 {} 里面?我试过 put get.beta 但它给出了错误,并且 bootcoe 运行了很长时间。同时放置 get.beta 和 bootcoe 会再次出现错误。
  • 另外,为什么最后有mean(mm)?谢谢!
  • @user2978129 最后一行是你的函数的结果。你应该把你想要评估的东西放在大括号之间......n次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 2019-11-08
相关资源
最近更新 更多