exponenta event banner

моделировать

Класс: regARIMA

Моделирование модели регрессии Монте-Карло с ошибками ARIMA

Синтаксис

[Y,E] = simulate(Mdl,numObs)
[Y,E,U] = simulate(Mdl,numObs)
[Y,E,U] = simulate(Mdl,numObs,Name,Value)

Описание

[Y,E] = simulate(Mdl,numObs) моделирует один путь выборки наблюдений (Y) и инновации (E) из регрессионной модели с ошибками временных рядов ARIMA, Mdl. Программное обеспечение моделируется numObs наблюдения и инновации для каждого пути выборки.

[Y,E,U] = simulate(Mdl,numObs) дополнительно моделирует безусловные нарушения, U.

[Y,E,U] = simulate(Mdl,numObs,Name,Value) моделирует пути образцов с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары.

Входные аргументы

Mdl

Регрессионная модель с ошибками ARIMA, заданная как regARIMA модель, возвращенная regARIMA или estimate.

Свойства Mdl не может содержать NaNs.

numObs

Количество наблюдений (строк), генерируемых для каждого пути Y, E, и U, указано как положительное целое число.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

'E0'

Предварительные инновации, которые имеют среднее значение 0 и обеспечивают начальные значения для модели ошибок ARIMA, указанной как пара, разделенная запятыми, состоящая из 'E0' и вектор или матрицу столбца.

  • Если E0 является вектором столбца, затем он применяется к каждому выводимому пути.

  • Если E0 является матрицей, то она требует, по крайней мере NumPaths столбцы. Если E0 содержит больше столбцов, чем требуется, затем simulate использует первый NumPaths столбцы.

  • E0 должен содержать не менее Mdl.Q строк. Если E0 содержит больше строк, чем требуется, то simulate использует последние предварительные инновации. Последняя строка содержит последние предварительные инновации.

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

'NumPaths'

Количество образцов путей (столбцов) для создания Y, E, и U, указанная как пара, разделенная запятыми, состоящая из 'NumPaths' и положительное целое число.

По умолчанию: 1

'U0'

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

  • Если U0 является вектором столбца, затем он применяется к каждому выводимому пути.

  • Если U0 является матрицей, то она требует, по крайней мере NumPaths столбцы. Если U0 содержит больше столбцов, чем требуется, затем infer использует первый NumPaths столбцы.

  • U0 должен содержать не менее Mdl.P строк. Если U0 содержит больше строк, чем требуется, то simulate использует последние предварительные безусловные нарушения. Последняя строка содержит последнюю предварительную безусловную помеху.

По умолчанию: simulate устанавливает для необходимых предварительных безусловных возмущений значение 0.

'X'

Данные предиктора в регрессионной модели, указанной как пара, разделенная запятыми, состоящая из 'X' и матрица.

Столбцы X представляют собой отдельные синхронизированные временные ряды с последней строкой, содержащей последние наблюдения. X должен иметь по крайней мере numObs строк. Если количество строк X превышает требуемое число, то simulate использует последние наблюдения.

По умолчанию: simulate не использует регрессионный компонент независимо от его присутствия в Mdl.

Примечания

  • NaNs в E0, U0, и X указать отсутствующие значения и simulate удаляет их. Программное обеспечение объединяет наборы данных предварительного отбора (E0 и U0), затем использует удаление на основе списка для удаления любого NaNs. simulate аналогично удаляет NaNs от X. Удаление NaNs в данных уменьшает размер выборки, а также может создавать нерегулярные временные ряды.

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

  • Все предикторы (т.е. столбцы в X) связаны с каждым путем ответа в Y.

Выходные аргументы

Y

Смоделированные ответы, возвращенные как numObsоколо-NumPaths матрица.

E

Смоделированные, в среднем 0 инноваций, возвращенные как numObsоколо-NumPaths матрица.

U

Смоделированные безусловные возмущения, возвращенные в виде numObsоколо-NumPaths матрица.

Примеры

развернуть все

Моделирование путей ответов, инноваций и безусловных возмущений из регрессионной модели с ошибками SARIMA (2,1,1) 12.

Укажите модель:

yt = X [1,5-2] + ut (1-0 .2L-0.1L2) (1-L) (1-0 01L12) (1-L12) ut = (1 + 0 .5L) (1 + 0 .02L12) αt,

где αt следует за t-распределением с 15 степенями свободы.

Distribution = struct('Name','t','DoF',15);
Mdl = regARIMA('AR',{0.2, 0.1},'MA',{0.5},'SAR',0.01,...
    'SARLags',12,'SMA',0.02,'SMALags',12,'D',1,...
    'Seasonality',12,'Beta',[1.5; -2],'Intercept',0,...
    'Variance',0.1,'Distribution',Distribution)
