收入预测
收入预测
收入是多种因素相互作用的结果:内容/产品供应,用户行为,价格和促销,外部条件(假期,体育活动,货币汇率,监管变化)。可靠的预测不是一个"模型",而是受控的轮廓:定义→数据→模型→情景→操作→对账→改进。
1)任务设置
预计为:毛收入(GGR),净收入(Net),奖金/佣金后的收入,基本货币和本地货币。
地平线/步骤:每日/每周/每月;用于计划票房缺口-白天,预算-月/季度。
预测单位:品牌×国家×平台×渠道(最低),然后在层次结构上达成一致。
目的:预算编制,流量/内容采购,基础设施限制,财务契约。
错误价格:过度疲劳(错过需求/不适应)与过度疲劳(不必要的采购/重新安排)。
2)定义并与财务回路保持一致
公式:GGR,Net,扣除(税收,奖金,Athiliate佣金)-在语义层中转换。
日历:UTC存储+本地视图;假日/工资日;体育赛程(如果相关)。
外汇政策:汇率来源,转换日期(交易日期/期中汇率),单一基准货币。
对账:与会计的强制性重新分配程序(在允许的范围内存在差异)。
3)对司机的收入解构
基本公式为:[
\text{收入}=\text {流量}\times\text {转换}\times\text {频率}\times\text {Middle Check}
]
流量/活动:用户/会议/登录。
转换:付费的比例,CR到目标事件。
频率:支付期/支付期的交易数量。
平均支票:平均交易金额(考虑奖金/折扣)。
建议分别预测驱动程序,然后收集复合材料以查看因素的贡献(计划-事实桥)。
4)数据和回归器
时间序列:按预测单位计算的白天/周总量。
X回应器:- 促销/奖金(强度、类型、覆盖范围);
- 营销成本/压制/点击;
- 内容内容(版本,锦标赛,主要比赛);
- 价格/限额/目录变动;
- FX/通胀,天气/日历(如果受到影响);
- 监管事件(限制/解冻)。
- 异常/单次关闭:标记,不要默默地"平滑"。
- 缺失:仅使用预测时可用的信息。
5)建模
5.1个Beislines
Naive/Seasonal Naive/Drive-诚实评估是强制性的。
5.2经典行列
ETS/ARIMA/SARIMA,TBATS(多季节),Prophet(假期快速开始)。
5.3 Repressors
ARIMAX/ETS+X,日历动态回归和促销/FX。
5.4多叙利亚/表格
LightGBM/XGBoost/带有滞后/窗口/日历的线性;
投资组合和长X的节奏NN(TFT,N-Beats)。
5.5概率
量子回归(pinball),Student-t/Gaussian预测,区间量子集合(q10/q50/q90)。
5.6层次结构和匹配
strana→brend→kanal→platforma结构的Bottom-Up/Top-Down/MinT(最佳错误匹配)。
6)具体收入指标
分数/比率(保证金,佣金):分别对分子/分母进行建模,然后进行合成。
互换组件(chargeback,high-roller):Croston/TSB,零注入,带有分量的单个组件。
自相残杀:在推出新促销活动/产品时,模拟各细分市场(多市场模型或受限回归器)之间的流动。
按价格/奖金计算的弹性:用于系数估计的模型日志记录/铜锣估值(DiD/SC),然后是什么。
7)质量评估和背景测试
分割:滚动/外带起源的季节性倍数(周/月)。
级别指标:WAPE/sMAPE(耐零),MAE/RMSE。
概率: pinball loss, coverage 80/95% interval.
稳定性: 细分/假期/频道错误;out-of-time.
徽章规则:模型必须在关键水平上超越Seasonal Naive。
8)情景和不确定性
Quantili: q10/q50/q90 →"悲观主义者/基数/乐观主义者"。
情景X:"无促销/无促销","FX ± 10%","主要活动","监管限制"。
元参数风险:弹性和季节性变化的压力测试。
风险成本:通过有条件的短途计划计划(对低负荷/过重负荷的惩罚是不对称的)。
9)计划事实和因素的贡献(收入桥)
展示桥梁:趋势+季节性+促销+价格/限值+FX+冲击/事件→最终偏差。这增强了信心,并有助于采取行动(增加预算,转移促销活动,改变价格)。
10) MLOps和操作
日程安排:每日预测-T+1至06:00 lock。每周一次,每周一次;每月-T+1/T+3。
工件:fichestor(在线/线下平价),模型注册表,收入公式版本。
监视:WAPE/覆盖窗口,PSI特征漂移,支线延迟,生成SLA。
Alerts:错误增长>阈值、未校准的间隔、层次结构不一致。
失败安全:回滚到ETS/Seasonal Naive;假期高峰时的冻结模式。
滞后:不同的开关阈值,以免出现"闪烁"。
对账:每日/每周与财务报表重新对账。
11)工件模板
A.收入预测护照
KPI: `NET_REVENUE_EUR_v3`
地平线/步骤: 8周/天
单位: 品牌×国家×平台×渠道;reconciliation: MinT
Регрессоры: `promo_spend`, `content_event_flag`, `price_index`, `fx_rate`, `holiday`
模型: "ARIMAX_v2"+"LightGBM_Quantiles_v4"(合奏,q10/50/90)
目标: WAPE ≤ 8%(每日)、coverage 90% interval ≥ 85%
SLO: 06:00后产生≤ 10分钟;数据差≤ 1小时
所有者: 金融与增长分析;修订日期、版本
B.决策就绪报告(骨架)
标题: "收入,8周预测:q10/q50/q90"
风险: 第3周-21%的低血压(预期的shortfall-X-Y)
贡献因素: +假期,+内容活动,− FX, −取消促销活动
建议: 增加A/B国家的促销活动,转移股票,对冲外汇指数
python
1) load y = load_revenue_series(grain=['brand','country','platform','channel'], step='D')
X = load_regressors(['promo_spend','content_event','price_idx','fx_rate','holiday'])
2) features ds = make_lags(y, lags=[1,7,14,28])
ds = add_rolling_stats(ds, windows=[7,14,28])
ds = join_regressors(ds, X)
3) cv cv = rolling_backtest(ds, folds=6, horizon=28, step=7)
4) models m_baseline = ETS(). fit(ds. train)
m_gbm = LGBMQuantiles(q=[0. 1,0. 5,0. 9]). fit(ds. train)
m_arimax = ARIMAX(). fit(ds. train)
5) evaluate & ensemble scores = evaluate([m_baseline,m_gbm,m_arimax], cv, metrics=['WAPE','pinball'])
best = ensemble_quantiles([m_gbm,m_arimax])
6) reconcile & publish f = reconcile_minT(forecast(best), hierarchy=['country','brand','platform','channel'])
publish(f, sla='06:10', owners=['Finance','Growth'])
12)频繁的错误和反模式
在零/低值下使用MAPE:使用WAPE/sMAPE。
平均平均值:聚合分子/分母而不是平均段百分比。
忽略日历/内容/FX:没有回归器,预测将"失明"。
Liki:未来的fichi或火车调整后的事实。
层次结构不一致:总和不收敛→应用重新计算。
没有失败的安全性:模型在假期中"漂浮"。
缺少swerks:预测与管理/buchuchet无关。
13)发行前的支票清单
- 收入和扣除的定义已经商定和确定
- 日历/FX/反应器连接和测试
- Beizlines在反击中被击败;WAPE/覆盖目标已实现
- 校准间距;"悲观主义者/基数/乐观主义者"情景
- 分层预测一致(MinT/Top-Down)
- MLOps:时间表,监控,alerts, fail-safe, runibook
- 与金融监管/会计进行每日/每周对账
- "决策就绪"报告,其中包含一系列因素和建议
底线
收入预测是一致的定义+驱动衰减+概率和分层模型+情景和间隔+纪律严明的MLOps和对账。这样的轮廓使"按计划占卜"成为一种预算规划,营销和运营工具,具有可理解的风险成本和透明的行动。