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

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

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

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

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

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

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

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

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

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

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

yt=3+2Xt+ut

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

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

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

figure
impulse(Mdl)

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

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

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

X = randn(T,1);                                % Full predictor series
Y = simulate(Mdl,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

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

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

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

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

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

betaBar1 = mean(beta1,2);
betaBar2 = mean(beta2,2);
fprintf('Transient Effects  | Sim. Mean of Intercept    | Sim. Mean of Slope\n')
Transient Effects  | Sim. Mean of Intercept    | Sim. Mean of Slope
fprintf('===================================================================\n')
===================================================================
fprintf('Include            | %0.6g                   | %0.6g\n',betaBar1(1),betaBar1(2))
Include            | 3.08619                   | 2.00098
fprintf('Without            | %0.6g                   | %0.6g\n',betaBar2(1),betaBar2(2))
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

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

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

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

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

yt=3+2Xt+ut

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

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

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

figure
impulse(Mdl)

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

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

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(Mdl,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

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

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

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

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

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

betaBar1 = mean(beta1,2);
betaBar2 = mean(beta2,2);
fprintf('Data      | Sim. Mean of Intercept    | Sim. Mean of Slope\n')
Data      | Sim. Mean of Intercept    | Sim. Mean of Slope
fprintf('===================================================================\n')
===================================================================
fprintf('Full      | %0.6g                   | %0.6g\n',betaBar1(1),betaBar1(2))
Full      | 3.09312                   | 2.01796
fprintf('Truncated | %0.6g                   | %0.6g\n',betaBar2(1),betaBar2(2))
Truncated | 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

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

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

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

|

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте