Симулируйте стационарные процессы

Симулируйте процесс AR

В этом примере показано, как симулировать демонстрационные пути от стационарного AR (2) процесс, не задавая преддемонстрационные наблюдения.

Создайте модель

Задайте модель AR (2)

yt=0.5+0.7yt-1+0.25yt-2+εt,

где инновационный процесс является Гауссовым с отклонением 0.1.

Mdl = arima('Constant',0.5,'AR',{0.7 0.25},'Variance',.1);

Сгенерируйте один демонстрационный путь

Сгенерируйте один демонстрационный путь (с 50 наблюдениями) из заданной модели и графика.

rng(5)
Y = simulate(Mdl,50);

figure
plot(Y)
xlim([0,50])
title('Simulated AR(2) Process')

Figure contains an axes object. The axes object with title Simulated AR(2) Process contains an object of type line.

Поскольку преддемонстрационные данные не были заданы, simulate устанавливает два необходимых преддемонстрационных наблюдения, равные безусловному среднему значению процесса

μ=c(1-ϕ1-ϕ2).

Безусловное отклонение процесса

σ2=(1-ϕ2)(1+ϕ2)σε2(1-ϕ2)2-ϕ12.

Вычислите безусловное среднее значение и отклонение процесса.

c = Mdl.Constant;
phi = Mdl.AR;
sigmaEps2 = Mdl.Variance;
mu = c/(1-phi{1}-phi{2})
mu = 10.0000
sigma2 = (1-phi{2})/(1+phi{2})*sigmaEps2/((1-phi{2})^2 - phi{1}^2)
sigma2 = 0.8276

Сгенерируйте много демонстрационных путей

Сгенерируйте 1 000 демонстрационных путей, каждого с 50 наблюдениями.

Y = simulate(Mdl,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,sigma2*ones(50,1),'k--','LineWidth',1.5)
legend('Simulation','Theoretical',...
       'Location','SouthEast')
hold off

Figure contains 2 axes objects. Axes object 1 with title Simulated AR(2) Process contains 1001 objects of type line. This object represents Simulation Mean. Axes object 2 with title Process Variance contains 2 objects of type line. These objects represent Simulation, Theoretical.

Среднее значение симуляции является постоянным в зависимости от времени. Это сопоставимо с определением стационарного процесса. Отклонение процесса не является постоянным в зависимости от времени, как бы то ни было. Существуют переходные эффекты в начале симуляции из-за отсутствия преддемонстрационных данных.

Вокруг наблюдения 50, симулированное отклонение приближается к теоретическому отклонению.

Сверхдискретизируйте, чтобы уменьшать переходные эффекты

Чтобы уменьшать переходные эффекты, одна опция должна сверхдискретизировать процесс. Например, чтобы произвести 50 наблюдений, можно сгенерировать пути больше чем с 50 наблюдениями и отбросить все кроме последних 50 наблюдений как выжигание дефектов. Здесь, симулируйте пути длины 150 и отбросьте первые 100 наблюдений.

Y = simulate(Mdl,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,sigma2*ones(50,1),'k--','LineWidth',1.5)
legend('Simulation','Theoretical',...
       'Location','SouthEast')
hold off

Figure contains 2 axes objects. Axes object 1 with title Simulated AR(2) Process contains 1001 objects of type line. This object represents Simulation Mean. Axes object 2 with title Process Variance contains 2 objects of type line. These objects represent Simulation, Theoretical.

Реализация теперь похожа, чертит от стационарного стохастического процесса. Отклонение симуляции колеблется (из-за ошибки Монте-Карло) вокруг теоретического отклонения.

Симулируйте процесс MA

В этом примере показано, как симулировать демонстрационные пути от стационарного MA (12) процесс, не задавая преддемонстрационные наблюдения.

Создайте модель

Задайте модель MA (12)

yt=0.5+εt+0.8εt-1+0.2εt-12,

где инновационное распределение является Гауссовым с отклонением 0.2.

Mdl = arima('Constant',0.5,'MA',{0.8,0.2},...
    'MALags',[1,12],'Variance',0.2);

Сгенерируйте демонстрационные пути

Сгенерируйте 200 демонстрационных путей, каждого с 60 наблюдениями.

rng(5)
Y = simulate(Mdl,60,'NumPaths',200);

figure
plot(Y,'Color',[.85,.85,.85])
hold on
h = plot(mean(Y,2),'k','LineWidth',2);
legend(h,'Simulation Mean','Location','NorthWest')
title('MA(12) Process')
hold off

Figure contains an axes object. The axes object with title MA(12) Process contains 201 objects of type line. This object represents Simulation Mean.

Для процесса MA постоянный термин является безусловным средним значением. Среднее значение симуляции приблизительно c = 0.5.

Постройте отклонение симуляции

Безусловное отклонение процесса

σ2=(1+θ12+θ122)σε2.

Вычислите безусловное отклонение.

theta = cell2mat(Mdl.MA);
sigmaEps2 = Mdl.Variance;
sigma2 = (1+sum(theta.^2))*sigmaEps2
sigma2 = 0.3360

Поскольку модель является стационарной, безусловное отклонение должно быть постоянным через все случаи. Постройте отклонение симуляции и сравните его с теоретическим отклонением.

figure
plot(var(Y,0,2),'Color',[.75,.75,.75],'LineWidth',1.5)
xlim([0,60])
title('Unconditional Variance')
hold on
plot(1:60,sigma2*ones(60,1),'k--','LineWidth',2)
legend('Simulation','Theoretical',...
       'Location','SouthEast')
hold off

Figure contains an axes object. The axes object with title Unconditional Variance contains 2 objects of type line. These objects represent Simulation, Theoretical.

Кажется, существует короткая электротермотренировка в начале симуляции. В это время отклонение симуляции ниже, чем ожидалось. Впоследствии, отклонение симуляции колеблется вокруг теоретического отклонения.

Сгенерируйте много демонстрационных путей

Симулируйте 10 000 путей из модели, каждого с длиной 1000. Постройте отклонение симуляции.

YM = simulate(Mdl,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,sigma2*ones(1000,1),'k--','LineWidth',2)
legend('Simulation','Theoretical',...
       'Location','SouthEast')
hold off

Figure contains an axes object. The axes object with title Unconditional Variance contains 2 objects of type line. These objects represent Simulation, Theoretical.

Ошибка Монте-Карло уменьшается, когда больше реализации сгенерировано. В отклонении симуляции существует намного меньше изменчивости, которое плотно колеблется вокруг теоретического отклонения.

Смотрите также

|

Связанные примеры

Больше о