Переходные эффекты в симуляциях модели regARIMA

Что такое переходные эффекты?

Когда вы используете автоматически сгенерированные данные предварительного образца, вы часто видите переходные эффекты в начале симуляции. Это иногда называют burn-in period. Для процессов стационарной ошибки функция импульсной характеристики со временем разрушается до нуля. Это означает, что начальная точка симуляции ошибки в конечном счете забывается. Чтобы уменьшить переходные эффекты, можно:

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

  • Recycle: используйте первую симуляцию, чтобы сгенерировать предварительные данные для второй симуляции.

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

Рисунок переходных эффектов на регрессию

Переходные эффекты в регрессионных моделях с ошибками ARIMA могут повлиять на оценки коэффициента регрессии. Следующие примеры иллюстрируют поведение линии регрессии в моделях, которые игнорируют переходные эффекты и модели, которые их составляют.

Переходные эффекты распространяются случайным образом

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

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

yt=3+2Xt+ut

ut=0.9ut-2-0.4ut-2+εt+0.8εt-1,

где εt является Гауссовым со средним 0 и отклонением 1. Постройте график функции импульсной характеристики.

Mdl0 = regARIMA('AR',{0.9,-0.4},'MA',{0.8},'Beta',2,...
    'Variance',1,'Intercept',3);

figure
impulse(Mdl0)

Figure contains an axes. The axes with title Impulse Response contains an object of type stem.

Безусловные нарушения порядка, похоже, оседают после 10-й задержки. Поэтому переходные эффекты заканчиваются на 10-й задержке.

Симулируйте одномерный ряд Гауссовых предикторов со средним значением 0 и отклонением 1. Симулируйте 100 путей от Mdl0.

rng(5);         % For reproducibility
T = 50;         % Sample size
numPaths = 100; % Number of paths

X = randn(T,1);                                % Full predictor series
Y = simulate(Mdl0,T,'numPaths',numPaths,'X',X); % Full response series

endTrans = 10;
truncX = X((endTrans+1):end);   % Predictor without transient effects    
truncY = Y((endTrans+1):end,:); % Response without transient effects

Подгонка модели к каждому пути симулированного отклика отдельно для полного и усеченного ряда.

Mdl = regARIMA(2,0,1); % Empty model for estimation
beta1 = zeros(2,numPaths);
beta2 = beta1;

for i = 1:numPaths
    EstMdl1 = estimate(Mdl,Y(:,i),'X',X,'display','off');
    EstMdl2 = estimate(Mdl,truncY(:,i),'X',truncX,'display','off');
    beta1(:,i) = [EstMdl1.Intercept; EstMdl1.Beta];
    beta2(:,i) = [EstMdl2.Intercept; EstMdl2.Beta];
end

beta1 является 2-байт- numPaths матрица, содержащая предполагаемые точки пересечения и склоны для каждого моделируемого набора данных. beta2 является 2-байт- numPaths матрица, содержащая предполагаемые точки пересечения и склоны для усеченных моделируемых наборов данных.

Сравните моделируемые линии регрессии между полным и усеченным рядом. Для одного из путей постройте график моделируемых данных и соответствующих им регрессионых линий.

betaBar1 = mean(beta1,2);
betaBar2 = mean(beta2,2);
displayresults(betaBar1,betaBar2) % See Supporting Functions section
Transient Effects  | Sim. Mean of Intercept    | Sim. Mean of Slope
===================================================================
Include            | 3.08619                   | 2.00098
Without            | 3.16408                   | 1.99455
figure
plot(X,Y(:,1),'.')
hold on
plot(X(1:endTrans),Y(1:endTrans),'ro')
plot([min(X) max(X)],beta1(1,1) + beta1(2,1)*[min(X) max(X)],'b')
plot([min(truncX) max(truncX)],...
    beta2(1,1) + beta2(2,1)*[min(truncX) max(truncX)],'r')
legend('Data','Truncated Data','With Transient Effects',...
    'Without Transient Effects','Location','NorthWest')
xlabel('x')
ylabel('y')
text(0,-3,sprintf('\\beta_0 = %0.4g',beta1(1,1)),'Color',[0,0,1])
text(0,-4,sprintf('\\beta_0 = %0.4g',beta2(1,1)),'Color',[1,0,0])
text(2,-3,sprintf('\\beta_1 = %0.4g',beta1(2,1)),'Color',[0,0,1])
text(2,-4,sprintf('\\beta_1 = %0.4g',beta2(2,1)),'Color',[1,0,0])
hold off

Figure contains an axes. The axes contains 8 objects of type line, text. These objects represent Data, Truncated Data, With Transient Effects, Without Transient Effects.

Таблица в Командном окне отображает средние значения симуляции точки пересечения и наклона регрессионой модели. Результаты предполагают, что линия регрессии, соответствующая анализу, включая полный набор данных, параллельна линии регрессии, соответствующей усеченному набору данных. Другими словами, на склон в основном не влияет учет переходных эффектов, но точка пересечения незначительно затронута.

Вспомогательные функции

