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

    %% Assess Conditional Heteroscedasticity Using the Lagrange Multiplier Test
% Test whether there are significant ARCH effects in a simulated response
% series using |lmtest|.  The parameter values in this example are
% arbitrary. 
%%
% Specify the AR(1) model with an ARCH(1) variance:
%
% $$y_t = 0.9y_{t-1}+\varepsilon_t,$$
%
% where 
%
% * $\varepsilon_t = w_t\sqrt{h_t}.$
% * $h_t = 1 + 0.5\varepsilon^2_{t-1}.$
% * $w_t$ is Gaussian with mean 0 and variance 1.
%

% Copyright 2015 The MathWorks, Inc.

VarMdl = garch('ARCH',0.5,'Constant',1);
Mdl = arima('Constant',0,'Variance',VarMdl,'AR',0.9);
%%
% |Mdl| is a fully specified, AR(1) model with an ARCH(1) variance.
%%
% Simulate presample and effective sample responses from |Mdl|. 
T = 100;
rng(1);  % For reproducibility
n = 2;   % Number of presample observations required for the gradient
[y,ep,v] = simulate(Mdl,T + n);
%%
% |ep| is the random path of innovations from |VarMdl|.  The software
% filters |ep| through |Mdl| to yield the random response path |y|.
%%
% Specify the restricted model and assume that the AR model constant is 0:
%
% $$y_t = c + \phi_1y_{t-1}+\varepsilon_t,$$
%
% where $h_t = \alpha_0 + \alpha_1\varepsilon^2_{t-1}$.
VarMdl0 = garch(0,1);
VarMdl0.ARCH{1} = 0;
Mdl0 = arima('ARLags',1,'Constant',0,'Variance',VarMdl0);
%%
% The structure of |Mdl0| is the same as |Mdl|.  However, every 
% parameter is unknown, except for the restriction $\alpha_1 = 0$.
% These are equality constraints during estimation.  You can interpret
% |Mdl0| as an AR(1) model with the Gaussian innovations that have mean 0 and
% constant variance.
%%
% Estimate the restricted model using the simulated data (|y|).
psI = 1:n;             % Presample indeces
esI = (n + 1):(T + n); % Estimation sample indeces

[EstMdl0,EstParamCov] = estimate(Mdl0,y(esI),...
    'Y0',y(psI),'E0',ep(psI),'V0',v(psI),'display','off');
phi10 = EstMdl0.AR{1};
alpha00 = EstMdl0.Variance.Constant;
%%
% |EstMdl0| contains the parameter estimates of the restricted model.
%%
% |lmtest| requires the unrestricted model score evaluated at the
% restricted model estimates.  The unrestricted model loglikelihood function is 
%
% $$l(\phi_1,\alpha_0,\alpha_1) = \sum_{t=2}^T\left(-0.5\log(2\pi) - 0.5\log h_t - \frac{\varepsilon_t^2}{2h_t}\right),$$
%
% where $\varepsilon_t = y_t - \phi_1y_{t-1}$. The unrestricted gradient is 
%
% $$\frac{\partial l (\phi_1,\alpha_0,\alpha_1)}{\partial \alpha} =
% \sum_{t=2}^T\frac{1}{2h_t}z_tf_t,$$
%
% where $z_t = [1, \varepsilon_{t-1}^2]$ and $f_t = \frac{\varepsilon_t^2}{h_t} - 1$. The information matrix
% is 
%
% $$I = \frac{1}{2h_t^2} \sum_{t=2}^T z_t'z_t.$$
%
% Under the null, restricted model, $h_t = h_0 = \hat\alpha_0$ for all _t_,
% where $\hat\alpha_0$ is the estimate from the restricted model analysis.
%
% Evaluate the gradient and information matrix under the restricted model.
% Estimate the parameter covariance by inverting the information matrix. 
e = y - phi10*lagmatrix(y,1);
eLag1Sq = lagmatrix(e,1).^2;
h0 = alpha00;
ft = (e(esI).^2/h0 - 1);
zt = [ones(T,1),eLag1Sq(esI)]';

score0 = 1/(2*h0)*zt*ft;        % Score function
InfoMat0 = (1/(2*h0^2))*(zt*zt');
EstParamCov0 = inv(InfoMat0);   % Estimated parameter covariance
dof = 1;                        % Number of model restrictions
%%
% Test the null hypothesis that $\alpha_1=0$ at the 5% significance level using |lmtest|.
[h,pValue] = lmtest(score0,EstParamCov0,dof)
%%
% |pValue| is close to 0, which suggests that there is evidence to
% reject the restricted AR(1) model in favor of the unrestriced AR(1)
% model with an ARCH(1) variance.