[R] The gradient of a multivariate normal density with respect to its parameters
Karl Ove Hufthammer
Karl.Hufthammer at math.uib.no
Mon Jun 22 18:11:54 CEST 2009
Ravi Varadhan skreiv:
> I am not aware of any. May I ask what your purpose is? You don't really
> need this if you are going to use it in optimization, since most optimizers
> use a simple finite-difference approximation if you don't provide the
> gradient. Using the numerical approximation from "numDeriv" will be quite
> time-consuming in an optimization routine, since numDeriv uses a high-order
> Richardosn extrapolation to compute an accurate approximation of the
> gradient.
>
No, I don’t use it in an optimisation. The expression is part of a more
complicated formula used for calculating some estimates in a special
nonparametric model.
I won’t use the numerical approximation; the alternative would be to
calculate the analytical expressions myself. It’s not too difficult, but
tedious, and the expressions I end up with may not be the fastest or
most numerically accurate, so if there was a package implementing them
in a good way, it would be nice. :)
> Regardless of your purpose, there is a small bug in your function. You
> should change `dmvnorm(cbind(x,y),mu,sig)' to
> `dmvnorm(cbind(xx,yy),mu,sig)'.
Yes, of course. I originally used x and y when creating the example, but
then discovered that the jacobian() function already used x as an
argument for something else, so I renamed them to xx and yy (though
obviously not everywhere!). I really should have tested it in a
completely clean environment before posting.
--
Karl Ove Hufthammer
More information about the R-help
mailing list