我是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]
}
}
}