Open jeffreyhanson opened 4 months ago
Thanks very much Jeff! I like that idea a lot. A 'silver" standard for problems with lots of pu's would be really great to have.
Regarding the function inputs I do like this idea "if a user inputs a single number then treat it as the number of desired increments, and if the user inputs a vector with multiple values then treat them as the desired budget increments" I don't think that would be too confusing.
Also agreed on higher ranks should be higher importance.
No concerns from my end.
Awesome - thanks @ricschuster!
We could try some clever implementation where the user has to be explicit about what the values mean, e.g., where add_rank_importance(n = XXX)
or add_rank_importance(budgets = XXX)
will work, but add_rank_importance(XXX)
will throw an error. I think some dplyr functions do this.
We could try some clever implementation where the user has to be explicit about what the values mean, e.g., where
add_rank_importance(n = XXX)
oradd_rank_importance(budgets = XXX)
will work, butadd_rank_importance(XXX)
will throw an error. I think some dplyr functions do this.
That is a great way to implement this!
This feature proposal is to make it easy for users to generate rank importance measures (similar to Figure XX in https://doi.org/10.1038/s41559-021-01528-7). I would call this the "silver" standard approach for calculating importance measures for budget-limiterd prioritizations (with the "gold" standard being the replacement cost method). Although this new method won't be as informative as the replacement cost method and only work with one management zone, this will scale to much larger problems than the replacement cost method.
In terms of function inputs, I think the user would need to input either (1) a problem, a solution, and a series of budget increments, or (2) a problem, a solution, and an integer specifying the number of budget increments. I'm not sure what would be better? Option 1 offers more flexibility, but option 2 is probably what the vast majority of users would want. Maybe we could do something clever, e.g., if a user inputs a single number then treat it as the number of desired increments, and if the user inputs a vector with multiple values then treat them as the desired budget increments? Or maybe that would be confusing?
How does that sound? Any one have any suggestions, ideas for refining this, or concerns?
Here's a reprex showing how the ranks could be generated for a given problem. Note that although the example below has ranks such that lower values are more important, we would want to modify this so that ranks with higher values are more important to follow conventions with the other importance methods in prioritizr.