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

Класс: 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

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

Свойства Mdl не могут содержать NaN s.

numObs

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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.

Примечания

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

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

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

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

Y

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

E

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

U

Моделируемые безусловные воздействия, возвращенные как numObs-by-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}')

Постройте 2.5th, 50-й (медиана), и 97.5th процентили моделируемых путей к ответу.

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

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

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

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

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

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

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) ошибки.

ToEstMdl = regARIMA('ARLags',1,'MALags',1);
EstMdl = estimate(ToEstMdl,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);

Моделируйте 1 000 путей с 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

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

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

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;
ToEstMdl = regARIMA('ARLags',1,'MALags',1,'D',1,...
   'Intercept',intercept);
EstMdl = estimate(ToEstMdl,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.8782e-195
    MA{1}          -0.38785       0.060354       -6.4263       1.3077e-10
    Beta(1)       0.0039668      0.0016498        2.4044         0.016199
    Variance     0.00010894      7.272e-06        14.981       9.7343e-51

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

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

Моделируйте 1 000 путей с 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

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

Ссылки

[1] Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ timeseries: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

[2] Дэвидсон, R. и Дж. Г. Маккиннон. Эконометрическая теория и методы. Оксфорд, Великобритания: Издательство Оксфордского университета, 2004.

[3] Enders, W. Прикладные эконометрические временные ряды. Хобокен, NJ: John Wiley & Sons, Inc., 1995.

[4] Гамильтон, J. D. Анализ timeseries. Принстон, NJ: Издательство Принстонского университета, 1994.

[5] Pankratz, A. Прогнозирование с моделями динамической регрессии. John Wiley & Sons, Inc., 1991.

[6] Tsay, R. S. Анализ Финансовых Временных рядов. 2-й редактор Хобокен, NJ: John Wiley & Sons, Inc., 2005.