Right now the family argument is treated as static wrt glmax.fit. It is possible to define the gradient wrt the families themselves, provided there is a parameter outside of the typical mean / disp terms. For example, Tweedie distributions would need an aux parameter for their power. Recall that Tweedie captures the statistical manifold for EDMs with p = 0 (Gaussian), p = 1 (Poisson), 1 < p < 2 (Poisson-Gamma), p= 2 Gamma, p = 3 Inverse Gaussian.
This could enable distributional regression along the lines of something like,
def loss(p):
fitted = fit(Tweedie(p=p), X_train, y_train)
return predict_nll(fitted, X_val, y_val)
p_opt = optax_minimize(jax.grad(loss), p_init=1.5)
Or more appropriately with a glmax.PowerLink to ensure the means are tied as well.
Right now the family argument is treated as static wrt glmax.fit. It is possible to define the gradient wrt the families themselves, provided there is a parameter outside of the typical mean / disp terms. For example, Tweedie distributions would need an aux parameter for their power. Recall that Tweedie captures the statistical manifold for EDMs with p = 0 (Gaussian), p = 1 (Poisson), 1 < p < 2 (Poisson-Gamma), p= 2 Gamma, p = 3 Inverse Gaussian.
This could enable distributional regression along the lines of something like,
Or more appropriately with a glmax.PowerLink to ensure the means are tied as well.