How to parameterize and identify an IRT 2-PL model? (pymc-bot test)

That is a lot better. Even though it’s not perfect, the explanations are generally good. And then it has some LLM quirks of inconsistency. After describing the right thing to do (giving the ability parameters a standard normal prior), it then describes the wrong thing to do in the description (affine transform of ability parameters), then turns it around and does the right thing in the code.

It’s right about soft identification, but wrong that it’s usually sufficient for these models. I chose this form of model exactly because the soft identification is problematic with so much non-identifiability in the raw likelihood. These models fit way better with sum-to-zero constraints, though it’s then harder to generalize to new groups (here new students or new questions).

It turned off SBC in the output, but it wrote a function to do it that has the right overall skeleton. I don’t speak Python and PyMC well enough to read this quickly, but the doc comments are on the right track.