[R] Hessian from optim()

Ingmar Visser I.Visser at uva.nl
Tue Mar 21 17:41:44 CET 2006

>> Hello!
>> Looking on how people use optim to get MLE I also noticed that one can
>> use returned Hessian to get corresponding standard errors i.e. something
>> like
>> result <- optim(<< snip >>, hessian=T)
>> result$par                  # point estimates
>> vc <- solve(result$hessian) # var-cov matrix
>> se <- sqrt(diag(vc))        # standard errors
>> What is actually Hessian representing here? I appologize for lack of
>> knowledge, but ... Attached PDF can show problem I am facing with this
>> issue.
> The Hessian is the second derivative of the objective function, so if the
> objective function is minus a loglikelihood the hessian is the observed
> Fisher information.   The inverse of the hessian is thus an estimate of
> the variance-covariance matrix of the parameters.
> For some models this is exactly I/n in your notation, for others it is
> just close (and there are in fact theoretical reasons to prefer the
> observed information).  I don't remember whether the two-parameter gamma
> family is one where the observed and expected information are identical.

The optim help page says:

hessian     Logical. Should a numerically differentiated Hessian matrix be

I interpret this as providing a finite differences approximation of the
Hessian (possibly based on exact gradients?). Is that the case or is it a
Hessian that results from the optimization process?

Best, Ingmar

More information about the R-help mailing list