В этом примере показано, как задать и соответствовать GARCH, EGARCH, и модель GJR к обменному курсу валюты возвращается. Сравните подгонки с помощью AIC и BIC.
Загрузите данные об обменном курсе валюты, включенные с тулбоксом. Преобразуйте обменный курс швейцарского франка в возвраты.
load Data_FXRates y = DataTable.CHF; r = price2ret(y); T = length(r); logL = zeros(1,3); % Preallocate numParams = logL; % Preallocate figure plot(r) xlim([0,T]) title('Swiss Franc Exchange Rate Returns')
Ряд возвратов, кажется, показывает некоторую кластеризацию энергозависимости.
Задайте, и затем подбирайте модель GARCH(1,1) к ряду возвратов. Возвратите значение целевой функции логарифмической правдоподобности.
Mdl1 = garch(1,1); [EstMdl1,EstParamCov1,logL(1)] = estimate(Mdl1,r);
GARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.6276e-06 4.3724e-07 3.7224 0.00019737 GARCH{1} 0.9138 0.0068782 132.85 0 ARCH{1} 0.058484 0.0049978 11.702 1.2433e-31
numParams(1) = sum(any(EstParamCov1)); % Number of fitted parameters
Задайте, и затем подбирайте модель EGARCH(1,1) к ряду возвратов. Возвратите значение целевой функции логарифмической правдоподобности.
Mdl2 = egarch(1,1); [EstMdl2,EstParamCov2,logL(2)] = estimate(Mdl2,r);
EGARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue _________ _____________ __________ __________ Constant -0.29251 0.045942 -6.3669 1.9289e-10 GARCH{1} 0.96976 0.0046786 207.28 0 ARCH{1} 0.12292 0.012052 10.199 2.0094e-24 Leverage{1} -0.013229 0.0049498 -2.6727 0.007525
numParams(2) = sum(any(EstParamCov2));
Задайте, и затем подбирайте модель GJR(1,1) к ряду возвратов. Возвратите значение целевой функции логарифмической правдоподобности.
Mdl3 = gjr(1,1); [EstMdl3,EstParamCov3,logL(3)] = estimate(Mdl3,r);
GJR(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.7086e-06 4.5086e-07 3.7897 0.00015082 GARCH{1} 0.91139 0.0072241 126.16 0 ARCH{1} 0.0589 0.0068671 8.5772 9.718e-18 Leverage{1} 0.0013175 0.0072803 0.18097 0.85639
numParams(3) = sum(any(EstParamCov3));
Термин рычагов в модели GJR не является статистически значительным.
Вычислите AIC и значения BIC для GARCH, EGARCH и подгонок модели GJR. Модель GARCH имеет три параметра; модели EGARCH и GJR у каждого есть четыре параметра.
[aic,bic] = aicbic(logL,numParams,T)
aic = 1×3
104 ×
-3.3329 -3.3321 -3.3327
bic = 1×3
104 ×
-3.3309 -3.3295 -3.3301
Модели GARCH (1,1) и EGARCH (1,1) не вкладываются, таким образом, вы не можете сравнить их путем проведения теста отношения правдоподобия. GARCH (1,1) вкладывается в модели GJR(1,1), однако, таким образом, вы могли использовать тест отношения правдоподобия, чтобы сравнить эти модели.
Используя AIC и BIC, модель GARCH(1,1) имеет немного меньший (более отрицательный) AIC и значения BIC. Таким образом модель GARCH(1,1) является предпочтительной моделью согласно этим критериям.