【问题标题】:Problem in extracting coefficients of regression models of rolling regression滚动回归回归模型系数提取问题
【发布时间】:2019-10-13 07:42:36
【问题描述】:

我有两个数据框。一个数据框有 427 个因变量,而另一个数据框有 3 个自变量。两组变量都有 204 个观察值。我想同时对所有因变量回归这三个自变量。我正在使用 18 个月的滚动窗口。我正在使用 roll_regres.fit 函数。为了获得拦截,我将一个变量与自变量中的一系列 1 组合在一起。但是当我运行这些模型时。我没有得到任何结果。如果没有添加 1 的运行,我会得到结果,但不会得到拦截结果。数据按要求采用矩阵形式。

x<-cbind(1,bse_fama_mat[,1:3])
ys<-bse_fama_mat[,-1:-3,drop=FALSE]
## Extracting Regression coefficients
model_intercept<-apply(ys,2,function(y) roll_regres.fit(x=x,y=y,width = 18)$coefs[,1])
model_smb<-apply(ys,2,function(y) roll_regres.fit(x=x,y=y,width = 18)$coefs[,2])
model_hml<-apply(ys,2,function(y) roll_regres.fit(x=x,y=y,width = 18)$coefs[,3])
model_rm<-apply(ys,2,function(y) roll_regres.fit(x=x,y=y,width = 18)$coefs[,4])

【问题讨论】:

    标签: r


    【解决方案1】:

    我认为您的代码是正确的。尝试检查所有输入文件是否为矩阵形式。对于多重回归顺序很重要。您也可以在库卷中使用 roll_lm()。

    【讨论】:

    • @simar,谢谢。
    【解决方案2】:

    只是一个小问题。您的代码多次运行同一组模型。每次,代码都会选择一组系数,它会再次运行整组模型。我认为您可能只需要运行一次并稍后从这些模型中获取系数。

    x<-cbind(1,bse_fama_mat[,1:3])
    ys<-bse_fama_mat[,-1:-3,drop=FALSE]
    ## Extracting Regression coefficients
    models<-apply(ys,2,function(y) roll_regres.fit(x=x,y=y, width = 18)) 
    

    您的所有系数都将保存在models 列表中。然后,问题是如何通过以下方式获得这些系数: as.matrix(models$yvariable$coefs)[,1], as.matrix(models$yvariable$coefs)[, 2], ...

    【讨论】:

      猜你喜欢
      • 2013-10-14
      • 1970-01-01
      • 2011-09-28
      • 2020-12-22
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多