【发布时间】:2018-05-14 13:38:03
【问题描述】:
|大家好, 我正在向您寻求帮助,因为我被引导程序困住了......
任务是: 使用非参数 bootstrap 计算基于 1000 个 bootstrap 复制和 bootstrap 样本大小等于原始样本大小的 CAPM beta 估计的 bootstrap 标准误差。
如果我理解正确,我应该运行我的回归模型 1000 次,以估计对 beta 及其标准误差的不同估计。但是,我无法将我的想法转化为实际的 R 代码。
我的代码:
#1)fetch data from Yahoo
#AAPL prices
apple08 <- getSymbols('AAPL', auto.assign = FALSE, from = '2008-1-1', to =
"2008-12-31")[,6]
#market proxy
rm08<-getSymbols('^ixic', auto.assign = FALSE, from = '2008-1-1', to =
"2008-12-31")[,6]
#log returns of AAPL and market
logapple08<- na.omit(ROC(apple08)*100)
logrm08<-na.omit(ROC(rm08)*100)
#OLS for beta estimation
beta_AAPL_08<-summary(lm(logapple08~logrm08))$coefficients[2,1]
好的,我得到了 08 年 AAPL beta 的系数估计值。现在,我想在 beta 及其标准错误上运行 bootstrap 1000 次,样本量与原始样本量相同。
set.seed(666)
Boot_times=1000
mean.boot=rep(0,Boot_times)
for(i in 1:Boot_times){
# nonparametric bootstrap
data.boot=#Here I am stucked, I dunno what to put here
boot[i]=data.boot
}
我考虑过使用
summary(lm(sample(logapple08, size=length(logapple08), replace =
TRUE)~sample(logrm08, size=length(logrm08), replace =
TRUE)))$coefficients[2,1]
但是我猜它是不正确的。我确实对回报进行了重新采样,但是我假设它在不考虑回报日期的情况下对数据进行了重新采样,例如,它将 AAPL 从 2008 年 1 月 25 日的回报回归到 2008 年 2 月 25 日的市场回报。
我们将不胜感激,谢谢!
亚当
【问题讨论】:
-
我想如果你在
cross val上问这个问题,你会有更多机会得到一个体面的答案
标签: r regression lm statistics-bootstrap