Mdl = 
  regARIMA with properties:

     Description: "Regression with ARIMA(2,1,1) Error Model Seasonally Integrated with Seasonal AR(12) and MA(12) (t Distribution)"
    Distribution: Name = "t", DoF = 15
       Intercept: 0
            Beta: [1.5 -2]
               P: 27
               D: 1
               Q: 13
              AR: {0.2 0.1} at lags [1 2]
             SAR: {0.01} at lag [12]
              MA: {0.5} at lag [1]
             SMA: {0.02} at lag [12]
     Seasonality: 12
        Variance: 0.1

Моделирование и построение графика 500 путей с 25 наблюдениями каждый.

T = 25;
rng(1)
X = randn(T,2);
[Y,E,U] = simulate(Mdl,T,'NumPaths',500,'X',X);

figure
subplot(2,1,1);
plot(Y)
axis tight
title('{\bf Simulated Response Paths}')
subplot(2,2,3);
plot(E)
axis tight
title('{\bf Simulated Innovations Paths}')
subplot(2,2,4);
plot(U)
axis tight
title('{\bf Simulated Unconditional Disturbances Paths}')

Figure contains 3 axes. Axes 1 with title {\bf Simulated Response Paths} contains 500 objects of type line. Axes 2 with title {\bf Simulated Innovations Paths} contains 500 objects of type line. Axes 3 with title {\bf Simulated Unconditional Disturbances Paths} contains 500 objects of type line.

Постройте график 2,5-го, 50-го (медиана) и 97,5-го процентилей моделируемых путей отклика.

lower = prctile(Y,2.5,2);
middle = median(Y,2);
upper = prctile(Y,97.5,2);

figure
plot(1:25,lower,'r:',1:25,middle,'k',...
			1:25,upper,'r:')
title('\bf{95% Percentile Confidence Interval for the Response}')
legend('95% Interval','Median','Location','Best')

Figure contains an axes. The axes with title \bf{95% Percentile Confidence Interval for the Response} contains 3 objects of type line. These objects represent 95% Interval, Median.

Вычислите статистику по второму измерению (по путям), чтобы суммировать пути выборки.

Постройте гистограмму моделируемых путей в момент времени 20.

figure
histogram(Y(20,:),10)
title('Response Distribution at Time 20')

Figure contains an axes. The axes with title Response Distribution at Time 20 contains an object of type histogram.

Регресс стационарного ежеквартального логарифмического ВВП в ИПЦ с использованием регрессионной модели с ошибками ARMA (1,1) и прогнозный логарифмический ВВП с использованием моделирования Монте-Карло .

Загрузите набор макроэкономических данных США и выполните предварительную обработку данных.

load Data_USEconModel;
logGDP = log(DataTable.GDP);
dlogGDP = diff(logGDP);          % For stationarity
dCPI = diff(DataTable.CPIAUCSL); % For stationarity
numObs = length(dlogGDP);
gdp = dlogGDP(1:end-15);   % Estimation sample
cpi = dCPI(1:end-15);
T = length(gdp);        % Effective sample size
frstHzn =  T+1:numObs;  % Forecast horizon
hoCPI = dCPI(frstHzn);  % Holdout sample
dts = dates(2:end);     % Date nummbers

Подгонка регрессионной модели с ошибками ARMA (1,1 ).

Mdl = regARIMA('ARLags',1,'MALags',1);
EstMdl = estimate(Mdl,gdp,'X',cpi);
 
    Regression with ARMA(1,1) Error Model (Gaussian Distribution):
 
                   Value       StandardError    TStatistic      PValue  
                 __________    _____________    __________    __________

    Intercept      0.014793      0.0016289        9.0818      1.0684e-19
    AR{1}           0.57601        0.10009        5.7548      8.6754e-09
    MA{1}          -0.15258        0.11978       -1.2738         0.20272
    Beta(1)       0.0028972      0.0013989         2.071        0.038355
    Variance     9.5734e-05     6.5562e-06        14.602       2.723e-48

Выведите безусловные нарушения.

[~,u0] = infer(EstMdl,gdp,'X',cpi);

Смоделировать 1000 путей с 15 наблюдениями каждый. Используйте выводимые безусловные возмущения в качестве данных предварительного отбора.

rng(1); % For reproducibility
gdpF = simulate(EstMdl,15,'NumPaths',1000,...
   'U0',u0,'X',hoCPI);

Постройте график среднего прогноза моделирования и приблизительные 95% интервалы прогноза.

lower = prctile(gdpF,2.5,2);
upper = prctile(gdpF,97.5,2);
mn = mean(gdpF,2);

figure
plot(dts(end-65:end),dlogGDP(end-65:end),'Color',[.7,.7,.7])
datetick
hold on
h1 = plot(dts(frstHzn),lower,'r:','LineWidth',2);
plot(dts(frstHzn),upper,'r:','LineWidth',2)
h2 = plot(dts(frstHzn),mn,'k','LineWidth',2);
h = gca;
ph = patch([repmat(dts(frstHzn(1)),1,2) repmat(dts(frstHzn(end)),1,2)],...
   [h.YLim fliplr(h.YLim)],...
   [0 0 0 0],'b');
