fGarch: possible bugs
Yohan Chalabi
chalabi at phys.ethz.ch
Tue Feb 12 15:33:58 CET 2008
Hi Michal,
>>>> "MM" == michal miklovic <mmiklovic at yahoo.com>
>>>> on Mon, 11 Feb 2008 11:03:56 -0800 (PST)
MM> 1. In the summary function, N should be calculated as
MM> length(object at data) instead of length(object at data) because data
MM> does not exist (and thus normalised log likelihood is infinity).
yeah, I was supposed to fix that for a long time now. I changed it to
NROW(object at data$Data) to make it more general.
MM> 2. In plot types 10 and 11 of the plot function, it would
MM> be better to calculate standardised residuals as sres =
MM> as.numeric(residuals(x, standardize = TRUE)) and sres2 =
MM> as.numeric(residuals(x, standardize = TRUE))^2, respectively,
MM> since the acf function is not able to handle zoo objects while
MM> fGarch is and the residuals function assigns the same class to
MM> residuals as has the modeled data.
It is a new feature that garchFit can handle zoo object and we
still need to test it! I made the change to as.matrix() to make
it work with other time series object.
MM> 3. In the summary function, 'object@' is missing in the command
MM> to print mean and variance equations.
thanks to point this out !
MM> 4. There seems to be a problem in the computation of the
MM> hessian. The default hessian="fda" used with algorithm="nlminb"
MM> produced a covariance matrix with negative numbers on the
MM> diagonal. First, I thought this inaccuracy is the price to pay
MM> for faster computation. The setting hessian="cda" produced a
MM> covariance matrix with only positive numbers on the diagonal
MM> but it took longer to calculate the hessian. However, when
MM> I used algorithm="sqp" both hessian="fda" and hessian="cda"
MM> produced covariance matrices with negative numbers on the
MM> diagonal. Therefore, I would like to ask if such a result
MM> is OK or if there is a bug in the fortran implementation of
MM> hessian computation.
the fortran routines for the hessian approximation are new and we
are still testing them! I just had a look at the code and there is a
clear problem with hessian="fda". I recommend you to always use
hessian="cda".
FYI, "cda" is now the default method and we will probably
remove fda before we release the new package.
You can compare the different implementation with
library(fGarch)
data(sp500dge)
x <- sp500dge[,1]
fit <- garchFit(~garch(1,1), x, al = "mnfb")
RCDAHessian <- .garchRCDAHessian(fit at fit$par, .params, .series)
FCDAHessian <- .garchFCDAHessian(fit at fit$par, .params, .series)
FFDAHessian <- .garchFFDAHessian(fit at fit$par, .params, .series)
thanks for your helpful comments!
Yohan
More information about the Rmetrics-core
mailing list