【问题标题】:Obtaining residuals from regressions with different sized columns从具有不同大小列的回归中获取残差
【发布时间】:2016-04-12 11:53:53
【问题描述】:

我是 R 和统计的新手。

我有一个包含 277 家公司股票收益的矩阵,该矩阵包含 370 行。由于这些公司的年龄不同,因此列中的观察量存在差异。我还有一个包含 Fama French 因子的矩阵和一个包含虚拟变量的向量。我已经设法创建了一个循环来获取回归的系数,但是我需要检索包含回归残差的矩阵或残差的协方差矩阵,以便我可以执行 GRS 测试。

我目前使用的代码是:

reg <- data.frame(matrix(nrow=370, ncol=277))
for (i in c(1:277)) {
reg[,i] <- dynlm(returns.ts[,i] ~ 1 + Mkt.Rf + SMB + HML)$residuals
}

但是,当我运行此循环时,我得到“替换有 202 行,数据有 370”错误。我假设这是因为列长度不同,因为前两列(属于具有“完整”观察结果的公司)填充在返回矩阵中。

我试过 na.action = na.omit 没有成功。有没有办法用这些回归的残差填充这个矩阵?或者是否有可能获得绕过此步骤的协方差矩阵?我正在使用 R。

【问题讨论】:

    标签: r loops matrix regression


    【解决方案1】:

    使用列表而不是 data.frame 来存储残差。

    reg <- list()
    
    for (i in c(1:277)) {
      reg[[i]] <- dynlm(returns.ts[,i] ~ 1 + Mkt.Rf + SMB + HML)$residuals
    }
    

    您可以使用相同的提取方法访问残差。例如,reg[[1]] 将返回第一组残差。

    【讨论】:

    • 当然,@Patrick Bukowsky。如果这有帮助,您可以选择它作为答案(并且可能添加一个赞成票)。
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2012-03-03
    • 2020-12-25
    • 2021-09-17
    • 2018-04-30
    • 2021-06-05
    相关资源
    最近更新 更多