Open avehtari opened 6 years ago
We can do this, but we need to do it today / tomorrow to make it into the next rstanarm release. Some questions:
stan_clogit
for which the intercept is not identified?We can do this, but we need to do it today / tomorrow to make it into the next rstanarm release
That might be too hasty. It's enough that it gets released before Regression book is out.
Good questions.
If the user takes the intercept out of the model, does it still make sense to do a baseline model with only an intercept.
I'm fine with zero intercept in that case.
Similarly, what should we do about stan_clogit for which the intercept is not identified?
If there is no logical baseline, then we can decide not to report this. My thinking is that we just want to show the user if the covariates don't have any predictive power and give some scale for elpd.
I guess we should also have classification accuracy for binomial models?
Maybe, but if N is large I'm not sure if that's easily interpretable. Have you seen that used?
For the "intercept only" models, what do we do about nuisance parameters in the negative binomial, Gamma, inverse Gaussian, etc. cases?
For Gaussian case in the example, I used p(mu,sigma) \propto 1/sigma, although better would be use a conjugate prior close to default rstanarm prior. Conjugate so that we can get quick default. If there is now conjugate prior, I would use MAP estimate. We can even use lm estimates. These should be quite stable for "intercept only" or "zero intercept" models unless n is really small. We can have a threshold, and show NA if n is too small.
I'm fine with zero intercept in that case
How can the baseline have zero intercept if the only thing in the model is the intercept? I think if the user fits a model without an intercept the baseline that typically makes sense is still y~1
How can the baseline have zero intercept if the only thing in the model is the intercept? I think if the user fits a model without an intercept the baseline that typically makes sense is still y~1
ok
Actually now that I think more about it I'm not so sure! We should probably discuss this in a meeting at some point.
Are you still looking for a hand on this?
I'd be happy to work on it, but would want a little guidance on the things that are unresolved in the discussion above. Here's an attempt at summarizing things since it seems like this issue hasn't been looked at in a bit:
Things that Aki proposed that no one seemed to object to:
Things that seem to be under discussion:
y~1
initially, then said he wasn't sure, Aki had suggested intercept 0, which is confusing to me.I can get started with 1/2 without more input. 3/4 just seem like a decision to be made before it'd be implemented. 5 seems the most complicated, and potentially a bit fiddly depending on the final solution chosen, so that'd be where I'd need the most clarification.
Are you still looking for a hand on this?
Sure!
Do you want classification accuracy for binomial? Ben asked, Aki wasn't sure.
I'm fine adding it, and I can interpret it, but do people use this?
If the user takes an intercept out of the model, what's the baseline? Jonah said y~1 initially, then said he wasn't sure, Aki had suggested intercept 0, which is confusing to me.
I now think y~1 makes sense.
For the intercept only models, how to deal with nuisance params? Aki's suggested solutions were conjugate priors (for speed), close to the rstanarm default priors, and MAP and/or lm estimates. (If I understood him correctly).
Yes.
@andytimm Thanks for the offer, that'd be great! I think y~1
like Aki said is fine for the baseline. Let us know if you have other questions that would help you get started or questions as you make progress.
Summary:
Currently loo object from rstanarm::loo shows elpd_loo, p_loo, looic and SEs for those. Add more model specific and easier to interpret info.
Description:
Example code using earnings data (not really good example for loo with n>>p, but has both bernoulli and normal example)