Perhaps I’m missing background here, but it seems like much of this is caused by the demand for a bespoke max-likelihood solution for exactly gamma Tobit censoring.
I’m not entirely surprised if it’s not off-the-shelf, but then why not use some modeling framework? Both JAGS and Stan support censored/truncated data and also gamma distributions (I know because I’ve used all 4), so I would expect you could write down the censored model easily and turn the crank. Somewhat more exotically, the DL frameworks like Jax are underappreciated in how broad their autodiff support is and how they can implement stuff like SEMs no sweat. If you really need a MLE, you can either use flat priors & pretend that’s the MLE, or save compute & use Stan’s optimization routines to get the mode/MLE fast. (I am not familiar with PyMC or the MCMC frameworks in Python-land, so I have no idea if they could do this, but censoring/gamma aren’t too exotic so I expect they can, and if not, I assume you can call out to JAGS/Stan without much difficulty.)
Since you don’t mention any crazy realtime requirements, other odd requirements that JAGS/Stan couldn’t model, and only needing occasional updates to finetune the model (less than every few seconds, sounds like), this sounds like it would’ve been adequate and way easier.
I did things this way because my applied stats knowledge is almost entirely self-taught, with all the random gaps in knowledge that implies. Thank you for letting me know about Stan and related techs: while it’s hard to tell whether they would have been a better match for my modelling context (which had some relevant weirdnesses I can’t share because confidentiality), they definitely would have made a better backup plan than “halt a key part of your organization for a few days every time you need a new model”. I’ll be sure to look into MCMC next time I deal with a comparable problem.
Perhaps I’m missing background here, but it seems like much of this is caused by the demand for a bespoke max-likelihood solution for exactly gamma Tobit censoring.
I’m not entirely surprised if it’s not off-the-shelf, but then why not use some modeling framework? Both JAGS and Stan support censored/truncated data and also gamma distributions (I know because I’ve used all 4), so I would expect you could write down the censored model easily and turn the crank. Somewhat more exotically, the DL frameworks like Jax are underappreciated in how broad their autodiff support is and how they can implement stuff like SEMs no sweat. If you really need a MLE, you can either use flat priors & pretend that’s the MLE, or save compute & use Stan’s optimization routines to get the mode/MLE fast. (I am not familiar with PyMC or the MCMC frameworks in Python-land, so I have no idea if they could do this, but censoring/gamma aren’t too exotic so I expect they can, and if not, I assume you can call out to JAGS/Stan without much difficulty.)
Since you don’t mention any crazy realtime requirements, other odd requirements that JAGS/Stan couldn’t model, and only needing occasional updates to finetune the model (less than every few seconds, sounds like), this sounds like it would’ve been adequate and way easier.
(Typo: ‘Cornelis’.)
I did things this way because my applied stats knowledge is almost entirely self-taught, with all the random gaps in knowledge that implies. Thank you for letting me know about Stan and related techs: while it’s hard to tell whether they would have been a better match for my modelling context (which had some relevant weirdnesses I can’t share because confidentiality), they definitely would have made a better backup plan than “halt a key part of your organization for a few days every time you need a new model”. I’ll be sure to look into MCMC next time I deal with a comparable problem.
Fixed, thank you again.