Made a notebook to demonstrate truncated regression in PyMC3 https://github.com/drbenvincent/pymc3-demo-code/blob/master/truncated_regression_pymc3.ipynb

Very open to corrections/pull requests.

Made a notebook to demonstrate truncated regression in PyMC3 https://github.com/drbenvincent/pymc3-demo-code/blob/master/truncated_regression_pymc3.ipynb

Very open to corrections/pull requests.

5 Likes

Wow @drbenvincent! This is a very clean notebook. One of the few that can be understood without comments. Great work!

1 Like

This is indeed very clear. Thanks for sharing.

1 Like

This is really nice and I can see what happened intuitively. Can anyone provide an explanation of why truncating the likelihood leads to a better model? If there are no data points outside the truncation bounds, then shouldnâ€™t the log-likelihood of the existing points be the same whether itâ€™s truncated or not?

1 Like

Using a normal likelihood function on truncated data would lead to bias in the estimate of `mu`

. So by using a truncated normal, you are expressing your knowledge that the chance of observing data outside of the bounds is zero, which allows the estimate for `mu`

to â€śexpectâ€ť the cutoff and so the `mu`

estimate wonâ€™t be biased. Does that make sense?

Based on this Help with Censored Regression I think that this example is wrong. It uses `TruncatedNormal`

which it seems is inappropriate for truncated data .

Looks like using Bounds is appropriate in the context of truncated dataâ€¦ Seeking advice here Truncated observed data?