-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test for inference correctness #236
Comments
The basic idea here is that we can In a forward pass:
In the back pass we run the inference to generate our MCMC chain(s) Then we need to decide if the ensemble ContextIn What we've gone for here is 1) A more rigourous but compute intensive approach is simulation based calibration (SBC):
This does what we did above, but instead of thresholding (which is usually a bit arbitrary/heuristic), the user creates an ensemble of posterior draws across multiple inferences where the "true" parameters are drawn from the prior to repeatedly create new datasets to run inference upon. The consistency of Bayesian inference implies that if the posterior draws are correct in distribution then this ensemble of posteriors should recover the priors: and you can check if they do or not. |
@SamuelBrand1 Just wondering what kind of issues (if any) you have caught in EpiAware because of this testing and what kind of fixes they required. |
You can get identifiability issues which ended up causing fails in practise (in theory you should eventually just have some horrible posterior) between neg binomial dispersion param and std params of latent processes. For example, if you are saying the underlying infections are some process (not a Renewal) with a delay on it then how much is "wiggliness" in the data reflecting "wiggliness" in the process vs observational noise? That was sufficiently annoying that for CI we ended up using a Poisson link |
@SamuelBrand1 I made this issue based on our discussion in the 2024-12-13 developer meeting. Please add more details.
The text was updated successfully, but these errors were encountered: