什么是泊松回归?适用于什么场景?
简化版
泊松回归是针对非负整数计数的广义线性模型,设 Y|X ~ Poisson(μ),并用 log μ = Xβ 保证期望计数为正。系数 exp(β_j) 表示其他变量不变时,特征增加 1 单位带来的期望计数或发生率倍数。若不同样本的观察时长、人口或曝光量不同,应加 log(exposure) 作为系数固定为 1 的 offset,比较单位暴露率。标准模型要求条件均值等于条件方差;明显过度离散可考虑负二项或稳健标准误,结构性零很多时再根据生成机制考虑 hurdle 或零膨胀模型。
详细版
基本形式为:
Y_i | x_i ~ Poisson(μ_i)
log μ_i = β₀ + x_iᵀβ + log e_i
μ_i = e_i · exp(β₀ + x_iᵀβ)
其中 e_i>0 是暴露量。β_j=0.2 时,特征增加 1 单位会让期望发生率乘 exp(0.2)≈1.221,即约增加 22.1%,并非计数固定增加 0.2。
| 数据现象 | 首选检查或模型 | 说明 |
|---|---|---|
| 条件计数、均值方差相近 | 泊松回归 | 基准 GLM |
| 方差明显大于均值 | 负二项、quasi-Poisson 或稳健标准误 | 区分预测分布与仅修正推断 |
| 方差小于均值 | 广义泊松、COM-Poisson 等 | 标准泊松同样不合适 |
| 零来自额外状态 | hurdle / zero-inflated | 必须有生成机制依据 |
| 不同观察机会 | offset | 暴露量系数固定为 1 |
“总体均值约等于总体方差”不是充分诊断,泊松假设说的是给定特征后的条件均值和条件方差相等;还要看偏差残差、Pearson dispersion、零比例与时间/人群切片。
完整版教学
一、泊松回归解决什么问题
目标变量若表示某个窗口内事件发生次数,如一天来电数、一个路口事故数、一次曝光周期内点击数,取值是 0,1,2,...。普通线性回归可能预测负数,且固定方差假设往往不符合“均值越高波动也越大”的计数数据。
泊松回归把计数分布与线性预测器组合起来:给定输入后,计数服从泊松分布;输入通过对数链接决定其均值。自变量可以是连续或类别特征,不要求也是计数。
二、模型形式与对数链接
标准模型写成:
P(Y_i=y_i | x_i) = exp(-μ_i) μ_i^(y_i) / y_i!
log μ_i = β₀ + x_iᵀβ
对数链接有两点作用:μ_i=exp(β₀+x_iᵀβ) 始终大于 0;线性预测器中的加法效应转成发生率的乘法效应。泊松负对数似然(忽略与参数无关项)为:
L(β) = Σ [μ_i - y_i log μ_i]
它不是对计数做 log(y) 后再用 OLS。后者无法自然处理 y=0,误差模型和回变换偏差也不同。
三、系数如何解释
若 β_j=0.2,其他变量固定,x_j 增加 1 时:
μ_new / μ_old = exp(β_j) = exp(0.2) ≈ 1.221
因此期望计数提高约 22.1%。若 x_j 是“是否节假日”的 0/1 指标,exp(β_j) 是节假日相对非节假日的计数率比。连续变量单位太小时,可以解释增加 10 单位的倍数 exp(10β_j)。
置信区间也应在指数变换后解释为率比区间。该解释是给定模型和其他协变量后的条件关联,不自动代表因果效应。
四、为什么暴露量必须作为 offset
门店 A 观察 10 天发生 20 次事件,门店 B 观察 100 天发生 80 次。原始计数看 B 更高,但日均率分别是 2 和 0.8。把观察天数记为 e_i:
log μ_i = log e_i + β₀ + x_iᵀβ
μ_i / e_i = exp(β₀ + x_iᵀβ)
log e_i 是 offset,系数固定为 1,不是让模型自由估计的普通特征。暴露量可以是人年、设备运行小时、页面曝光次数等。必须满足 e_i>0;零暴露却有正计数通常意味着口径错误,不能为避免 log(0) 随手加一个小常数。
若怀疑事件数与暴露量并非成比例,可把 log e_i 作为可估系数做敏感性分析,但这时模型含义已变化,需要业务依据。
五、均值等于方差到底是什么意思
泊松分布满足:
E[Y_i | X_i] = Var(Y_i | X_i) = μ_i
这是条件关系。把高风险和低风险人群混在一起算总体方差,异质性本身就会让总体方差大于总体均值,不能仅据此拒绝模型。应先纳入合理协变量,再检查 Pearson dispersion:
φ̂ = Σ Pearson残差² / 残余自由度
φ̂ 显著大于 1 提示过度离散,显著小于 1 提示不足离散;阈值需结合样本量和模拟/残差诊断,而不是机械用一个固定数。
六、过度离散、零膨胀和模型选择
过度离散可能来自遗漏异质性、事件相关、聚类、错误 offset 或真正的额外随机效应。不同修复解决的问题不同:
- 负二项回归:引入额外离散参数,让方差大于均值,适合未观测异质性形成的重尾计数。
- 稳健/聚类标准误:主要修正系数推断,不会让泊松预测分布获得更宽的尾部。
- quasi-Poisson:估计均值和离散度,可修正标准误,但不是完整概率分布,不能直接按普通似然比较 AIC。
- hurdle 模型:先建模是否为零,再对正计数建截断计数分布,适合“是否发生”和“发生几次”是两阶段过程。
- zero-inflated 模型:假设存在结构性零状态与普通计数状态;零多并不足以证明这种潜在机制。
不足离散时,负二项不是答案,可考虑 COM-Poisson、广义泊松或重新审视数据生成过程。
七、拟合后的诊断与验证
除了平均损失或 deviance,还要检查:
| 检查 | 能发现什么 | 注意事项 |
|---|---|---|
| 偏差/Pearson 残差 | 系统性失配、极端计数 | 按拟合值、时间和人群画图 |
| dispersion | 条件方差失配 | 先确认自由度与聚类结构 |
| 预测零比例与尾部分位数 | 零和大计数拟合 | 用后验预测/留出集比较 |
| 时间外 deviance | 泛化与漂移 | 保持计数窗口和 offset 口径一致 |
| 校准分组 | 预测总数是否匹配实际 | 同时看率与总量 |
数据若按用户、门店或时间重复观测,独立性不成立,可使用聚类标准误、随机效应或 GEE。交叉验证也应按实体或时间切分,防止同一主体泄漏到训练与验证。
不要因零很多就直接上零膨胀模型。先确认普通泊松/负二项在给定协变量和暴露量后预测多少零,再判断是否有额外的零生成机制。
八、常见误区与追问
上线时固化计数窗口、标签迟到规则、暴露量定义和单位。监控预测总量、单位暴露率、零比例、尾部计数、offset 分布及分群残差;若曝光埋点改变,模型率会被系统性扭曲。
- 误区:泊松回归要求所有输入都是整数。 只有目标是计数,自变量可连续、类别或变换后取值。
- 误区:把
log(y+1)做 OLS 就等于泊松回归。 两者的似然、零值处理和预测回变换都不同。 - 误区:总体均值不等于总体方差就一定不能用。 应检查给定特征后的条件离散与残差。
- 追问:能预测非整数吗? 模型输出的是期望计数
μ,可以是 2.7;若要生成计数,再从预测分布采样。 - 追问:什么时候用 offset,什么时候用样本权重? offset 调整期望计数与暴露量的比例;权重表示观测贡献或频数,语义不同。
- 追问:泊松回归能处理率吗? 可以通过计数目标加暴露 offset 建模发生率,不应把噪声很大的经验率直接当同方差连续目标。
九、加强记忆
记住“计数—log 链接—暴露 offset—条件离散”:Y|X~Poisson(μ),log μ=Xβ+log e,所以 exp(β_j) 是发生率倍数,e 是观察机会且系数固定为 1。诊断的是条件均值与条件方差,不是只看总体统计;过度离散先查遗漏异质性和聚类,再比较负二项等方法,额外零生成机制有证据时才用 hurdle 或 zero-inflated。最终必须在保持时间窗与 offset 口径的留出数据上验证率、总量、零和尾部。