I have a function in 5 variables, lkl
, and I want to evaluate its second derivative wrt tau
at a point. (I will also later want the mixed partials.) Here is my function and its second partial:
lkl[\[Mu]_, \[Tau]_, s_, crit_,
y_] := -Log[Sqrt[\[Tau]^2 + s^2]*Sqrt[2 \[Pi]]] - {0.5*
Sqrt[\[Tau]^2 + s^2]^(-2)*(y - \[Mu])^2} -
Log[CDF[
NormalDistribution[0, 1], (crit*s - \[Mu])/Sqrt[\[Tau]^2 + s^2]]]
d22 := D[lkl[\[Mu], \[Tau], s, crit, y], {\[Tau], 2}]
Following the top answer here, I first tried to evaluate the derivative as follows:
d22 /. {\[Mu] -> 0.1, \[Tau] -> 1, s -> .5, crit -> 1.96, y -> 0.5}
but this yields
General::ivar: 1 is not a valid variable.
as well as the output: $$\partial_{\{1,2\}}\{-0.851658\}$$
The -0.851658 is actually the value of lkl
itself evaluated at this point, which is obviously a problem, but I don't know how to fix this.
Then, following the top answer here, I tried:
d22[\[Mu]_, \[Tau]_, s_, crit_, y_] :=
Derivative[2][lkl[\[Mu], #, s, crit, y] &][\[Tau]]
which throws the same error, along with new one saying
SetDelayed: Tag D in [...] is Protected.