exponenta event banner

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

Монте-Карло моделирование моделей ARIMA или ARIMAX

Синтаксис

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

Описание

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

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

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

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

Mdl

Модель ARIMA или ARIMAX, указанная как arima модель, возвращенная arima или estimate.

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

numObs

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

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

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

'E0'

Среднее значение инноваций с нулевым предварительным образцом, которые обеспечивают начальные значения для модели. E0 является вектором-столбцом или матрицей по крайней мере с NumPaths столбцов и достаточно строк для инициализации модели и любой модели условного отклонения. Требуемое количество наблюдений не менее Mdl.Q, но может быть больше, если указать модель условного отклонения. Если число строк превышает необходимое, то simulate использует только самые последние наблюдения. Если число столбцов превышает NumPaths, то simulate использует только первый NumPaths столбцы. Если E0 является вектором столбца, затем он применяется к каждому моделируемому пути. Последняя строка содержит самое последнее предварительное наблюдение.

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

'NumPaths'

Положительное целое число, указывающее количество генерируемых путей (столбцов).

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

'V0'

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

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

'X'

Матрица данных предиктора длиной Mdl.Beta колонки отдельных серий. Количество наблюдений (строк) X должны равняться или превышать numObs. Если количество наблюдений X превышает numObs, то simulate использует только самые последние наблюдения. simulate применяет всю матрицу X к каждой моделируемой последовательности ответов. Последняя строка содержит последнее наблюдение.

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

'Y0'

Предварительные данные ответа, которые предоставляют начальные значения для модели. Y0 является вектором-столбцом или матрицей по крайней мере с Mdl.P строки и NumPaths столбцы. Если число строк превышает Mdl.P, то simulate использует только самые последние Mdl.P наблюдения. Если число столбцов превышает NumPaths, то simulate использует только первый NumPaths столбцы. Если Y0 является вектором столбца, затем он применяется к каждому моделируемому пути. Последняя строка содержит самое последнее предварительное наблюдение.

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

Примечания

  • NaNs указывают отсутствующие значения, и simulate удаляет их. Программное обеспечение объединяет предварительные данные, а затем использует удаление по списку для удаления любых NaNs в матрице данных предварительной выборки или X. То есть simulate наборы PreSample = [Y0 E0 V0], то он удаляет любую строку в PreSample или X который содержит, по крайней мере, один NaN.

  • Удаление NaNs в основных данных уменьшает эффективный размер выборки. Такое удаление может также создавать нерегулярные временные ряды.

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

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

Y

numObsоколо-NumPaths матрица моделируемых данных ответа.

E

numObsоколо-NumPaths матрица моделируемых инноваций среднего нуля.

V

numObsоколо-NumPaths матрица моделируемых условных отклонений нововведений в E.

Примеры

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

Моделирование путей реагирования и инноваций на основе мультипликативной сезонной модели.

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

(1-L) (1-L12) yt = (1-0 .5L) (1 + 0 .3L12) αt,

где αt следует за гауссовым распределением со средним значением 0 и дисперсией 0,1.

Mdl = arima('MA',-0.5,'SMA',0.3,...
	'SMALags',12,'D',1,'Seasonality',12,...
	'Variance',0.1,'Constant',0);

Смоделировать 500 путей со 100 наблюдениями каждый.

rng default % For reproducibility
[Y,E] = simulate(Mdl,100,'NumPaths',500);

figure
subplot(2,1,1);
plot(Y)
title('Simulated Response')

subplot(2,1,2);
plot(E)
title('Simulated Innovations')

Figure contains 2 axes. Axes 1 with title Simulated Response contains 500 objects of type line. Axes 2 with title Simulated Innovations 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:100,lower,'r:',1:100,middle,'k',...
			1:100,upper,'r:')
legend('95% Interval','Median')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent 95% Interval, Median.

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

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

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

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

Смоделировать три серии предикторов и серию ответов.

Укажите и смоделируйте путь длиной 20 для каждой из трех серий предикторов, смоделированных

(1-0.2L) xit=2 + (1+0.5L-0.3L2) ηit,

, где λ следует за гауссовым распределением со средним значением 0 и дисперсией 0,01, и i = {1,2,3}.

[MdlX1,MdlX2,MdlX3] = deal(arima('AR',0.2,'MA',...
    {0.5,-0.3},'Constant',2,'Variance',0.01));

rng(4); % For reproducibility 
simX1 = simulate(MdlX1,20);
simX2 = simulate(MdlX2,20);
simX3 = simulate(MdlX3,20);
SimX = [simX1 simX2 simX3];

Укажите и смоделируйте путь длиной 20 для последовательности ответов, смоделированной

(1-0.05L+0.02L2-0.01L3) (1-L) 1yt=0.05+xt [0.5-0.03-0.7] + (1+0.04L+0.01L2) εt,

где αt следует за гауссовым распределением со средним значением 0 и дисперсией 1.

MdlY = arima('AR',{0.05 -0.02 0.01},'MA',...
    {0.04,0.01},'D',1,'Constant',0.5,'Variance',1,...
    'Beta',[0.5 -0.03 -0.7]);
simY = simulate(MdlY,20,'X',SimX);

Постройте серию вместе.

figure
plot([SimX simY])
title('Simulated Series')
legend('{X_1}','{X_2}','{X_3}','Y')

Figure contains an axes. The axes with title Simulated Series contains 4 objects of type line. These objects represent {X_1}, {X_2}, {X_3}, Y.

Прогнозирование ежедневного составного индекса NASDAQ с использованием моделирования Монте-Карло.

Загрузите данные NASDAQ, включенные в набор инструментов. Извлеките первые 1500 наблюдений для подгонки.

load Data_EquityIdx
nasdaq = DataTable.NASDAQ(1:1500);
n = length(nasdaq);

Укажите, а затем поместите модель ARIMA (1,1,1 ).

NasdaqModel = arima(1,1,1);
NasdaqFit = estimate(NasdaqModel,nasdaq);
 
    ARIMA(1,1,1) Model (Gaussian Distribution):
 
                  Value      StandardError    TStatistic      PValue  
                _________    _____________    __________    __________

    Constant      0.43031       0.18555          2.3191       0.020391
    AR{1}       -0.074389      0.081985        -0.90735        0.36422
    MA{1}         0.31126      0.077266          4.0284     5.6166e-05
    Variance       27.826       0.63625          43.735              0

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

rng default;
Y = simulate(NasdaqFit,500,'NumPaths',1000,'Y0',nasdaq);

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

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

figure
plot(nasdaq,'Color',[.7,.7,.7])
hold on
h1 = plot(n+1:n+500,lower,'r:','LineWidth',2);
plot(n+1:n+500,upper,'r:','LineWidth',2)
h2 = plot(n+1:n+500,mn,'k','LineWidth',2);

legend([h1 h2],'95% Interval','Simulation Mean',...
			'Location','NorthWest')
title('NASDAQ Composite Index Forecast')
hold off

Figure contains an axes. The axes with title NASDAQ Composite Index Forecast contains 4 objects of type line. These objects represent 95% Interval, Simulation Mean.

Ссылки

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

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

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