使用MATLAB中的Y0数据错误预测w / AR(3)模型

时间:2014-02-05 06:16:52

标签: matlab

所以我使用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但是它继续给出错误。请帮忙。

1 个答案:

答案 0 :(得分:0)

使用i+2您不会添加3行,而您只使用1行。您需要指定开始和结束索引:i:i+2。您可以使用以下代码:

[Ymdl1pred(i)]=forecast(EstMdl1,1,'Y0',qtrdatachangelogafter2000(i:i+2,1));