R: Calculate Two-Sided Hessian Approximation

tsHessian {DistributionUtils} | R Documentation

## Calculate Two-Sided Hessian Approximation

### Description

Calculates an approximation to the Hessian of a function. Used for obtaining an approximation to the information matrix for maximum likelihood estimation.

### Usage

    tsHessian(param, fun, ...)

### Arguments

`param` | Numeric. The Hessian is to be evaluated at this point.
`fun` | A function of the parameters specified by `param`, and possibly other parameters.
`...` | Values of other parameters of the function `fun` if required.

### Details

As a typical statistical application, the function `fun` is the log-likelihood function, `param` specifies the maximum likelihood estimates of the parameters of the distribution, and the data constitutes the other parameter values required for determination of the log-likelihood function.

### Value

The approximate Hessian matrix of the function `fun` where differentiation is with respect to the vector of parameters `param` at the point given by the vector `param`.

### Note

This code was borrowed from the fBasics function, in the file ‘utils-hessian.R’ with slight modification. This was in turn borrowed from Kevin Sheppard's Matlab garch toolbox as implemented by Alexios Ghalanos in his rgarch package.

### Author(s)

David Scott d.scott@auckland.ac.nz, Christine Yang Dong c.dong@auckland.ac.nz

### See Also

`hyperbHessian` and `summary.hyperbFit` in GeneralizedHyperbolic.

### Examples

    ### Consider Hessian of log(1 + x + 2y)
    ### Example from Lang: A Second Course in Calculus, p.74
    fun <- function(param){
      x <- param[1]
      y <- param[2]
      return(log(1 + x + 2*y))
    }

    ### True value of Hessian at (0,0)
    trueHessian <- matrix( c(-1,-2,
                             -2,-4), byrow = 2, nrow = 2)
    trueHessian

    ### Value from tsHessian
    approxHessian <- tsHessian(c(0,0), fun = fun)
    approxHessian
    maxDiff <- max(abs(trueHessian - approxHessian))
    ### Should be approximately 0.045
    maxDiff

[Package DistributionUtils version 0.6-0 Index]