www.gusucode.com > econ 案例源码程序 matlab代码 > econ/CompareConditionalVarianceModelsUsingInformationCriteriaExample.m

    %% Compare Conditional Variance Models Using Information Criteria  
% This example shows how to specify and fit a GARCH, EGARCH, and GJR model
% to foreign exchange rate returns. Compare the fits using AIC and BIC.   

% Copyright 2015 The MathWorks, Inc.


%% Step 1. Load the data. 
% Load the foreign exchange rate data included with the toolbox. Convert
% the Swiss franc exchange rate to returns. 
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')    

%%
% The returns series appears to exhibit some volatility clustering.  

%% Step 2. Fit a GARCH(1,1) model. 
% Specify, and then fit a GARCH(1,1) model to the returns series. Return
% the value of the loglikelihood objective function. 
Mdl1 = garch(1,1);
[EstMdl1,EstParamCov1,logL(1)] = estimate(Mdl1,r);
numParams(1) = sum(any(EstParamCov1)); % Number of fitted parameters  

%% Step 3. Fit an EGARCH(1,1) model. 
% Specify, and then fit an EGARCH(1,1) model to the returns series. Return
% the value of the loglikelihood objective function. 
Mdl2 = egarch(1,1);
[EstMdl2,EstParamCov2,logL(2)] = estimate(Mdl2,r);
numParams(2) = sum(any(EstParamCov2));  

%% Step 4. Fit a GJR(1,1) model. 
% Specify, and then fit a GJR(1,1) model to the returns series. Return the
% value of the loglikelihood objective function. 
Mdl3 = gjr(1,1);
[EstMdl3,EstParamCov3,logL(3)] = estimate(Mdl3,r);
numParams(3) = sum(any(EstParamCov3)); 

%%
% The leverage term in the GJR model is not statistically significant.  

%% Step 5. Compare the model fits using AIC and BIC. 
% Calculate the AIC and BIC values for the GARCH, EGARCH, and GJR model
% fits. The GARCH model has three parameters; the EGARCH and GJR models
% each have four parameters. 
[aic,bic] = aicbic(logL,numParams,T) 

%%
% The GARCH(1,1) and EGARCH(1,1) models are not nested, so you cannot compare
% them by conducting a likelihood ratio test. The GARCH(1,1) is nested in
% the GJR(1,1) model, however, so you could use a likelihood ratio test
% to compare these models. 

%%
% Using AIC and BIC, the GARCH(1,1) model has slightly smaller (more negative)
% AIC and BIC values. Thus, the GARCH(1,1) model is the preferred model
% according to these criteria.