|大家好 我正在向你寻求帮助,因为我被引导了......
任务是: 使用非参数引导程序计算CAPM beta估计值的bootstrap标准错误,该错误基于1000个引导程序复制和自举样本大小等于原始样本的大小。
如果我理解正确的话,我应该运行我的回归模型1000次,以估计β及其标准误差的不同估计值。但是,我无法将我的想法变成实际的R代码。
我的代码:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.970722%2C-88.420715&result_type=locality&key=YOUR_API_KEY
好的,我已经获得了' 08的AAPL beta的系数估计值。现在,我想在测试版上运行bootstrap,其标准错误1000次,样本大小与原始版本相同。
#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]
我考虑过使用
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
}
但我猜这不对。我确实重新采样了回报,但是我假设它重新采样数据而不管理回报的日期,即它回归例如AAPL从25/1/08返回市场的回报发生在25 / 2/08。
帮助将不胜感激,谢谢!
亚当
答案 0 :(得分:1)
为了引导用lm
计算的线性回归,你可以按照下面的代码行做一些事情。
library(boot)
# This is the function 'statistic'
boot_lm_coef <- function(data, index){
coef(lm(logapple08 ~ logrm08, data = data[index, ]))[2]
}
df_boot <- data.frame(logapple08, logrm08)
set.seed(666)
Boot_times <- 1000
result <- boot(df_boot, boot_lm_coef, R = Boot_times)
mean(result$t)
#[1] 1.078191
注意:
coef
,而不是summary(lm(.))[2, 1]
这是过度杀伤data.frame
的数据必须为lm
才能生效。答案 1 :(得分:0)
如果您(或其他人)不想手动执行此操作,还可以使用 model_parameters
中的 parameters
函数来获取自举置信区间和 p 值
library(parameters)
mod <- lm(formula = wt ~ mpg, data = mtcars)
model_parameters(mod)
#> Parameter | Coefficient | SE | 95% CI | t(30) | p
#> ------------------------------------------------------------------
#> (Intercept) | 6.05 | 0.31 | [ 5.42, 6.68] | 19.59 | < .001
#> mpg | -0.14 | 0.01 | [-0.17, -0.11] | -9.56 | < .001
model_parameters(mod, bootstrap = TRUE, iterations = 100)
#> Parameter | Coefficient | 95% CI | p
#> --------------------------------------------------
#> (Intercept) | 5.99 | [ 5.36, 6.68] | 0.010
#> mpg | -0.14 | [-0.17, -0.11] | 0.010
由 reprex package (v1.0.0) 于 2021 年 3 月 9 日创建