statsmodels.tools.numdiff.approx_hess1¶
- statsmodels.tools.numdiff.approx_hess1(x, f, epsilon=None, args=(), kwargs={}, return_grad=False)[source]¶
Calculate Hessian with finite difference derivative approximation
- Parameters:
- xarray_like
value at which function derivative is evaluated
- f
function
function of one array f(x, *args, **kwargs)
- epsilon
float
or array_like,optional
Stepsize used, if None, then stepsize is automatically chosen according to EPS**(1/3)*x.
- args
tuple
Arguments for function f.
- kwargs
dict
Keyword arguments for function f.
- return_gradbool
Whether or not to also return the gradient
- Returns:
- hess
ndarray
array of partial second derivatives, Hessian
- grad
nparray
Gradient if return_grad == True
- hess
Notes
Equation (7) in Ridout. Computes the Hessian as:
1/(d_j*d_k) * ((f(x + d[j]*e[j] + d[k]*e[k]) - f(x + d[j]*e[j])))
where e[j] is a vector with element j == 1 and the rest are zero and d[i] is epsilon[i].
References
- Ridout, M.S. (2009) Statistical applications of the complex-step method
of numerical differentiation. The American Statistician, 63, 66-74