I’m working on a project where, given some observations of transformed random variables, we would like to estimate the parameters of the distribution those observations came from.
As a simple example, suppose
Y = min(X_1, X_2) where
X_i ~ Gamma(a,b). We see
Y, and we’d like to estimate
b via maximum likelihood estimation.
We can write down the [log]pdf of
Y, but it involves the CDF of a gamma random variable. The gamma CDF available in the JuliaStats ecosystem is a Rmath call, and thus won’t accept DualNumbers as input. Therefore ForwardDiff cannot compute a derivative, and I expect the same would be true for any other differentiation package since the CDF is not computed in Julia.
Is there a pure Julia implementation of either CDFs of common distributions or the special functions needed which would support automatic differentiation? Or am I better off just fitting the maximum likelihood parameters via a derivative-free method?