首先,首先感谢你的支持,我只是一个R的初学者,我的许多问题都可以在这个论坛上得到回答。然而,我被困在一个点上,我已经无法在论坛上找到答案。
我有一个数据面板,包含5年期770只股票的月度回报,以及摩根士丹利资本国际世界指数的月度回报数据。为了估计市场感知的特殊企业风险,我想使用一个简单的市场模型,并将剩余波动率作为企业风险的代理。
因此,我用以下代码对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))
您的帮助将不胜感激!
发布于 2018-06-22 23:53:01
最好不要在全局环境中创建多个对象。相反,这可以在list
中使用lapply
来完成,然后提取list
本身中的组件
out <- lapply(2:771, function(i) {
x1 <- lm(returns[,i] ~ MSCI)
sd(residuals(x1))})
输出为list
,可以使用unlist
将其转换为vector
unlist(out)
https://stackoverflow.com/questions/50991500
复制相似问题