如何在R中同时从多个线性回归中获取数据?

时间:2018-06-22 15:45:19

标签: r excel linear-regression

首先,首先感谢您的支持,我只是使用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或类似产品。

您的帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

最好不要在全局环境中创建多个对象。相反,可以在lapply中使用list,然后在list本身中提取成分

out <- lapply(2:771, function(i) {
        x1 <- lm(returns[,i] ~ MSCI)
          sd(residuals(x1))})

输出为list,可以使用vector转换为unlist

unlist(out)