需求预测的算法

LN 使用以下算法根据历史需求计算需求预测

计算的主要步骤如下:

  1. 检索需求历史记录。
  2. 检查需求历史记录。
  3. 确定趋势因子。
  4. 确定季节性方案。
  5. 预测需求。
  6. 计算预测误差和季节相关性。
  7. 将需求预测转换至计划期段。

在以下各部分中将说明每一计算步骤。

1. 检索需求历史记录

需求预测以方案的起始日期与当前计划期段之间的时期内的历史需求数据为依据。

历史需求数据由物料主计划 (cprmp2101m000) 进程或渠道主计划 (cpdsp5130m000) 进程中的以下字段组成:

  • 计划生产收货量
  • 内部交货量 (*)

(*) 表示仅当选中物料计划数据 (cprpd1100m000) 进程中的相关需求预测复选框时才将其考虑在内。

LN 依据方案 (cprpd4100m000) 进程中的预测期长度字段将当前主计划中的需求历史记录从计划期段转换至固定长度的预测期段。 请参阅在日历天数内分配主计划数量

为非工作日调整

LN 利用假期等非工作日的假想需求增加实际需求,以防止出现需求波动。 假想需求等于预测期段内的平均需求。

物料的企业单元的日历(请参阅物料计划数据 (cprpd1100m000) 进程)将定义哪些天是工作日。当需求预测被转换回计划期段时,LN 会反转计算的最后一步中的调整过程。

2. 检查需求历史记录

LN 在检索计划物料的可用需求历史记录之后,会检查需求历史记录是否足以执行需求预测。LN 将从具有实际需求的第一期段开始计算预测期段,直至当前期段。

最小预测期段数的标准取决于应用的预测方法和季节性周期。 如果历史记录数据不足,LN 将终止需求预测计算并报告原因。

3. 确定趋势因子

趋势因子的确定取决于下列因素:

  • 趋势变化类型
  • 季节性变化类型

这些参数位于按计划物料列出的预测设置 (cpdsp1110m000) 进程中。

注意

本文的以下部分假定清除了自动更新预测参数复选框。 稍后将说明自动更新预测参数的作用。

线性

如果趋势变化类型字段为线性,则可以通过以下公式描述趋势变化:

 FD(t) = CS + TF *	t 

其中 CS = 固定需求 TF = 趋势因子 FD(t) = 期段 t 的需求预测

LN 通过多项式回归根据一阶项计算趋势因子 (TF) 和固定需求 (CS)。 请参阅多项式回归原理。 如果存在季节性周期,LN 将根据整数个季节性周期确定一阶项。

递增

如果趋势变化类型字段为递增,则可以通过以下公式描述趋势变化:

 FD(t) = BS * (TF ^ (t-1)) 

其中 BS = 基本需求(期段 1 的估计需求)TF = 趋势因子 FD(t) = 期段 t 的需求预测

LN 通过以下计算确定趋势因子 (TF) 和基本需求 (BS):

  • 计算以带有需求历史记录的第一个和最后一个期段为依据。 如果存在季节性变化,则选择相隔整数个季节性周期的两个期段。
  • 使用二阶项确定选定期段的估计需求。 LN 将使用多项式回归确定此项。 如果无法确定二阶项,则使用带有需求历史记录的第一个与最后一个期段内的实际需求来代替估计需求。
  • 趋势因子和基本需求的计算方法如下:
[...]
BS基本需求
TF趋势因子
ED(t1)带有需求历史记录的第一个期段内的估计需求
ED(t2)带有需求历史记录的最后一个期段内的估计需求
n需求历史期段数减 1
不适用

如果趋势变化类型字段为不适用,则不使用趋势因子。

注意

LN 将检查是否存在趋势。LN 会报告以下情况,而不实际更改趋势变化类型:

  • 趋势变化类型字段为线性递增,但检测不到趋势。
  • 趋势变化类型字段为不适用,但仍检测到趋势。
自动更新预测参数

如果在按计划物料列出的预测设置 (cpdsp1110m000) 进程中选中自动更新预测参数复选框,LN 将执行自动趋势检测。

如果趋势变化类型字段为线性不适用,LN 将根据线性趋势方法计算趋势因子。 如果发现趋势因子为零,LN 会将趋势变化类型字段设置为不适用

