Симулируйте модели регрессии с ошибками ARMA

Симулируйте ошибочную модель AR

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

Задайте модель регрессии с AR (2) ошибки:

yt=2+Xt[-21.5]+utut=0.75ut-1-0.5ut-2+εt,

где εt является Гауссовым со средним значением 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}')

Figure contains an axes object. The axes object with title blank S i m u l a t e d blank R e s p o n s e blank S e r i e s contains an object of type line.

simulate требует P = 2 преддемонстрационных безусловных воздействия (ut) инициализировать ошибочный ряд. Без них, как в этом случае, 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}')

Figure contains an axes object. The axes object with title blank S i m u l a t e d blank R e s p o n s e blank S e r i e s blank U s i n g blank F i l t e r e d blank I n n o v a t i o n s contains an object of type line.

Графики предполагают, что симулированные отклики и ответы, сгенерированные от отфильтрованных инноваций, эквивалентны.

Симулируйте 1 000 путей к ответу от 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 contains an axes object. The axes object with title blank 1 0 0 0 blank S i m u l a t e d blank R e s p o n s e blank P a t h s contains 1001 objects of type line. These objects represent Simulated Path, Mean.

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

Figure contains an axes object. The axes object with title blank U n c o n d i t i o n a l blank D i s t u r b a n c e blank V a r i a n c e contains 2 objects of type line. These objects represent Simulation Variance, Theoretical Variance.

Пути к симулированному отклику следуют за своим теоретическим средним значением, c+Xβ, который не является постоянным в зависимости от времени (и может выглядеть неустановившимся).

Отклонение процесса не является постоянным, но выравнивается в теоретическом отклонении 10-м периодом. Теоретическое отклонение AR (2) ошибочная модель

(1-a2)σε2(1+a2)[(1-a2)2-a12]=(1+0.5)(1-0.5)[(1+0.5)2-0.752]=1.78

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

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 contains an axes object. The axes object with title blank 1 0 0 0 blank S i m u l a t e d blank R e s p o n s e blank P a t h s blank f o r blank A n a l y s i s contains 1001 objects of type line. These objects represent Simulated Path, Mean.

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

Figure contains an axes object. The axes object with title blank C o n v e r g e d blank U n c o n d i t i o n a l blank D i s t u r b a n c e blank V a r i a n c e contains 2 objects of type line. These objects represent Simulation Variance, Theoretical Variance.

Безусловные отклонения симуляции воздействия колеблются вокруг теоретического отклонения из-за Монте-Карло, производящего ошибку. Следует иметь в виду, что исключение выборки выжигания дефектов от анализа уменьшает эффективный объем выборки.

Симулируйте ошибочную модель MA

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

Задайте модель регрессии с MA (8) ошибки:

yt=2+Xt[-21.5]+utut=εt+0.4εt-1-0.3εt-4+0.2εt-8,

где εt является Гауссовым со средним значением 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}')

Figure contains an axes object. The axes object with title blank S i m u l a t e d blank R e s p o n s e blank S e r i e s contains an object of type line.

simulate требует Q = 8 преддемонстрационные инновации (εt) инициализировать ошибочный ряд. Без них, как в этом случае, 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}')

Figure contains an axes object. The axes object with title blank S i m u l a t e d blank R e s p o n s e blank S e r i e s blank U s i n g blank F i l t e r e d blank I n n o v a t i o n s contains an object of type line.

Графики предполагают, что симулированные отклики и ответы, сгенерированные от отфильтрованных инноваций, эквивалентны.

Симулируйте 1 000 путей к ответу от 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 contains an axes object. The axes object with title blank 1 0 0 0 blank S i m u l a t e d blank R e s p o n s e blank P a t h s contains 1001 objects of type line. These objects represent Simulated Path, Mean.

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

Figure contains an axes object. The axes object with title blank U n c o n d i t i o n a l blank D i s t u r b a n c e blank V a r i a n c e contains 2 objects of type line. These objects represent Simulation Variance, Theoretical Variance.

