在风控与增长业务中,常常需要把若干个互不影响的概率事件各自的收益加总,来观察总收益的波动规律。由于事件独立,单个收益分布已知时,聚合收益的分布可以通过数学方法推导,并用于区间预测与资源调度。
一、问题定义与基本性质
设存在 n 个独立事件,第 i 个事件收益为随机变量 X_i,其分布为 P(X_i = x_{i,j}) = p_{i,j}。聚合收益 S = X_1 + X_2 + ... + X_n。独立情形下,期望满足线性:E(S) = ΣE(X_i),方差 Var(S) = ΣVar(X_i)。但分布形态需通过卷积获得。
1.1 离散卷积求分布
两个独立离散变量和的分布为卷积:P(X+Y = k) = Σ P(X = i) P(Y = k-i)。依次迭代可得 S 的分布。
1.2 正态近似
当事件数较多且单事件方差有限时,由中心极限定理,S 近似服从 N(E(S), Var(S)),可用于快速预测。
二、建模与预测代码实现
下面以 Python 为例,演示卷积计算与正态近似对比。
import numpy as np
from scipy import stats
# 定义两个独立事件的收益分布
# 事件A: 收益0概率0.6, 收益10概率0.4
dist_a = {0: 0.6, 10: 0.4}
# 事件B: 收益0概率0.7, 收益5概率0.3
dist_b = {0: 0.7, 5: 0.3}
def convolve(d1, d2):
# 离散卷积计算两个独立变量和的分布
res = {}
for k1, p1 in d1.items():
for k2, p2 in d2.items():
s = k1 + k2
res[s] = res.get(s, 0) + p1 * p2
return res
# 聚合收益分布
dist_s = convolve(dist_a, dist_b)
print('精确分布:', dist_s)
# 期望与方差
ea = sum(k*v for k,v in dist_a.items())
eb = sum(k*v for k,v in dist_b.items())
va = sum((k-ea)**2 * v for k,v in dist_a.items())
vb = sum((k-eb)**2 * v for k,v in dist_b.items())
es = ea + eb
vs = va + vb
# 正态近似预测 P(S<=10)
approx = stats.norm.cdf(10, loc=es, scale=np.sqrt(vs))
print('正态近似 P(S<=10):', approx)
三、误差与适用建议
| 方法 | 优点 | 局限 |
|---|---|---|
| 精确卷积 | 结果无偏差 | 事件多时计算量大 |
| 正态近似 | 计算快易预测 | 小样本偏度大时误差高 |
实践中可先以卷积验证小模型,再在大样本用正态近似做实时预测。注意独立假设必须成立,否则方差公式与卷积逻辑失效。
建模核心:期望可加,分布需卷积;样本足够,正态兜底。
四、总结
独立概率事件聚合收益的建模,本质是利用独立性做分布卷积,并在规模上升时借中心极限定理简化预测。掌握上述方法,能更稳健地评估总收益风险。