ph.FaceAlpha = 0.1;
legend([h1 h2],{'95% Interval','Simulation Mean'},'Location','NorthWest',...
    'AutoUpdate','off')
axis tight
title('{\bf log GDP Forecast - 15 Quarter Horizon}')
hold off

Figure contains an axes. The axes with title {\bf log GDP Forecast - 15 Quarter Horizon} contains 5 objects of type line, patch. These objects represent 95% Interval, Simulation Mean.

Регрессия корня единицы нестационарного квартального логарифмического ВВП в ИПЦ с использованием регрессионной модели с ошибками ARIMA (1,1,1) с известным перехватом. Прогнозный журнал ВВП с использованием моделирования Монте-Карло .

Загрузите набор макроэкономических данных США и выполните предварительную обработку данных.

load Data_USEconModel;
numObs = length(DataTable.GDP);
logGDP = log(DataTable.GDP(1:end-15));
cpi = DataTable.CPIAUCSL(1:end-15);
T = length(logGDP);
frstHzn =  T+1:numObs;                % Forecast horizon
hoCPI = DataTable.CPIAUCSL(frstHzn);  % Holdout sample

Поместите регрессионную модель с ARIMA (1,1,1). Перехват не идентифицируется в модели с интегрированными ошибками, поэтому исправьте его значение перед оценкой .

intercept = 5.867;
Mdl = regARIMA('ARLags',1,'MALags',1,'D',1,'Intercept',intercept);
EstMdl = estimate(Mdl,logGDP,'X',cpi);
 
    Regression with ARIMA(1,1,1) Error Model (Gaussian Distribution):
 
                   Value       StandardError    TStatistic      PValue   
                 __________    _____________    __________    ___________

    Intercept         5.867              0           Inf                0
    AR{1}           0.92271       0.030978        29.786      5.8728e-195
    MA{1}          -0.38785       0.060354       -6.4263       1.3076e-10
    Beta(1)       0.0039668      0.0016498        2.4044         0.016199
    Variance     0.00010894      7.272e-06        14.981       9.7345e-51

Выведите безусловные нарушения.

[~,u0] = infer(EstMdl,logGDP,'X',cpi);

Смоделировать 1000 путей с 15 наблюдениями каждый. Используйте выводимые безусловные возмущения в качестве данных предварительного отбора.

rng(1); % For reproducibility
GDPF = simulate(EstMdl,15,'NumPaths',1000,...
    'U0',u0,'X',hoCPI);

Постройте график среднего прогноза моделирования и приблизительные 95% интервалы прогноза.

lower = prctile(GDPF,2.5,2);
upper = prctile(GDPF,97.5,2);
mn = mean(GDPF,2);

figure
plot(dates(end-65:end),log(DataTable.GDP(end-65:end)),'Color',...
   [.7,.7,.7])
datetick
hold on
h1 = plot(dates(frstHzn),lower,'r:','LineWidth',2);
plot(dates(frstHzn),upper,'r:','LineWidth',2)
h2 = plot(dates(frstHzn),mn,'k','LineWidth',2);
h = gca;
ph = patch([repmat(dates(frstHzn(1)),1,2) repmat(dates(frstHzn(end)),1,2)],...
    [h.YLim fliplr(h.YLim)],...
    [0 0 0 0],'b');
ph.FaceAlpha = 0.1;
legend([h1 h2],{'95% Interval','Simulation Mean'},'Location','NorthWest',...
    'AutoUpdate','off')
axis tight
title('{\bf log GDP Forecast - 15 Quarter Horizon}')
hold off

Figure contains an axes. The axes with title {\bf log GDP Forecast - 15 Quarter Horizon} contains 5 objects of type line, patch. These objects represent 95% Interval, Simulation Mean.

Безусловные возмущения, ut, являются нестационарными, поэтому ширина интервалов прогноза увеличивается со временем.

Ссылки

[1] Бокс, Г. Э. П., Г. М. Дженкинс и Г. К. Рейнсель. Анализ временных рядов: прогнозирование и контроль. 3-й ред. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 1994.

[2] Дэвидсон, Р. и Дж. Г. Маккиннон. Эконометрическая теория и методы. Оксфорд, Великобритания: Oxford University Press, 2004.

[3] Enders, W. Applied Econometric Time Series. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 1995.

[4] Гамильтон, Дж. Д. Анализ временных рядов. Принстон, Нью-Джерси: Princeton University Press, 1994.

[5] Панкрац, А. Прогнозирование с использованием динамических регрессионных моделей. John Wiley & Sons, Inc., 1991.

[6] Цай, Р. С. Анализ финансовых временных рядов. 2-й ред. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 2005.