如何基于历史百分比分配数值 解决分配总和未达100%目标问题
基于历史百分比分配总数值的最优方案
你遇到的总和无法匹配总目标的问题,本质是百分比四舍五入带来的精度误差,可采用业界通用的最大余数法解决,是当前场景下的最优方案,操作步骤如下:
- 第一步:不提前对历史百分比做四舍五入,直接用保留了全量精度的原始占比计算每个月的分配基数,计算公式为
单月分配基数 = 总目标值 * 单月原始历史占比,占比建议保留至少6位小数避免精度损失 - 第二步:将所有单月分配基数向下取整得到初始分配值,计算初始分配值总和与总目标5000的差值,通常该差值不会超过你参与分配的月份总数
- 第三步:将差值以1为单位,按单月分配基数小数部分从大到小的顺序,依次给对应月份的初始分配值加1,直到差值全部消耗完毕
该方案的优势是所有分配项和原始计算值的误差都不会超过1,误差分布最均匀,不会出现单值偏差过大的问题。
如果对分配精度要求不高,也可以用简化方案:先计算前N-1个月的分配值并四舍五入,最后一个月的分配值直接取 5000 - 前N-1个月分配值总和,操作更便捷但误差会集中在最后一个月。

内容的提问来源于stack exchange,提问作者Aahi
相关产品推荐
相关产品推荐