Симулированные пути следуют за своим теоретическим средним значением, c+Xβ, который не является постоянным в зависимости от времени (и может выглядеть неустановившимся).

Отклонение процесса не является постоянным, но выравнивается в теоретическом отклонении 15-м периодом. Теоретическое отклонение MA (8) ошибочная модель

(1+b12+b42+b82)σε2=(1+0.42+(-0.3)2+0.22)0.5=0.645.

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

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 contains an axes object. The axes object with title blank 1 0 0 0 blank S i m u l a t e d blank R e s p o n s e blank P a t h s blank f o r blank A n a l y s i s contains 1001 objects of type line. These objects represent Simulated Path, Mean.

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

Figure contains an axes object. The axes object with title blank C o n v e r g e d blank U n c o n d i t i o n a l blank D i s t u r b a n c e blank V a r i a n c e contains 2 objects of type line. These objects represent Simulation Variance, Theoretical Variance.

Безусловные отклонения симуляции воздействия колеблются вокруг теоретического отклонения из-за Монте-Карло, производящего ошибку. Следует иметь в виду, что исключение выборки выжигания дефектов от анализа уменьшает эффективный объем выборки.

Симулируйте ошибочную модель ARMA

В этом примере показано, как симулировать ответы из модели регрессии с ошибками ARMA, не задавая предварительную выборку.

Задайте модель регрессии с ARMA (2,1) ошибки:

yt=2+Xt[-21.5]+utut=0.9ut-1-0.1ut-2+εt+0.5εt-1,

где εt распределяется с 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}')

Figure contains an axes object. The axes object with title blank S i m u l a t e d blank R e s p o n s e blank S e r i e s contains an object of type line.

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}')

Figure contains an axes object. The axes object with title blank S i m u l a t e d blank R e s p o n s e blank S e r i e s blank U s i n g blank F i l t e r e d blank I n n o v a t i o n s contains an object of type line.

Графики предполагают, что симулированные отклики и ответы, сгенерированные от отфильтрованных инноваций, эквивалентны.

Симулируйте 1 000 путей к ответу от 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 contains an axes object. The axes object with title blank 1 0 0 0 blank S i m u l a t e d blank R e s p o n s e blank P a t h s contains 1001 objects of type line. These objects represent Simulated Path, Mean.

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

Figure contains an axes object. The axes object with title blank U n c o n d i t i o n a l blank D i s t u r b a n c e blank V a r i a n c e contains 2 objects of type line. These objects represent Simulation Variance, Theoretical Variance.

Симулированные пути следуют за своим теоретическим средним значением, c+Xβ, который не является постоянным в зависимости от времени (и может выглядеть неустановившимся).

Отклонение процесса не является постоянным, но выравнивается в теоретическом отклонении 10-м периодом. Теоретическое отклонение ARMA (2,1) ошибочная модель:

σε2[a1b1(1+a2)+(1-a2)(1+a1b1+b12)](1+a2)2[(1-a2)2-a12]=[0.9(0.5)(1-0.1)+(1+0.1)(1+0.9(0.5)+0.52)](1-0.1)2[(1+0.1)2-0.92]=6.32.

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

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 contains an axes object. The axes object with title blank 1 0 0 0 blank S i m u l a t e d blank R e s p o n s e blank P a t h s blank f o r blank A n a l y s i s contains 1001 objects of type line. These objects represent Simulated Path, Mean.

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

Figure contains an axes object. The axes object with title blank C o n v e r g e d blank U n c o n d i t i o n a l blank D i s t u r b a n c e blank V a r i a n c e contains 2 objects of type line. These objects represent Simulation Variance, Theoretical Variance.

Безусловные отклонения симуляции воздействия колеблются вокруг теоретического отклонения из-за Монте-Карло, производящего ошибку. Следует иметь в виду, что исключение выборки выжигания дефектов от анализа уменьшает эффективный объем выборки.