错误:for循环-替换长度为零

时间:2018-07-16 10:48:29

标签: r

我是R的新手,正在尝试使用它进行有关因子分析的课程。

我有两个数据集FundReturn(120行,14列)和Factors(120行,30列),我想对所有可能的因子和基金对进行单因子回归,从前60个开始观察。使用估计的参数,我想使用因子的第61个值来计算第61个基金收益的预测值。然后将估计窗口扩大一个观察值,并使用更新后的样本估计新参数,然后计算第62笔资金回报的预测值,依此类推。总共将进行60个预测,并存储在Predictions = array(1,dim = c(60,30,14))中,因此我可以将它们与实现的值进行比较。

以下是我使用并产生此错误的代码: 预测误差[p,fa,fu] <-coeff [1,p,fa,fu] + coeff [2,p,fa,:   替换的长度为零

有人可以发现问题吗?非常感谢您的帮助。

Predictions=array(1,dim=c(60,30,14))

coeff=array(1,dim=c(3,60,30,14))

v1<- 1:30
v2<- 1:60
v3<- 1:14
for(fu in v3){
  for (fa in v1){ 
    for (p in v2){
      y1=FundReturn[1:(59+p),fu]
      x1=Factors[1:(59+p),fa]
      Model<-lm(y1 ~ x1 + lag(y1))
      coeff[1:3,p,fa,fu]=Model[["coefficients"]]
      Predictions[p,fa,fu]= coeff[1,p,fa,fu]+coeff[2,p,fa,fu]*Factors[60+p,fa]+coeff[3,p,fa,fu]*FundReturn[59+p,fu]
    }
  } 
}

0 个答案:

没有答案