function displayresults(b1,b2)
fprintf('Transient Effects  | Sim. Mean of Intercept    | Sim. Mean of Slope\n')
fprintf('===================================================================\n')
fprintf('Include            | %0.6g                   | %0.6g\n',b1(1),b1(2))
fprintf('Without            | %0.6g                   | %0.6g\n',b2(1),b2(2))
end

Переходные эффекты начинают серию

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

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

yt=3+2Xt+ut

ut=0.9ut-2-0.4ut-2+εt+0.8εt-1,

где εt является Гауссовым со средним 0 и отклонением 1. Постройте график функции импульсной характеристики.

Mdl0 = regARIMA('AR',{0.9,-0.4},'MA',{0.8},'Beta',2,...
    'Variance',1,'Intercept',3);

figure
impulse(Mdl0)

Figure contains an axes. The axes with title Impulse Response contains an object of type stem.

Безусловные нарушения порядка, по-видимому, оседают на 10-м лаге. Поэтому переходные эффекты заканчиваются после 10-й задержки.

Симулируйте одномерный ряд Гауссовых предикторов со средним значением 0 и отклонением 1. Симулируйте 100 путей от Mdl0. Обрезайте наборы данных отклика и предиктора, чтобы удалить переходные эффекты.

rng(5);         % For reproducibility
T = 50;         % Sample size
numPaths = 100; % Number of paths

X = linspace(-3,3,T)' + randn(T,1)*0.1;        % Full predictor series
Y = simulate(Mdl0,T,'numPaths',numPaths,'X',X); % Full response series

endTrans = 10;
truncX = X((endTrans+1):end);   % Predictor without transient effects    
truncY = Y((endTrans+1):end,:); % Response without transient effects

Подгонка модели к каждому пути симулированного отклика отдельно для полного и усеченного ряда.

Mdl = regARIMA(2,0,1); % Empty model for estimation
beta1 = zeros(2,numPaths);
beta2 = beta1;

for i = 1:numPaths 
    EstMdl1 = estimate(Mdl,Y(:,i),'X',X,'display','off');
    EstMdl2 = estimate(Mdl,truncY(:,i),'X',truncX,'display','off');
    beta1(:,i) = [EstMdl1.Intercept; EstMdl1.Beta];
    beta2(:,i) = [EstMdl2.Intercept; EstMdl2.Beta];
end

beta1 является 2-байт- numPaths матрица, содержащая предполагаемые точки пересечения и склоны для каждого моделируемого набора данных. beta2 является 2-байт- numPaths матрица, содержащая предполагаемые точки пересечения и склоны для усеченных моделируемых наборов данных.

Сравните моделируемые линии регрессии между полным и усеченным рядом. Для одного из путей постройте график моделируемых данных и соответствующих им регрессионых линий.

betaBar1 = mean(beta1,2);
betaBar2 = mean(beta2,2);
displayresults(betaBar1,betaBar2) % See Supporting Functions section
Transient Effects  | Sim. Mean of Intercept    | Sim. Mean of Slope
===================================================================
Include            | 3.09312                   | 2.01796
Without            | 3.14734                   | 1.98798
figure
plot(X,Y(:,1),'.')
hold on
plot(X(1:endTrans),Y(1:endTrans),'ro')
plot([min(X) max(X)],beta1(1,1) + beta1(2,1)*[min(X) max(X)],'b')
plot([min(truncX) max(truncX)],...
    beta2(1,1) + beta2(2,1)*[min(truncX) max(truncX)],'r')
xlabel('x')
ylabel('y')
legend('Data','Truncated Data','Full Data Regression',...
    'Truncated Data Regression','Location','NorthWest')
text(0,-3,sprintf('\\beta_0 = %0.4g',beta1(1,1)),'Color',[0,0,1])
text(0,-5,sprintf('\\beta_0 = %0.4g',beta2(1,1)),'Color',[1,0,0])
text(2,-3,sprintf('\\beta_1 = %0.4g',beta1(2,1)),'Color',[0,0,1])
text(2,-5,sprintf('\\beta_1 = %0.4g',beta2(2,1)),'Color',[1,0,0])
hold off

Figure contains an axes. The axes contains 8 objects of type line, text. These objects represent Data, Truncated Data, Full Data Regression, Truncated Data Regression.

Таблица в Командном окне отображает средние значения симуляции точки пересечения и наклона регрессионой модели. Результаты показывают, что в среднем линии регрессии, соответствующие полным данным и усеченным данным, имеют несколько другие точки пересечения и склоны. Другими словами, переходные эффекты немного влияют на оценки регрессии.

График отображает данные и линии регрессии для одного моделируемого пути. Переходные эффекты, по-видимому, влияют на результаты более серьезно.

Вспомогательные функции

function displayresults(b1,b2)
fprintf('Transient Effects  | Sim. Mean of Intercept    | Sim. Mean of Slope\n')
fprintf('===================================================================\n')
fprintf('Include            | %0.6g                   | %0.6g\n',b1(1),b1(2))
fprintf('Without            | %0.6g                   | %0.6g\n',b2(1),b2(2))
end

См. также

|

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

Подробнее о