[R-SIG-Finance] issues with NGARCH in rgarch package
Liviu Andronic
landronimirc at gmail.com
Thu May 7 23:00:13 CEST 2009
In a very helpful discussion off-list, Alexios helped us identify our issue.
There seems to be a (general) confusion concerning the "NGARCH" and
"NAGARCH" denominations:
- The NGARCH (Nonlinear) also known as NAGARCH (nonlinear-in-mean,
asymmetric) model introduced by Engle & Ng (1993). For this use the
fit.NAGARCH example [1].
- The NARCH, and NGARCH extension, introduced by Higgins & Bera
(1992). For this use the fit.NGARCH example [1].
Liviu
[1] http://rgarch.r-forge.r-project.org/example3.html
On Sun, May 3, 2009 at 1:45 AM, Liviu Andronic <landronimirc at gmail.com> wrote:
> Dear Alexios,
>
> We are currently using rgarch from R-forge to compute basic GARCH(1,1)
> and more fancy NGARCH(1,1) models. For the simple garch(1,1) we get
> different results from tseries::garch(), fGarch::garchFit() and
> rgarch::ugarchfit(), however fairly comparable; if you're interested,
> I could post self-contained code highlighting the differences.
>
> For the NGARCH (via fGARCH), however, we get funny results and I
> believe it would be a bug in the code. If you look at the Hentschel's
> "Family GARCH" model [1], NGARCH is obtained when lambda is fixed and
> =2 (page 9 and 11 of the .pdf). However ugarchfit() seems to try to
> estimate this guy.
> A second issue, ugarchfit() will not try to estimate the assymetry
> shift: `theta' in our econometrics class, `b' in the article (page 11
> of the .pdf), or `fb' in the rgarch package (see `ugarchspec-methods
> {rgarch}' help page). Looking at the source code (internal-fgarch.R,
> line 31), it seems that fb is hard-set to 0:
> NGARCH =list(parameters=list(lambda=2, delta=0, fb=0, fc=0, fk=1),
>
> indicator=c(1,0,0,0,0), garchtype = 4),
> although we believe it should be one of the freely estimated
> parameters (instead of lambda, as currently it seems to be).
>
> Would there be any easy way to work around this issue? For code
> highlighting the problem, please look below.
> Thank you,
> Liviu
>
> [1] http://en.wikipedia.org/wiki/Autoregressive_conditional_heteroskedasticity#fGARCH
>
> ### Code ###
>> return=vector()
>> zigma=vector()
>> return[1]=0
>> zigma[1]=0
>> normvector=rnorm(499,mean=0,sd=1)
>> #simulate random returns for predefined NGARCH parameters
>> for(i in 2:500)
> + {
> + zigma[i]=(0.01+0.05*(return[i-1]-2*zigma[i-1])^2+0.6*zigma[i-1]^2)^0.5
> + return[i]=zigma[i]*normvector[i-1]
> + }
>> head(return)
> [1] 0.00000 0.08726 -0.02434 0.26456 0.19681 -0.01039
>> # Fitting Non-linear GARCH
>> require(rgarch)
>> spec.NGARCH <- ugarchspec(variance.model=list(model="fGARCH",
> + garchOrder=c(1,1), submodel="NGARCH"), mean.model=list(armaOrder=c(0,0),
> + include.mean=FALSE), distribution.model="snorm")
>> fit.NGARCH <- ugarchfit(data=return, spec=spec.NGARCH)
>> fit.NGARCH at fit$coef
> omega alpha1 beta1 lambda
> 0.04276 0.06191 0.87457 0.43634
>> fit.NGARCH
>
>
> GARCH Model Spec
> --------------------------
> Model : fGARCH Sub-Model : NGARCH
>
> Exogenous Regressors in variance equation: none
>
> Mean Equation :
> Include Mean : FALSE
> AR(FI)MA Model : (0,0,0)
> Garch-in-Mean : FALSE
> Exogenous Regressors in mean equation: none
> Conditional Distribution: norm
>
> GARCH Model Fit
> --------------------------
> Optimal Parameters:
> Estimate Std. Error t value Pr(>|t|)
> omega 0.04276 0.030425 1.4054 0.159894
> alpha1 0.06191 0.028462 2.1752 0.029613
> beta1 0.87457 0.061289 14.2695 0.000000
> lambda 0.43634 0.171291 2.5474 0.010854
>
> Robust Standard Errors:
> Estimate Std. Error t value Pr(>|t|)
> omega 0.04276 0.034747 1.2306 0.218473
> alpha1 0.06191 0.036494 1.6965 0.089795
> beta1 0.87457 0.076156 11.4839 0.000000
> lambda 0.43634 0.179153 2.4356 0.014868
>
> LogLikelihood : 62.65
>
> Information Criteria:
> Akaike 0.26660
> Bayes 0.30032
> Shibata 0.26648
> Hannan-Quinn 0.27983
>
>
> Q-Statistics on Standardized Residuals:
> statistic p-value
> Lag10 6.161 0.8016
> Lag15 13.434 0.5688
> Lag20 21.480 0.3694
>
> H0 : No serial correlation
>
> Q-Statistics on Standardized Squared Residuals:
> statistic p-value
> Lag10 7.032 0.7224
> Lag15 10.325 0.7988
> Lag20 17.254 0.6364
>
> ARCH LM Tests:
> Statistic DoF P-Value
> ARCH Lag[2] 0.1076 2 0.9476
> ARCH Lag[5] 6.0089 5 0.3054
> ARCH Lag[10] 8.0694 10 0.6221
>
> Joint Statistic of the Nyblom stability test: 0.9012
>
> Individual Nyblom Statistics:
> omega 0.2906
> alpha1 0.2260
> beta1 0.2734
> lambda 0.2845
>
> Sign Bias Test
> t-value prob sig
> Sign Bias 0.7199 0.47193
> Negative Sign Bias 1.0525 0.29308
> Positive Sign Bias 1.6822 0.09316 *
> Joint Effect 5.5168 0.13764
>
> Chisq Goodnes of Fit Test
> [1] "under revision"
>
>
> Elapsed time : 1.298
>
> ### End of code ###
>
--
Do you know how to read?
http://www.alienetworks.com/srtest.cfm
Do you know how to write?
http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail
More information about the R-SIG-Finance
mailing list