4. 价格方差定义:统计学方差公式在采购价格中的应用,价格波动系数与异常阈值设定
4.1 从统计学方差到采购价格方差
在采购风控场景中,价格方差并非简单的数学套用,而是经过品类归一化与时间窗口对齐后的离散度度量。其核心目的是量化同一品类下,不同采购订单(PO)单价相对于品类均值的偏离程度,从而为越权采购、围标串标、价格异常提供量化依据。
核心公式: 采购价格方差 σ² = Σ (Pᵢ − μ)² / N
其中:Pᵢ = 第 i 笔订单的单价(经单位归一化);μ = 该品类在时间窗口内的加权平均单价;N = 有效订单笔数(剔除缺失值与明显录入错误)。
其中:Pᵢ = 第 i 笔订单的单价(经单位归一化);μ = 该品类在时间窗口内的加权平均单价;N = 有效订单笔数(剔除缺失值与明显录入错误)。
4.2 价格波动系数(CV)与异常阈值设定
方差本身受量纲影响,不同品类的价格基数差异巨大(如螺丝 vs 服务器)。因此引入价格波动系数(Coefficient of Variation, CV),实现跨品类可比性:
| 指标 | 公式 | 含义 | 阈值参考 |
|---|---|---|---|
| 价格方差 σ² | Σ(Pᵢ − μ)² / N | 离散程度 | 品类内自定义 |
| 标准差 σ | √σ² | 与均值同量纲的离散度 | — |
| 价格波动系数 CV | σ / μ × 100% | 相对离散程度(无量纲) | ≤10% 正常;10%~30% 预警;>30% 异常 |
实战经验: 对于标准品类(如办公用纸、MRO备件),CV 阈值建议设为 ≤15%;对于定制化品类(如非标模具、咨询服务),CV 阈值可放宽至 ≤30%。超出阈值的订单自动进入越权采购排查队列。
4.3 价格方差清洗流程(SVG 流程图)
下图展示了从原始采购订单到价格异常标记的完整清洗链路,其中方差计算与 CV 判定是核心决策节点:
4.4 异常阈值设定的三种策略
阈值设定不能一刀切,需结合品类特性与业务容忍度。以下三种策略在实际项目中组合使用:
- 统计分布法: 假设价格服从正态分布,以 μ ± 2σ 或 μ ± 3σ 作为上下限。适用于订单量大、价格稳定的标准品类。
- 百分位数法: 取 P5(第5百分位)和 P95(第95百分位)作为阈值边界。适用于偏态分布明显的品类,如工程服务、咨询类。
- 动态滑动窗口法: 按最近 90 天或 180 天的滚动窗口重新计算 μ 和 σ,适应市场价格波动。适用于原材料、大宗商品等价格敏感品类。
避坑提醒: 切勿直接使用全局方差阈值。不同品类的价格基数差异可达 1000 倍以上,必须先用 CV 做无量纲化处理,再按品类分组设定阈值。否则高单价品类会掩盖低单价品类的异常波动。
4.5 价格方差清洗规则清单
| 清洗步骤 | 规则描述 | 输出字段 |
|---|---|---|
| Step 1 | 剔除单价为 NULL、0 或负数的订单 | valid_flag = 1/0 |
| Step 2 | 按品类编码 + 单位(如个/箱/吨)分组,单位不一致时先转换 | unit_normalized |
| Step 3 | 计算分组内加权均值 μ(按订单金额加权) | mean_price |
| Step 4 | 计算每笔订单的离差平方 (Pᵢ − μ)² | squared_dev |
| Step 5 | 计算分组方差 σ² 与标准差 σ | variance, stddev |
| Step 6 | 计算价格波动系数 CV = σ / μ × 100% | cv_pct |
| Step 7 | 按品类阈值标记异常等级:正常/预警/异常 | price_anomaly_level |
4.6 价格方差与越权采购的关联逻辑
价格方差本身不直接证明越权,但它是越权采购排查的重要前置信号。当某笔订单的单价偏离品类均值超过 2 个标准差(即 |Pᵢ − μ| > 2σ),且该订单的采购人、供应商或品类不在其授权范围内时,系统自动触发越权嫌疑标记。方差越大,越权采购的排查优先级越高。
实战案例: 某企业 MRO 品类 CV 长期维持在 8%~12%,某月突然飙升至 45%。经排查,发现某采购员越权采购了非授权品牌的高价备件,单价超出品类均值 2.8 倍。价格方差清洗规则成功捕获该异常,避免了 23 万元的超额支出。