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

Симуляция Монте-Карло условных моделей отклонения

Синтаксис

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

Описание

пример

V = simulate(Mdl,numObs) моделирует numObs - условный путь к отклонению периода из полностью заданной условной модели Mdl отклонения. Mdl может быть garch, egarch или модель gjr.

пример

V = simulate(Mdl,numObs,Name,Value) моделирует условные пути к отклонению с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value. Например, можно сгенерировать несколько демонстрационных путей или задать преддемонстрационные инновационные пути.

пример

[V,Y] = simulate(___) дополнительно моделирует пути к ответу с помощью любого из входных параметров в предыдущих синтаксисах.

Примеры

свернуть все

Моделируйте условное отклонение и пути к ответу из модели GARCH(1,1).

Задайте модель GARCH(1,1) с известными параметрами.

Mdl = garch('Constant',0.01,'GARCH',0.7,'ARCH',0.2);

Моделируйте 500 демонстрационных путей, каждого с 100 наблюдениями.

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

figure
subplot(2,1,1)
plot(V)
title('Simulated Conditional Variances')

subplot(2,1,2)
plot(Y)
title('Simulated Responses')

Моделируемые ответы похожи, чертит от стационарного стохастического процесса.

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

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

figure
plot(1:100,lower,'r:',1:100,middle,'k',...
		 1:100,upper,'r:','LineWidth',2)
legend('95% Interval','Median')
title('Approximate 95% Intervals')

Интервалы асимметричны из-за ограничений положительности на условное отклонение.

Моделируйте условное отклонение и пути к ответу из модели EGARCH(1,1).

Задайте модель EGARCH(1,1) с известными параметрами.

Mdl = egarch('Constant',0.001,'GARCH',0.7,'ARCH',0.2,...
            'Leverage',-0.3);

Моделируйте 500 демонстрационных путей, каждого с 100 наблюдениями.

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

figure
subplot(2,1,1)
plot(V)
title('Simulated Conditional Variances')

subplot(2,1,2)
plot(Y)
title('Simulated Responses (Innovations)')

Моделируемые ответы похожи, чертит от стационарного стохастического процесса.

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

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

figure
plot(1:100,lower,'r:',1:100,middle,'k',...
     1:100, upper,'r:','LineWidth',2)
legend('95% Interval','Median')
title('Approximate 95% Intervals')

Интервалы асимметричны из-за ограничений положительности на условное отклонение.

Моделируйте условное отклонение и пути к ответу из модели GJR(1,1).

Задайте модель GJR(1,1) с известными параметрами.

Mdl = gjr('Constant',0.001,'GARCH',0.7,'ARCH',0.2,...
    'Leverage',0.1);

Моделируйте 500 демонстрационных путей, каждого с 100 наблюдениями.

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

figure
subplot(2,1,1)
plot(V)
title('Simulated Conditional Variances')

subplot(2,1,2)
plot(Y)
title('Simulated Responses (Innovations)')

Моделируемые ответы похожи, чертит от стационарного стохастического процесса.

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

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

figure
plot(1:100,lower,'r:',1:100,middle,'k',...
     1:100, upper,'r:','LineWidth',2)
legend('95% Interval','Median')
title('Approximate 95% Intervals')

Интервалы асимметричны из-за ограничений положительности на условное отклонение.

Моделируйте условные отклонения ежедневного Сводного индекса NASDAQ, возвращается в течение 500 дней. Используйте симуляции, чтобы сделать прогнозы и аппроксимировать 95%-е интервалы прогноза. Сравните прогнозы среди GARCH (1,1), EGARCH (1,1), и GJR (1,1) подгонки.

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

load Data_EquityIdx
nasdaq = DataTable.NASDAQ;
r = price2ret(nasdaq);
T = length(r);

Соответствуйте GARCH (1,1), EGARCH (1,1), и модели GJR(1,1) к целому набору данных. Выведите условные отклонения, чтобы использовать в качестве преддемонстрационных условных отклонений для симуляции прогноза.

Mdl = cell(3,1); % Preallocation
Mdl{1} = garch(1,1);
Mdl{2} = egarch(1,1);
Mdl{3} = gjr(1,1);

EstMdl = cellfun(@(x)estimate(x,r,'Display','off'),Mdl,...
    'UniformOutput',false);
v0 = cellfun(@(x)infer(x,r),EstMdl,'UniformOutput',false);

EstMdl является вектором ячейки 3 на 1. Каждая ячейка является другим типом предполагаемой условной модели отклонения, например, EstMdl{1} является предполагаемой моделью GARCH(1,1). V0 является вектором ячейки 3 на 1, и каждая ячейка содержит выведенные условные отклонения из соответствующей, оцененной модели.

Моделируйте 1 000 демонстрационных путей с 500 наблюдениями каждый. Используйте наблюдаемые возвраты, и вывел условные отклонения как преддемонстрационные данные.

vSim = cell(3,1); % Preallocation

for j = 1:3
    rng default; % For reproducibility
    vSim{j} = simulate(EstMdl{j},500,'NumPaths',1000,'E0',r,'V0',v0{j});  
end

vSim является вектором ячейки 3 на 1, и каждая ячейка содержит 500 1000 матрица моделируемых условных отклонений, сгенерированных из соответствующей, оцененной модели.

Постройте средние прогнозы симуляции и аппроксимируйте 95%-е интервалы прогноза, наряду с условными отклонениями, выведенными из данных.

