滚动回归的回归模型的系数提取问题

时间:2019-10-13 07:42:36

标签: r

我有两个数据帧。一个数据帧具有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])

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

一点点。您的代码多次运行同一组模型。每当代码获取一组系数时,它就会再次运行整个模型。我认为您可能只需要运行一次,以后再从这些模型中提取系数即可。

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],...