Моделирование стационарных процессов

Симулируйте процесс 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. The axes with title Simulated AR(2) Process contains an object of type line.

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

μ=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

Сгенерируйте много путей к образцам

Сгенерируйте 1000 путей выборки, каждый с 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. Axes 1 with title Simulated AR(2) Process contains 1001 objects of type line. This object represents Simulation Mean. Axes 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. Axes 1 with title Simulated AR(2) Process contains 1001 objects of type line. This object represents Simulation Mean. Axes 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. The axes 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. The axes 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. The axes with title Unconditional Variance contains 2 objects of type line. These objects represent Simulation, Theoretical.

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

См. также

|

Похожие примеры

Подробнее о