easystats / easystats/performance
R-squared for Dirichlet regression (`r2`)
Nobody has claimed this yet.
- Dominant language
- R
- Stars
- 1.2k
- Forks
- 109
- Avg merge
- 6h 34m
- Merged PRs (30d)
- 8
Description
Hi! First of all, thank you for creating and maintaining this package!
I have come across an unexpected behaviour when applying r2() to Dirichlet regression fitted with the DirichletReg package. In short, the Dirichlet regression extends the beta regression to C categories: bounded responses (0, 1) across more than 2 categories. This regression comes in two parametrizations: common (a separate model is fitted to each of the C categories) vs alternative (a separate model is fitted to C-1 categories, and precision is modelled separately). Each model can use a different set of explanatory variables, separated by pipes |.
r2() appears to return Nagelkerke's R2, but the value is very high for models with the alternative parametrization. For instance, a value close to 0.9, when the squared correlation between fitted and observed values is no higher than 0.75 for any category. The value for a model with the common parametrization is more sensible (i.e. in line with the correlations between fitted and observed values). I suspect this has to do with how a null model is declared, based on comparisons with MuMIn::rsquaredLR(). A reproducible example is available in an issue over at the DirichletReg package.
https://github.com/maiermarco/DirichletReg/issues/12
I am not an expert, so perhaps the r2 values actually make sense. The analysis of proportions across categories is quite interesting, and given a recent review (https://besjournals.onlinelibrary.wiley.com/doi/full/10.1111/2041-210X.13234) its popularity might increase in ecology and evolution. If performance can work with such models it would be a very useful extension!
Thank you!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the r2() handling for DirichletReg models and review the reproducible example in DirichletReg issue 12. Compare the common and alternative parametrizations with MuMIn::rsquaredLR(), focusing on how the null model is declared. Done means determining whether the reported values are correct and, if needed, supporting Dirichlet regression with validated R-squared results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100