I've searched for a solution in many posts but I could not find it. I really need to solve this issue in order to finish my final dissertation. I'm trying to run a bivariate BEKK GARCH with volatility spillovers. But, this error message appears: Missing values in @LOGL series at current coefficients at observation 8/25/2010 in "DO_ BVGARCH.ML(SHOWOPTS, M=1000, C=1E-5)". I'm using Eviews 9.5 . Can you please check my program?
Code: Select all
smpl @all
series y1 = d(log(cno))
series y2 = d(log(cnh))
' set sample
' first observation of s1 need to be one or two periods after
' the first observation of s0
sample s0 08/24/2010 08/31/2016
sample s1 08/25/2010 08/31/2016
' initialization of parameters and starting values
' change below only to change the specification of model
smpl s0
'get starting values from univariate GARCH
equation eq1.arch(m=1000,c=1e-5) y1 c y1(-1) y2(-1)
equation eq2.arch(m=1000,c=1e-5) y2 c y1(-1) y2(-1)
' declare coef vectors to use in bi-variate GARCH model
' see above for details
coef(2) mu
mu(1) = eq1.c(1)
mu(2) = eq2.c(1)
coef(4) lag
lag(1) = eq1.c(2)
lag(2) = eq1.c(3)
lag(3) = eq2.c(2)
lag(4) = eq2.c(3)
coef(3) omega
omega(1)=(eq1.c(4))^.5
omega(2)=(eq2.c(4))^.5
omega(3)=0
coef(4) alpha
alpha(1) = (eq1.c(5))^.5
alpha(2) = (eq2.c(5))^.5
alpha(3) = 0
alpha(4) = 0
coef(4) beta
beta(1) = (eq1.c(6))^.5
beta(2) = (eq2.c(6))^.5
beta(3) = 0
beta(4) = 0
' constant adjustment for log likelihood
!mlog2pi = 2*log(2*@acos(-1))
' use var-cov of sample in "s1" as starting value of variance-covariance matrix
series cov_y1y2 = @cov(y1, y2)
series var_y1 = @var(y1)
series var_y2 = @var(y2)
series sqres1 = (y1-mu(1)-lag(1)*y1(-1)-lag(2)*y2(-1))^2
series sqres2 = (y2-mu(2)-lag(3)*y1(-1)-lag(4)*y2(-1))^2
series res1res2 =(y1-mu(1)-lag(1)*y1(-1)-lag(2)*y2(-1))*(y2-mu(2)-lag(3)*y1(-1)-lag(4)*y2(-1))
' ...........................................................
' LOG LIKELIHOOD
' set up the likelihood
' 1) open a new blank likelihood object (L.O.) name bvgarch
' 2) specify the log likelihood model by append
' ...........................................................
logl bvgarch
bvgarch.append @logl logl
bvgarch.append sqres1 = (y1-mu(1)-lag(1)*y1(-1)-lag(2)*y2(-1))^2
bvgarch.append sqres2 = (y2-mu(2)-lag(3)*y1(-1)-lag(4)*y2(-1))^2
bvgarch.append res1res2 = (y1-mu(1)-lag(1)*y1(-1)-lag(2)*y2(-1))*(y2-mu(2)-lag(3)*y1(-1)-lag(4)*y2(-1))
' calculate the variance and covariance series
bvgarch.append var_y1 = omega(1)^2 + omega(3)^2 + alpha(1)^2*sqres1(-1) + alpha(2)^2*sqres2(-1) + alpha(1)*alpha(2)*res1res2(-1) + beta(1)^2*var_y1(-1) + beta(2)^2*var_y2(-1) + beta(1)*beta(2)*cov_y1y2(-1)
bvgarch.append var_y2 = omega(2)^2 + alpha(3)^2*sqres1(-1) + alpha(4)^2*sqres2(-1) + alpha(3)*alpha(4)*res1res2(-1) + beta(3)^2*var_y1(-1) + beta(4)^2*var_y2(-1) + beta(3)*beta(4)*cov_y1y2(-1)
bvgarch.append cov_y1y2 = omega(2)*omega(3) + alpha(1)*alpha(2)*sqres1(-1) + alpha(3)*alpha(4)*sqres2(-1) + (alpha(1)*alpha(4) + alpha(2)*alpha(3))*res1res2(-1) + beta(1)*beta(2)*var_y1(-1) + beta(3)*beta(4)*var_y2(-1) + (beta(1)*beta(4) + beta(2)*beta(3))*cov_y1y2(-1)
' determinant of the variance-covariance matrix
bvgarch.append deth = var_y1*var_y2 - cov_y1y2^2
' inverse elements of the variance-covariance matrix
bvgarch.append invh2 = var_y2/deth
bvgarch.append invh1 = var_y1/deth
bvgarch.append invh3 = -cov_y1y2/deth
' log-likelihood series
bvgarch.append logl =-0.5*(!mlog2pi + (invh1*sqres1 + 2*invh3*res1res2 + invh2*sqres2) + log(deth))
' remove some of the intermediary series
bvgarch.append @temp invh1 invh2 invh3 sqres1 sqres2 res1res2 deth
' estimate the model
smpl s1
bvgarch.ml(showopts, m=1000, c=1e-5)
' change below to display different output
show bvgarch.output
graph varcov.line var_y1 var_y2 cov_y1y2
show varcov