lower = cellfun(@(x)prctile(x,2.5,2),vSim,'UniformOutput',false);
upper = cellfun(@(x)prctile(x,97.5,2),vSim,'UniformOutput',false);
mn = cellfun(@(x)mean(x,2),vSim,'UniformOutput',false);
datesPlot = dates(end - 250:end);
datesFH = dates(end) + (1:500)';

h = zeros(3,4);

figure
for j = 1:3
    col = zeros(1,3);
    col(j) = 1;    
    h(j,1) = plot(datesPlot,v0{j}(end-250:end),'Color',col);
    hold on
    h(j,2) = plot(datesFH,mn{j},'Color',col,'LineWidth',3);
    h(j,3:4) = plot([datesFH datesFH],[lower{j} upper{j}],':',...
        'Color',col,'LineWidth',2);
end
hGCA = gca;
plot(datesFH(1)*[1 1],hGCA.YLim,'k--');
datetick;
axis tight;
h = h(:,1:3);
legend(h(:),'GARCH - Inferred','EGARCH - Inferred','GJR - Inferred',...
      'GARCH - Sim. Mean','EGARCH - Sim. Mean','GJR - Sim. Mean',...
      'GARCH - 95% Fore. Int.','EGARCH - 95% Fore. Int.',...
      'GJR - 95% Fore. Int.','Location','NorthEast')
title('Simulated Conditional Variance Forecasts')
hold off

Входные параметры

свернуть все

Условная модель отклонения без любых неизвестных параметров, заданных как garch, egarch или объект модели gjr.

Mdl не может содержать свойства, которые имеют значение NaN.

Демонстрационная длина пути, заданная как положительное целое число. Таким образом, количество случайных наблюдений, чтобы сгенерировать на вывод path. V и Y имеют строки numObs.

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'numPaths',1000,'E0',[0.5; 0.5] задает, чтобы сгенерировать демонстрационные пути 1000 и использовать [0.5; 0.5] в качестве преддемонстрационных инноваций на путь.

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

Пример: 'NumPaths',1000

Типы данных: double

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

E0 должен содержать, по крайней мере, элементы Mdl.Q или строки. Если E0 содержит дополнительные строки, simulate использует последний Mdl.Q только.

Последний элемент или строка содержат последние преддемонстрационные инновации.

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

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

Значения по умолчанию:

  • Для GARCH (P, Q) и GJR (P, Q) модели, simulate устанавливает любые необходимые преддемонстрационные инновации на независимую последовательность воздействий со средним нулевым и стандартным отклонением, равным безусловному стандартному отклонению условного процесса отклонения.

  • Для EGARCH (P, Q) модели, simulate устанавливает любые необходимые преддемонстрационные инновации на независимую последовательность воздействий со средним нулем и отклонением, равным exponentiated безусловному среднему значению логарифма процесса отклонения EGARCH.

Пример: 'E0',[0.5; 0.5]

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

  • Если V0 является вектор-столбцом, то simulate применяет его к каждому выводу path.

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

  • Для GARCH (P, Q) и GJR (P, Q) модели:

    • V0 должен иметь, по крайней мере, строки Mdl.P, чтобы инициализировать уравнение отклонения.

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

  • Для EGARCH (P, Q) модели, simulate:

    • V0 должен иметь, по крайней мере, строки max(Mdl.P,Mdl.Q), чтобы инициализировать уравнение отклонения.

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

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

Пример: 'V0',[1; 0.5]

Типы данных: double

Примечания

  • Если E0 и V0 являются вектор-столбцами, simulate применяет их к каждому столбцу выходных параметров V и Y. Это приложение позволяет моделируемым путям совместно использовать общую отправную точку для симуляции Монте-Карло дистрибутивов ошибки прогноза и прогнозов.

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

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

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

свернуть все

Моделируемые условные пути к отклонению средних нулевых инноваций сопоставлены с Y, возвращенным как числовой вектор-столбец или матрица.

V является numObs-by-NumPaths матрица, в которой каждый столбец соответствует моделируемому условному пути к отклонению. Строки V являются периодами, соответствующими периодичности Mdl.

Моделируемые пути к ответу, возвращенные как числовой вектор-столбец или матрица. Y обычно представляет средний нуль, heteroscedastic временные ряды инноваций с условными отклонениями, данными в V (продолжение преддемонстрационной инновационной серии E0).

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

Y является numObs-by-NumPaths матрица, в которой каждый столбец соответствует моделируемому пути к ответу. Строки Y являются периодами, соответствующими периодичности Mdl.

Ссылки

[1] Боллерслев, T. “Обобщенный Авторегрессивный Условный Heteroskedasticity”. Журнал Эконометрики. Издание 31, 1986, стр 307–327.

[2] Боллерслев, T. “Условно Модель Временных рядов Heteroskedastic за Спекулятивные Цены и Нормы прибыли”. Анализ Экономики и Статистики. Издание 69, 1987, стр 542–547.

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

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

[5] Энгл, R. F. “Авторегрессивный Условный Heteroskedasticity с Оценками Отклонения Инфляции Соединенного Королевства”. Econometrica. Издание 50, 1982, стр 987–1007.

[6] Glosten, L. R. Р. Джейгэннэзэн и Д. Э. Ранкл. “На Отношении между Ожидаемым значением и Энергозависимостью Номинального Избыточного Возврата на Запасах”. Журнал Финансов. Издание 48, № 5, 1993, стр 1779–1801.

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

[8] Нельсон, D. B. “Условный Heteroskedasticity в Активе Возвращается: Новый Подход”. Econometrica. Издание 59, 1991, стр 347–370.

Представленный в R2012a