simulate

Класс: 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 не может содержать NaNs.

numObs

Количество наблюдений (строки), чтобы сгенерировать для каждого пути YE, и 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'

Количество демонстрационных путей (столбцы), чтобы сгенерировать для YE, и 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}')

Постройте 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) ошибки.

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.6757e-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;
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.8721e-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.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. Г. М. Дженкинс и Г. К. Рейнсель. Анализ Временных Рядов: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

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

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

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

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

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

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