Add MRP model - #6
Conversation
|
@velochy do you want to tweak this model just a bit. Right now it's maybe too simplified in that the mu is broadcast across the softmax axis and is therefore useless, so all priors are disconnected from the likelihood. For perf benchmarking it didn't matter but it would for benchmarking samplers. |
|
Yeah... it went a bit too far with the simplification. We use stereotype regression for likert-scale responses, but it streamlined it out to just a linear model that cancels out. Instead of it should have Or, if you want to be more standard, use either OrdinalProbit or OrdinalLogistic which is likely what most other people would put there (but they are both much less expressive). |
6fe05e2 to
2e4c400
Compare
|
@velochy does it look good now? The updated version still had the same performance delta from jax (and benefit from the patches) |
| off = pm.ZeroSumNormal(f"a_{name}", sigma=1.0, shape=(levels, G), n_zerosum_axes=1) | ||
| mu = mu + (sd * off)[idx] | ||
| intercept = pm.Normal("intercept", 0.0, 1.0, shape=(G,)) | ||
| mu = mu + intercept[None, :] # (N, G) latent rating |
There was a problem hiding this comment.
To nitpick, for stereotype regression, intercept creates a redundant DoF, so it's best to remove it.
In practice, having tried fitting this model with and without, it makes almost zero difference. But still, if it's in your model library, its probably better if it is "clean"
2e4c400 to
3daed2a
Compare
No description provided.