Page 321 - 数学建模算法与应用
P. 321

第十一章  时间序列分析研究


               ARIMA(1,1,1) 模型,并估计其参数,
                   mdl = arima(1, 1, 1);

                   estMdl = estimate(mdl, y);
                   其中,y 是时间序列数据。

                   二、模型诊断

                   模型诊断是指在模型估计完成后,检查模型的有效性和适用性。Matlab 提

               供了多种工具来帮助进行模型诊断,如 infer 函数可以用来计算模型的残差,
               residualplot 函数可以绘制残差图来检查残差是否符合预期的模式。

                   三、预测


                   一旦模型通过了诊断,下一步就是利用该模型对未来进行预测。Matlab 提供
               了 forecast 函数来生成未来的预测值。通过输入已有的模型和历史数据,forecast
               函数能够预测未来一段时间内的数据点。例如,预测未来 10 个时间点的数据,
               可以使用如下命令:

                   [YF, YMSE] = forecast(estMdl, 10, y);
                   这里,YF 表示预测值,YMSE 表示预测误差的均方根。
                   考虑一个实际的例子,有一组股票价格的历史数据,数据记录了每天收盘价
               的变化情况。目标是利用这些数据来构建一个时间序列模型,并尝试预测未来股

               价的变动。
                   % 假设数据已经加载到名为 price 的向量中
                   % 去除缺失值
                   price = fillmissing(price, ‘previous’);

                   % 数据标准化
                   price = zscore(price);
                   % 假设我们决定使用 ARIMA(1,1,1) 模型

                   mdl = arima(‘ARLags’,1,’D’,1,’MALags’,1);
                   % 使用数据拟合模型
                   estMdl = estimate(mdl, price);
                   % 生成残差



                                                                                      311
   316   317   318   319   320   321   322   323   324   325   326