LN 会报告趋势变化类型字段的任何自动更改。

4. 确定季节性方案

季节性方案由一系列季节性因子定义: 季节性周期内每一预测期段都有一个季节性因子。

如果在物料订货数据 (tcibd2100m000) 进程的需求季节性方案字段中指定了固定的季节性方案,LN 将依据在执行层定义的季节性因子确定每个期段的季节性因子。 如果需求季节性方案字段为空,LN 将根据按调整趋势的需求历史记录确定季节性方案。

依据需求历史记录确定季节性方案的过程取决于按计划物料列出的预测设置 (cpdsp1110m000) 进程中的以下字段:

  • 季节性变化类型
  • 季节性周期
  • 自动更新预测参数

如果选中了自动更新预测参数复选框,LN 可以自动更新以下字段:

  • 季节性变化类型
  • 季节性周期

季节性因子的计算方法如下:

(1) TD(t) = AV
(2) TD(t) = CS + TF * t
(3) TD(t) = BS * TF ^ (t-1)
(1)没有季节性变化
(2)具有线性趋势变化
(3)具有递增趋势变化
(*)平均需求是按期段列出的历史需求数字的总和,除以带有需求历史记录的期段数。

 

其中,

TD(t)基于趋势的需求
AV平均需求
CS固定需求
BS期段 1 的估计需求
TF趋势因子

 

常数

如果季节性变化类型字段为常数,季节性因子等于实际需求减去根据趋势调整的相关期段平均需求。 其计算方法如下:

 SF(t) = AD(t) -	TD(t) 

其中,

SF(t)期段 t 的季节性因子
AD(t)期段 t 的实际需求
TD(t)期段 t 的基于趋势的需求

 

递增

如果季节性变化类型字段为递增,季节性因子等于实际需求除以根据趋势调整的相关期段平均需求。 其计算方法如下:

 SF(t) = AD(t) /	TD(t) 

其中,

SF(t)期段 t 的季节性因子
AD(t)期段 t 的实际需求
TD(t)期段 t 的基于趋势的需求

 

上述季节性因子作为每个期段的平均季节性因子来计算。

注意

LN 将检查是否存在季节性方案。LN 会报告以下情况:

  • 季节性变化类型字段为常数递增,但检测不到季节性方案。
  • 季节性变化类型字段为不适用,但仍检测到季节性方案。

如果季节性相关因子字段的值至少为 0.8,则假定存在季节性方案。

如果选中了自动更新预测参数复选框,并且存在上述情况之一,LN 将相应更改季节性变化类型字段。

自动更新预测参数

如果选中了按计划物料列出的预测设置 (cpdsp1110m000) 进程中的自动更新预测参数复选框,LN 将执行自动季节性方案检测。

如果季节性变化类型字段为常数不适用,LN 将根据“常数”方案的方式计算季节性方案。 如果未检测到季节性方案,LN 会将季节性变化类型字段设置为不适用

如果季节性变化类型字段为递增,LN 将根据“递增”方案的方法计算季节性方案。 如果未检测到方案,LN 会将季节性变化类型字段设置为不适用

LN 会报告季节性变化类型的任何自动更改。

5. 预测需求

LN 将使用在按计划物料列出的预测设置 (cpdsp1110m000) 进程的预测方法字段中指定的预测方法。

6. 计算预测误差和季节相关性

在预测计划物料的需求之后,LN 将确定以下误差和相关性信息:

  • 平均预测误差
  • 平均绝对偏差
  • 平均相对偏差
  • 标准偏差
  • 季节性相关因子

这些信息会在按计划物料列出的预测设置 (cpdsp1110m000) 进程中显示。

7. 将需求预测转换至计划期段

LN 会将预测期段的计算需求预测从固定期段长度转换至带可变期段长度的计划期段。 (此过程是第一步“检索需求历史记录”的反向过程)。

为非工作日调整

LN 对工作日与非工作日的处理方法不同。 公司日历提供程序的日历将定义哪些天是工作日。 具体来说,这表示如果某日的可用能力为零,将忽略该日的需求预测,以免为公共假日或其它休息日生成需求预测。