В этом примере показано, как симулировать условную модель отклонения использование simulate
.
Загрузите данные об обменном курсе валюты Дойчмарки/Британского фунта, включенные с тулбоксом, и преобразуйте в возвраты. Задайте и подбирайте модель GARCH(1,1).
load Data_MarkPound
r = price2ret(Data);
T = length(r);
Mdl = garch(1,1);
EstMdl = estimate(Mdl,r);
GARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.0534e-06 3.5047e-07 3.0056 0.0026508 GARCH{1} 0.80659 0.012908 62.486 0 ARCH{1} 0.15435 0.011574 13.336 1.4286e-40
v0 = infer(EstMdl,r);
Использование подобранная модель, чтобы симулировать 25 реализации обменного курса валюты возвращается и условные отклонения по горизонту прогноза с 1000 периодами. Используйте наблюдаемые возвраты, и вывел условные отклонения как преддемонстрационные инновации и отклонения, соответственно.
rng default; % For reproducibility [V,Y] = simulate(EstMdl,1000,'NumPaths',25,... 'E0',r,'V0',v0); figure subplot(2,1,1) plot(v0) hold on plot(T+1:T+1000,V) xlim([0,T+1000]) title('Conditional Variances') hold off subplot(2,1,2) plot(r) hold on plot(T+1:T+1000,Y) xlim([0,T+1000]) title('Returns') hold off
Симуляции использования, чтобы сгенерировать распределение прогноза иностранной валюты возвращают 500 дней в будущее. Сгенерируйте 1 000 демонстрационных путей, чтобы оценить распределение.
rng default; % For reproducibility [V,Y] = simulate(EstMdl,500,'NumPaths',1000,... 'E0',r-EstMdl.Offset,'V0',v0); figure histogram(Y(500,:),10) title('Return Distribution in 500 Days')