[R] Error in solve.default(Hessian) : system is computationally singular

rkevinburton at charter.net rkevinburton at charter.net
Sat Sep 13 02:22:58 CEST 2008


I don't have a solution but I receive the same error when trying to fit a GARCH model using the garchFit in the fGarch package.

Kevin

---- Desislava Kavrakova <dkavrakova at yahoo.com> wrote: 
> Hello everyone,
> I'm trying to estimate the parameters of the returns series attached using the GARCH code below, but I get the following error message:
> 
> 
> Error in solve.default(Hessian) : 
>   system is computationally singular: reciprocal condition number = 0
> Error in diag(solve(Hessian)) : 
>   error in evaluating the argument 'x' in selecting a method for function 'diag'
> 
> Can anyone help me with this? I don't understand what the problem is.
> 
> Many thanks,
> Desislava Kavrakova
> 
> 
> Code:
> 
> garchfitS<-function(x){
> x<<-ts(x)
> r<<-0.05/365
> n<<-length(x)
> 
> Mean = mean(x); Var = var(x); S = 1e-6
> param = c(alpha0 = Var, alpha = 0.1, beta = 0.8)
> lowerB = c(alpha0 = S^2, alpha = S, beta = S)
> upperB = c(alpha0 = 100*Var, alpha = 1-S, beta = 1-S)
> 
> llh<-function(p){
> alpha0<-p[1]
> alpha<-p[2]
> beta<-p[3]
> hh<-Var
> for (i in 2:n){
> hh[i]<-alpha0+alpha*(x[i-1]-r+0.5*hh[i-1])^2+beta*hh[i-1]
> }
> hh<-ts(hh)
> h<-sqrt(abs(hh))
> z<-(x-r+0.5*hh)/h
> -(-(sum(0.5*(log(hh[2:n])+(z[2:n])^2))))
> }
> 
> fit<-nlminb(param, llh, lower=lowerB, upper=upperB)
> Hessian<-hessian(llh,fit$par)
> se.coef = sqrt(diag(solve(Hessian)))
> tval = fit$par/se.coef
> matcoef = cbind(fit$par,se.coef, tval, 2*(1-pnorm(abs(tval))))
> dimnames(matcoef) = list(names(tval), c(" Estimate", 
> " Std. Error", " t value", "Pr(>|t|)"))
> printCoefmat(matcoef, digits = 6, signif.stars = TRUE)
> }
> 
> 
>



More information about the R-help mailing list