В этом примере показано, как симулировать пути расчета из регрессионой модели с ошибками AR, не задавая предварительные нарушения порядка.
Задайте регрессионую модель с AR (2) ошибками:
где является Гауссовым со средним 0 и отклонением 1.
Beta = [-2; 1.5]; Intercept = 2; a1 = 0.75; a2 = -0.5; Variance = 1; Mdl = regARIMA('AR',{a1, a2},'Intercept',Intercept,... 'Beta',Beta,'Variance',Variance);
Сгенерируйте два ряда предикторов длины T = 50 путем случайного выбора из стандартного Гауссова распределения.
T = 50;
rng(1); % For reproducibility
X = randn(T,2);
Программа рассматривает предикторы как нестохастические ряды.
Сгенерируйте и постройте график одного пути откликов от Mdl
.
rng(2); ySim = simulate(Mdl,T,'X',X); figure plot(ySim) title('{\bf Simulated Response Series}')
simulate
требует P
= 2 предварительных безусловных нарушения порядка () для инициализации ряда ошибок. Без них, как в данном случае, simulate
устанавливает необходимые предопределительные безусловные нарушения порядка равными 0.
Другой способ - фильтрация ряда случайных инноваций через Mdl
использование filter
.
rng(2); e = randn(T,1); yFilter = filter(Mdl,e,'X',X); figure plot(yFilter) title('{\bf Simulated Response Series Using Filtered Innovations}')
Графики предполагают, что симулированные отклики и отклики, сгенерированные фильтрованными инновациями, эквивалентны.
Симулируйте 1000 путей отклика от Mdl
. Оцените переходные эффекты путем построения графика безусловного нарушения порядка (U
) отклонения по моделируемым путям в каждом периоде.
numPaths = 1000; [Y,~,U] = simulate(Mdl,T,'NumPaths',numPaths,'X',X); figure h1 = plot(Y,'Color',[.85,.85,.85]); title('{\bf 1000 Simulated Response Paths}') hold on h2 = plot(1:T,Intercept+X*Beta,'k--','LineWidth',2); legend([h1(1),h2],'Simulated Path','Mean') hold off
figure h1 = plot(var(U,0,2),'r','LineWidth',2); hold on theoVarFix = ((1-a2)*Variance)/((1+a2)*((1-a2)^2-a1^2)); h2 = plot([1 T],[theoVarFix theoVarFix],'k--','LineWidth',2); title('{\bf Unconditional Disturbance Variance}') legend([h1,h2],'Simulation Variance','Theoretical Variance') hold off
Симулированные отклики следуют их теоретическому среднему значению, , которая не является постоянной с течением времени (и может выглядеть нестационарно).
Отклонение процесса не постоянно, а выравнивается при теоретическом отклонении к 10-му периоду. Теоретическое отклонение модели ошибки AR (2)
Можно уменьшить переходные эффекты путем разбиения моделируемых данных на фрагмент записи и фрагмент для анализа. Не используйте фрагмент burn-in для анализа. Включите достаточно периодов в фрагмент горения, чтобы преодолеть переходные эффекты.
burnIn = 1:10; notBurnIn = burnIn(end)+1:T; Y = Y(notBurnIn,:); X = X(notBurnIn,:); U = U(notBurnIn,:); figure h1 = plot(notBurnIn,Y,'Color',[.85,.85,.85]); hold on h2 = plot(notBurnIn,Intercept+X*Beta,'k--','LineWidth',2); title('{\bf 1000 Simulated Response Paths for Analysis}') legend([h1(1),h2],'Simulated Path','Mean') hold off
figure h1 = plot(notBurnIn,var(U,0,2),'r','LineWidth',2); hold on h2 = plot([notBurnIn(1) notBurnIn(end)],... [theoVarFix theoVarFix],'k--','LineWidth',2); title('{\bf Converged Unconditional Disturbance Variance}') legend([h1,h2],'Simulation Variance','Theoretical Variance') hold off
Симуляция безусловного нарушения порядка отклонений колебаться вокруг теоретического отклонения из-за ошибки дискретизации Монте-Карло. Имейте в виду, что исключение образца ожога из анализа уменьшает эффективный размер выборки.
В этом примере показано, как моделировать ответы из регрессионой модели с ошибками MA, не задавая предварительную выборку.
Задайте регрессионую модель с ошибками MA (8 ):
где является Гауссовым со средним 0 и отклонением 0,5.
Beta = [-2; 1.5]; Intercept = 2; b1 = 0.4; b4 = -0.3; b8 = 0.2; Variance = 0.5; Mdl = regARIMA('MA',{b1, b4, b8},'MALags',[1 4 8],... 'Intercept',Intercept,'Beta',Beta,'Variance',Variance);
Сгенерируйте два ряда предикторов длины T = 100 путем случайного выбора из стандартного Гауссова распределения.
T = 100;
rng(4); % For reproducibility
X = randn(T,2);
Программа рассматривает предикторы как нестохастические ряды.
Сгенерируйте и постройте график одного пути откликов от Mdl
.
rng(5); ySim = simulate(Mdl,T,'X',X); figure plot(ySim) title('{\bf Simulated Response Series}')
simulate
требует Q = 8
предварительный образец инноваций () для инициализации ряда ошибок. Без них, как в данном случае, simulate
устанавливает необходимые предварительные нововведения равными 0.
Кроме того, используйте filter
для фильтрации ряда случайных инноваций через Mdl
.
rng(5); e = randn(T,1); yFilter = filter(Mdl,e,'X',X); figure plot(yFilter) title('{\bf Simulated Response Series Using Filtered Innovations}')
Графики предполагают, что симулированные отклики и отклики, сгенерированные фильтрованными инновациями, эквивалентны.
Симулируйте 1000 путей отклика от Mdl
. Оцените переходные эффекты путем построения графика безусловного нарушения порядка (U
) отклонения по моделируемым путям в каждом периоде.
numPaths = 1000; [Y,~,U] = simulate(Mdl,T,'NumPaths',numPaths,'X',X); figure h1 = plot(Y,'Color',[.85,.85,.85]); title('{\bf 1000 Simulated Response Paths}') hold on h2 = plot(1:T,Intercept+X*Beta,'k--','LineWidth',2); legend([h1(1),h2],'Simulated Path','Mean') hold off
figure h1 = plot(var(U,0,2),'r','LineWidth',2); hold on theoVarFix = (1+b1^2+b4^2+b8^2)*Variance; h2 = plot([1 T],[theoVarFix theoVarFix],'k--','LineWidth',2); title('{\bf Unconditional Disturbance Variance}') legend([h1,h2],'Simulation Variance','Theoretical Variance') hold off
Моделируемые пути следуют своему теоретическому среднему, , которая не является постоянной с течением времени (и может выглядеть нестационарно).
Отклонение процесса не постоянно, а выравнивается в теоретическом отклонении к 15-му периоду. Теоретическое отклонение модели ошибки MA (8)
Можно уменьшить переходные эффекты путем разбиения моделируемых данных на фрагмент записи и фрагмент для анализа. Не используйте фрагмент burn-in для анализа. Включите достаточно периодов в фрагмент горения, чтобы преодолеть переходные эффекты.
burnIn = 1:15; notBurnIn = burnIn(end)+1:T; Y = Y(notBurnIn,:); X = X(notBurnIn,:); U = U(notBurnIn,:); figure h1 = plot(notBurnIn,Y,'Color',[.85,.85,.85]); hold on h2 = plot(notBurnIn,Intercept+X*Beta,'k--','LineWidth',2); title('{\bf 1000 Simulated Response Paths for Analysis}') legend([h1(1),h2],'Simulated Path','Mean') axis tight hold off
figure h1 = plot(notBurnIn,var(U,0,2),'r','LineWidth',2); hold on h2 = plot([notBurnIn(1) notBurnIn(end)],... [theoVarFix theoVarFix],'k--','LineWidth',2); title('{\bf Converged Unconditional Disturbance Variance}') legend([h1,h2],'Simulation Variance','Theoretical Variance') axis tight hold off
Симуляция безусловного нарушения порядка отклонений колебаться вокруг теоретического отклонения из-за ошибки дискретизации Монте-Карло. Имейте в виду, что исключение образца ожога из анализа уменьшает эффективный размер выборки.
В этом примере показано, как моделировать ответы из регрессионой модели с ошибками ARMA, не задавая предварительную выборку.
Задайте регрессионую модель с ошибками ARMA (2,1):
где распределяется с 15 степенями свободы и отклонения 1.
Beta = [-2; 1.5]; Intercept = 2; a1 = 0.9; a2 = -0.1; b1 = 0.5; Variance = 1; Distribution = struct('Name','t','DoF',15); Mdl = regARIMA('AR',{a1, a2},'MA',b1,... 'Distribution',Distribution,'Intercept',Intercept,... 'Beta',Beta,'Variance',Variance);
Сгенерируйте два ряда предикторов длины T = 50 путем случайного выбора из стандартного Гауссова распределения.
T = 50;
rng(6); % For reproducibility
X = randn(T,2);
Программа рассматривает предикторы как нестохастические ряды.
Сгенерируйте и постройте график одного пути откликов от Mdl
.
rng(7); ySim = simulate(Mdl,T,'X',X); figure plot(ySim) title('{\bf Simulated Response Series}')
simulate
требует:
P = 2
предварительная выборка безусловных нарушений порядка для инициализации авторегрессивного компонента ряда ошибок.
Q = 1
предварительный образец инноваций для инициализации компонента скользящего среднего значения ряда ошибок.
Без них, как в данном случае, simulate
устанавливает необходимые ошибки предварительного образца равными 0.
Кроме того, используйте filter
для фильтрации ряда случайных инноваций через Mdl
.
rng(7); e = randn(T,1); yFilter = filter(Mdl,e,'X',X); figure plot(yFilter) title('{\bf Simulated Response Series Using Filtered Innovations}')
Графики предполагают, что симулированные отклики и отклики, сгенерированные фильтрованными инновациями, эквивалентны.
Симулируйте 1000 путей отклика от Mdl
. Оцените переходные эффекты путем построения графика безусловного нарушения порядка (U
) отклонения по моделируемым путям в каждом периоде.
numPaths = 1000; [Y,~,U] = simulate(Mdl,T,'NumPaths',numPaths,'X',X); figure h1 = plot(Y,'Color',[.85,.85,.85]); title('{\bf 1000 Simulated Response Paths}') hold on h2 = plot(1:T,Intercept+X*Beta,'k--','LineWidth',2); legend([h1(1),h2],'Simulated Path','Mean') hold off
figure h1 = plot(var(U,0,2),'r','LineWidth',2); hold on theoVarFix = Variance*(a1*b1*(1+a2)+(1-a2)*(1+a1*b1+b1^2))/... ((1+a2)*((1-a2)^2-a1^2)); h2 = plot([1 T],[theoVarFix theoVarFix],'k--','LineWidth',2); title('{\bf Unconditional Disturbance Variance}') legend([h1,h2],'Simulation Variance','Theoretical Variance',... 'Location','Best') hold off
Моделируемые пути следуют своему теоретическому среднему, , которая не является постоянной с течением времени (и может выглядеть нестационарно).
Отклонение процесса не постоянно, а выравнивается при теоретическом отклонении к 10-му периоду. Теоретическое отклонение модели ошибки ARMA (2,1) является :
Можно уменьшить переходные эффекты путем разбиения моделируемых данных на фрагмент записи и фрагмент для анализа. Не используйте фрагмент burn-in для анализа. Включите достаточно периодов в фрагмент горения, чтобы преодолеть переходные эффекты.
burnIn = 1:10; notBurnIn = burnIn(end)+1:T; Y = Y(notBurnIn,:); X = X(notBurnIn,:); U = U(notBurnIn,:); figure h1 = plot(notBurnIn,Y,'Color',[.85,.85,.85]); hold on h2 = plot(notBurnIn,Intercept+X*Beta,'k--','LineWidth',2); title('{\bf 1000 Simulated Response Paths for Analysis}') legend([h1(1),h2],'Simulated Path','Mean') axis tight hold off
figure h1 = plot(notBurnIn,var(U,0,2),'r','LineWidth',2); hold on h2 = plot([notBurnIn(1) notBurnIn(end)],... [theoVarFix theoVarFix],'k--','LineWidth',2); title('{\bf Converged Unconditional Disturbance Variance}') legend([h1,h2],'Simulation Variance','Theoretical Variance') axis tight hold off
Симуляция безусловного нарушения порядка отклонений колебаться вокруг теоретического отклонения из-за ошибки дискретизации Монте-Карло. Имейте в виду, что исключение образца ожога из анализа уменьшает эффективный размер выборки.