Этот пример показывает, как моделировать демонстрационные пути от стационарного AR (2) процесс, не задавая преддемонстрационные наблюдения.
Шаг 1. Задайте модель.
Задайте модель AR (2)
где инновационный процесс является Гауссовым с отклонением 0.1.
model = arima('Constant',0.5,'AR',{0.7,0.25},'Variance',.1);
Шаг 2. Сгенерируйте один демонстрационный путь.
Сгенерируйте один демонстрационный путь (с 50 наблюдениями) из заданной модели и графика.
rng('default') Y = simulate(model,50); figure plot(Y) xlim([0,50]) title('Simulated AR(2) Process')
Поскольку преддемонстрационные данные не были заданы, simulate
устанавливает два необходимых преддемонстрационных наблюдения, равные безусловному среднему значению процесса,
Шаг 3. Сгенерируйте много демонстрационных путей.
Сгенерируйте 1 000 демонстрационных путей, каждого с 50 наблюдениями.
rng('default') Y = simulate(model,50,'NumPaths',1000); figure subplot(2,1,1) plot(Y,'Color',[.85,.85,.85]) title('Simulated AR(2) Process') hold on h=plot(mean(Y,2),'k','LineWidth',2); legend(h,'Simulation Mean','Location','NorthWest') hold off subplot(2,1,2) plot(var(Y,0,2),'r','LineWidth',2) title('Process Variance') hold on plot(1:50,.83*ones(50,1),'k--','LineWidth',1.5) legend('Simulation','Theoretical',... 'Location','SouthEast') hold off
Среднее значение симуляции является постоянным в зависимости от времени. Это сопоставимо с определением стационарного процесса. Отклонение процесса не является постоянным в зависимости от времени, как бы то ни было. Существуют переходные эффекты в начале симуляции из-за отсутствия преддемонстрационных данных.
Моделируемое отклонение приближается к теоретическому отклонению,
приблизительно 50-м наблюдением.
Шаг 4. Сверхдискретизируйте процесс.
Чтобы уменьшать переходные эффекты, одна опция должна сверхдискретизировать процесс. Например, чтобы выбрать 50 наблюдений, можно сгенерировать пути больше чем с 50 наблюдениями и отбросить все кроме последних 50 наблюдений как выжигание дефектов. Здесь, моделируйте пути длины 150 и отбросьте первые 100 наблюдений.
rng('default') Y = simulate(model,150,'NumPaths',1000); Y = Y(101:end,:); figure subplot(2,1,1) plot(Y,'Color',[.85,.85,.85]) title('Simulated AR(2) Process') hold on h=plot(mean(Y,2),'k','LineWidth',2); legend(h,'Simulation Mean','Location','NorthWest') hold off subplot(2,1,2) plot(var(Y,0,2),'r','LineWidth',2) xlim([0,50]) title('Process Variance') hold on plot(1:50,.83*ones(50,1),'k--','LineWidth',1.5) legend('Simulation','Theoretical',... 'Location','SouthEast') hold off
Реализация теперь похожа, чертит от стационарного стохастического процесса. Отклонение симуляции колеблется (из-за ошибки Монте-Карло) вокруг теоретического отклонения.
Этот пример показывает, как моделировать демонстрационные пути от стационарного MA (12) процесс, не задавая преддемонстрационные наблюдения.
Шаг 1. Задайте модель.
Задайте модель MA (12)
где инновационное распределение является Гауссовым с отклонением 0.2.
model = arima('Constant',0.5,'MA',{0.8,0.2},... 'MALags',[1,12],'Variance',0.2);
Шаг 2. Сгенерируйте демонстрационные пути.
Сгенерируйте 200 демонстрационных путей, каждого с 60 наблюдениями.
rng('default') Y = simulate(model,60,'NumPaths',200); figure plot(Y,'Color',[.85,.85,.85]) hold on h = plot(mean(Y,2),'k','LineWidth',2)
h = Line with properties: Color: [0 0 0] LineStyle: '-' LineWidth: 2 Marker: 'none' MarkerSize: 6 MarkerFaceColor: 'none' XData: [1x60 double] YData: [1x60 double] ZData: [1x0 double] Show all properties
legend(h,'Simulation Mean','Location','NorthWest') title('MA(12) Process') hold off
Для процесса MA постоянный термин является безусловным средним значением. Среднее значение симуляции - приблизительно 0,5, как ожидалось.
Шаг 3. Постройте отклонение симуляции.
Безусловное отклонение для модели
Поскольку модель является стационарной, безусловное отклонение должно быть постоянным через все случаи. Постройте отклонение симуляции и сравните его с теоретическим отклонением.
figure plot(var(Y,0,2),'Color',[.75,.75,.75],'LineWidth',1.5) xlim([0,60]) title('Unconditional Variance') hold on plot(1:60,.336*ones(60,1),'k--','LineWidth',2) legend('Simulation','Theoretical',... 'Location','SouthEast') hold off
Кажется, существует короткая электротермотренировка в начале симуляции. В это время отклонение симуляции ниже, чем ожидалось. Впоследствии, отклонение симуляции колеблется вокруг теоретического отклонения.
Шаг 4. Сгенерируйте более демонстрационные пути.
Моделируйте 10 000 путей из модели, каждого с длиной 1000. Посмотрите на отклонение симуляции.
rng('default') YM = simulate(model,1000,'NumPaths',10000); figure plot(var(YM,0,2),'Color',[.75,.75,.75],'LineWidth',1.5) ylim([0.3,0.36]) title('Unconditional Variance') hold on plot(1:1000,.336*ones(1000,1),'k--','LineWidth',2) legend('Simulation','Theoretical',... 'Location','SouthEast') hold off
Ошибка Монте-Карло уменьшается, когда больше реализации сгенерировано. В отклонении симуляции существует намного меньше изменчивости, которое плотно колеблется вокруг теоретического отклонения.