mattwarkentin / ordered

Bindings for ordinal classification models for use with the 'parsnip' package, such as ordinal random forests by Hornung R. (2020) <doi:10.1007/s00357-018-9302-x> and others.
Other
6 stars 1 forks source link

ordinal_reg model type with polr engine #4

Open corybrunson opened 3 weeks ago

corybrunson commented 3 weeks ago

As a new model type and first and probable default engine, my understanding is that these both need to be defined, using separate make_*() functions. I've drafted both in this fork branch and raise the issue ahead of submitting a pull request.

Should the issue remain open until the entire checklist #3 is completed? If so, then shall we copy the checklist here? (These would be my suggestion.)

(In future, i will raise an issue before doing substantive work, but in this case the work was worth the familiarity-building.)

corybrunson commented 3 weeks ago

Coordination with the rest of Tidymodels is underway in ordinal_reg fork branches of {parsnip} and of {dials}. One tunable parameter is added—the ordinal link function—following the pattern set by the existing survival link function for {censored}.

topepo commented 2 weeks ago

I think that the first thing to figure out is the parameters for ordinal_reg(). For slope/intercept models, there are a few to think about:

Once we settle on these main arguments and their names, then we can populate ordinal_reg() in parsnip and make some engines.

corybrunson commented 2 weeks ago
  1. Some literature i've read refers to these as "classes" (also not a good choice). I would slightly prefer "formulation" because (a) it avoids "model" and (b) it evokes "formula", but "odds_model" might be easier for users to recognize for what it is. Wurm &al characterize this as the first part of a composite link function (p. 3), so would it make sense to provide e.g. probability_link or odds_link for this choice and ordinal_link for the elementwise link function? I don't know if that characterization extends to all ordinal regression models.
  2. Is there a package that gives control of the proportionality assumption to the user? I may have missed it.
  3. This is named ordinal_link in my fork branch of {dials}, by analogy to survival_link.
  4. Wurm &al describe a coupling between parallel and non-parallel forms of each of their ordinal models (p. 2–3). My inkling is that this should be suppressed / not be exposed in {parsnip} because the non-parallel forms are not specific to ordinal regression.