В этом примере показано, как моделировать процессы trend-stationar и difference-stationar. Результаты симуляции иллюстрируют различие между этими двумя нестационарными моделями процесса.
Задайте тренд-стационарный процесс
где инновационный процесс является Гауссовым с отклонением 8. После определения модели моделируйте 50 путей расчета длины 200. Используйте 100 симуляций горения.
t = [1:200]'; trend = 0.5*t; MdlTS = arima('Constant',0,'MA',{1.4,0.8},'Variance',8); rng('default') u = simulate(MdlTS,300,'NumPaths',50); Yt = repmat(trend,1,50) + u(101:300,:); figure plot(Yt,'Color',[.85,.85,.85]) hold on h1 = plot(t,trend,'r','LineWidth',5); xlim([0,200]) title('Trend-Stationary Process') h2 = plot(mean(Yt,2),'k--','LineWidth',2); legend([h1,h2],'Trend','Simulation Mean',... 'Location','NorthWest') hold off
Пути расчета колеблются вокруг теоретической линии тренда с постоянным отклонением. Средняя симуляция близка к истинной линии тренда.
Задайте разностно-стационарную модель
где инновационное распределение является Гауссовым с отклонением 8. После определения модели моделируйте 50 путей расчета длины 200. Сжигание не требуется, потому что все пути расчета должны начинаться с нуля. Это значение по simulate
начальная точка по умолчанию для нестационарных процессов без предварительных образцов данных.
MdlDS = arima('Constant',0.5,'D',1,'MA',{1.4,0.8},... 'Variance',8); Yd = simulate(MdlDS,200,'NumPaths',50); figure plot(Yd,'Color',[.85,.85,.85]) hold on h1=plot(t,trend,'r','LineWidth',5); xlim([0,200]) title('Difference-Stationary Process') h2=plot(mean(Yd,2),'k--','LineWidth',2); legend([h1,h2],'Trend','Simulation Mean',... 'Location','NorthWest') hold off
Симуляция среднего значения близка к линии тренда с уклоном 0,5. Отклонение путей расчета увеличивается с течением времени.
Дифференцированный стационарный процесс является стационарным при соответствующем различии. Возьмите первые различия путей расчета от дифференцированного процесса и постройте график дифференцированного ряда. Одно наблюдение теряется в результате дифференцирования.
diffY = diff(Yd,1,1); figure plot(2:200,diffY,'Color',[.85,.85,.85]) xlim([0,200]) title('Differenced Series') hold on h = plot(2:200,mean(diffY,2),'k--','LineWidth',2); legend(h,'Simulation Mean','Location','NorthWest') hold off
Дифференцированный ряд выглядит стационарным, со средним значением симуляции, колеблющимся около нуля.