【发布时间】:2018-06-23 00:19:49
【问题描述】:
首先感谢您的支持,我只是一个使用 R 的初学者,我的许多问题已经可以在这个论坛上得到解答。但是,我一直卡在论坛上找不到答案的地方。
我有一个数据面板,其中包含 770 只股票在五年内的月度回报以及 MSCI 世界指数的月度回报数据。为了估计市场感知的企业异质风险,我想使用一个简单的市场模型,并以剩余波动率作为企业风险的代理。
因此,我使用以下代码对单个股票与 MSCI 进行 770 次回归:
returns <- read.csv("/Returns.csv", header=TRUE, sep=";", dec=",")
MSCI <- returns[,772]
for (j in 2:771)){
assign(paste("a", j, sep = ""),lm(returns[,j]~MSCI))
}
这给了我 770 个名为 a2、a3、...、a771 的回归输出。
我知道我得到了单个回归的剩余波动率
sd(residuals(a2))
但是,我正在努力编写一个循环或导致同时输出所有 770 个残余波动率的东西,这充其量也可以用于导出到 excel 或类似文件。
非常感谢您的帮助!
【问题讨论】:
-
我建议不要将其分配给全局环境来创建对象。而是使用列表。
lapply(2:771, function(x) {x1 <- lm(returns[,paste0("a", x)] ~ MSCI); sd(residuals(x1))})
标签: r excel linear-regression