所以我使用arima(3,0,0)模型来预测Matlab中的值。我有一个初始值的向量,用于预测,但我不断收到错误。 这是我的代码:
model1=arima(3,0,0);
[EstMdl1,~,logL1]=estimate(model1,qtrdatachangelog2000(:,1));
Ymdl1pred=zeros(length(qtrdatachangelogafter2000),1);
for i=1:length(qtrdatachangelogafter2000)-2;
[Ymdl1pred(i)]=forecast(EstMdl1,1,'Y0',qtrdatachangelogafter2000(i+2,1));
end;
我得到的错误: 使用internal.econ.LagIndexableTimeSeries.checkPresampleData时出错(第653行) 预采样数组'Y0'中的行数必须至少为3。
arima / forecast中的错误(第498行) Y0 = internal.econ.LagIndexableTimeSeries.checkPresampleData(零(maxPQ,numPaths), 'Y0',Y0,OBJ.P);
我假设这是因为AR(3)有3个参数,因此在它可以启动之前需要至少3行数据,这就是为什么在我的for循环中我使用i + 2但是它继续给出错误。请帮忙。
答案 0 :(得分:0)
使用i+2
您不会添加3行,而您只使用1行。您需要指定开始和结束索引:i:i+2
。您可以使用以下代码:
[Ymdl1pred(i)]=forecast(EstMdl1,1,'Y0',qtrdatachangelogafter2000(i:i+2,1));