资源简介

通过MATLAB实现对时间序列的预测,主要是对时间序列的平稳化,定阶,最后实现预测

资源截图

代码片段和文件信息

function PreData = ARIMA(SourceDatastep)
  TempData=SourceData;
  TempData=detrend(TempData);%去趋势线
  TrendData=SourceData-TempData;%趋势函数
  %---------------------------------------------------差分,平稳化时间序列---------
  [HPValueTestStatCriticalValue] = dfARDTest(TempData[]0.05‘T‘);
  %difftime=0;
  SaveDiffData=[];
  while ~H
      SaveDiffData=[SaveDiffDataTempData(11)];
      TempData=diff(TempData);%差分,平稳化时间序列
      %difftime=difftime+1;%差分次数
      [HPValueTestStatCriticalValue] = dfARDTest(TempData[]0.05‘T‘);%adf检验,判断时间序列是否平稳化
  end
  %---------------------------------------------------模型定阶或识别--------------
  u = iddata(TempData‘);
  test = [];
  for p = 0:5    %自回归对应PACF给定滞后长度上限p和q,一般取为T/10、ln(T)或T^(1/2)这里取T/10=12
    for q = 0:5    %移动平均对应ACF
        m = armax(u[p q]);        
        AIC = aic(m);  %armax(pq)计算AIC
        test = [test;p q AIC];
    end
  end
  for k = 1:size(test1)
    if test(k3) == min(test(:3)) %选择AIC值最小的模型
        p

评论

共有 条评论