Beta循环,允许分段时间序列频率

时间:2019-04-09 15:00:58

标签: r loops xts lm

我正在尝试运行LM函数以收集相当大的不同证券收益的xts系列(etfadj3)的全部输出(摘要)。当前,我可以计算一个beta并捕获第一列返回系列的所有回归输出以及随后的每一列(安全性)返回系列-这就是我想要的。但是,我希望能够修改此脚本,以便可以更改回归的频率以查看每月/每季度/每年的结果。有没有办法修改我必须完成的工作?谢谢!!!

storage <- list()
for(i in names(etfadj3)[-1]){
  storage[[i]] <- summary(lm(etfadj3$OPP~get(i), etfadj3)
  )}

# Regression Coefficient Data

coeffs=sapply(storage, FUN=function(item){item$coefficients})
coeffs= as.data.frame(coeffs)
rownames(coeffs) <- c('Intercept_Coeff','ETF_Beta','Intercept_Std_Err','ETF_Beta_Std_Err','Intercept_T-Stat','ETF_Beta_T_Stat',
                      'Intercept_p-value','ETF_Beta_p-value')
# R-Squared

rsq=sapply(storage, FUN=function(item){item$r.squared})
rsq= t(as.data.frame(rsq))
rownames(rsq) <- c('R-Squared')

# Mean squared error

mse=sapply(storage, FUN=function(item){mean(item$residuals^2)})
mse= t(as.data.frame(mse))
rownames(mse) <- c('Mean Squared Error')


storage2 <- rbind(coeffs,rsq,mse)
storage3 <- as.data.frame(t(storage2))

0 个答案:

没有答案