Poisson / 负二项计数是什么?
Poisson / 负二项模型回答的是非负计数结果如何随解释变量变化。当因变量是专利数、事故数、论文数或访问次数时,OLS 往往不能反映计数数据的分布特征。
先用一句话理解
把计数模型想成研究“发生了多少次”。专利数不能是 -1,也常常右偏且有很多小值;Poisson 和负二项就是为这种非负计数过程设计的。
什么时候用
| 判断项 | 教科书式判断 |
|---|---|
| 适合用在 | 因变量是非负整数计数,并且研究关心发生次数。 |
| 先不要用在 | 因变量是连续金额、比例、审查结果或二元结果。 |
| 最关键的前提 | Poisson 要求条件均值设定正确;负二项进一步允许过度离散。 |
| 读表顺序 | 先看 Y 是否计数,再看过度离散,再解释发生率比或边际效应。 |
| 论文表述边界 | 系数在 log count 或发生率口径下解释,不是 OLS 单位变化。 |
把它和相近方法分清楚
| 容易混淆的对象 | 怎么区分 | 初学者记法 |
|---|---|---|
| OLS | 把计数当连续变量。 | 简单但可能预测负值。 |
| Poisson | 建模计数的条件均值。 | 均值-方差相等是假设之一。 |
| 负二项 | 允许方差大于均值。 | 适合过度离散。 |
核心直觉和模型公式
计数条件均值
Poisson 模型通常设定:
\[E[Y_i\mid X_i]=\exp(X_i\beta)\]
指数形式保证预测均值为正;系数常解释为发生率的相对变化。
公式里的符号怎么读
| 符号 | 含义 | 在本页怎么理解 |
|---|---|---|
| Y_i | 计数因变量 | 专利数、事故数、次数等非负整数。 |
| X_i | 解释变量 | 影响事件发生次数的变量。 |
| β | log rate 系数 | X 对 log 条件均值的影响。 |
| exp(β) | 发生率比 | X 增加一单位时条件均值的倍率变化。 |
| overdispersion | 过度离散 | 方差明显大于均值。 |
专业使用口径
专业计数模型写法要先判断 Y 的数据生成过程,而不是看到右偏就上 Poisson。
| 口径 | 专业写法 |
|---|---|
| 计数属性 | Y 应是非负次数,不是被审查的连续变量。 |
| 过度离散 | 若方差远大于均值,负二项可能更合适。 |
| 零值 | 零值多不一定用 ZIP,要看是否有结构性零。 |
| 解释口径 | 报告发生率比、边际效应或百分比变化。 |
一步一步做:从问题到结果的五步
| 步骤 | 这一页具体做什么 | 做到什么程度才算读懂 |
|---|---|---|
| 1. 判断 Y 类型 | 确认是否为非负计数。 | 金额和比例不适用。 |
| 2. 看分布 | 均值、方差、零值比例和右偏程度。 | 决定 Poisson/NB/ZIP。 |
| 3. 估计 Poisson | 先建模条件均值。 | Poisson QMLE 可在均值正确时稳健。 |
| 4. 检查过度离散 | 方差远大于均值时考虑 NB。 | 过度离散会影响推断。 |
| 5. 解释发生率 | 用 exp(β) 或边际效应写正文。 | 不要按 OLS 系数解释。 |
结果怎么读:先读口径,再读数字
本页案例读表时,先记住这个口径:Poisson = 0.2910;0.0199。
| 读表顺序 | 本页怎么读 | 不要这样读 |
|---|---|---|
| 先看 Y | 是不是计数。 | 模型必须匹配因变量形态。 |
| 再看离散程度 | 方差是否明显大于均值。 | 过度离散支持 NB。 |
| 然后看 exp(β) | 发生率比更易解释。 | β 本身是 log 口径。 |
| 最后看零值 | 零值是否结构性。 | 零多不自动等于 ZIP。 |
初学者最容易错在哪里
| 误读 | 为什么错 |
|---|---|
| 把连续金额当计数 | 错。Poisson/NB 不是所有右偏变量的默认答案。 |
| Poisson 系数按 OLS 解释 | 错。它是 log 条件均值。 |
| 看到零多就用 ZIP | 不一定。要有结构性零过程。 |
| 忽略过度离散 | 错。NB 或稳健 SE 可能更合适。 |
先看这个案例的结论
- Poisson = 0.2910;0.0199。
- NegBin = 0.2910;0.0199。
- 这些数字来自页面里的结果表;写论文时先解释数值含义,再讨论理论含义。
变量要求和案例口径
| 字段 | 口径 |
|---|---|
| 数据 | CSMAR 风格 A 股企业创新面板 |
| 原始样本 | 196 家上市公司,2015-2020 年,约 1200 个公司-年观测;各方法有效样本以本页输出表 N 为准 |
| 因变量 | patent_count;回归页通常使用 ln(1 + patent_count) |
| 核心解释变量 | dfi_index,数字普惠金融指数;部分案例输出展示的是标准化后的 dfi_index |
| 控制变量 | roa、lev、size、growth、cashflow、tobinq、top1、dual、board、indep、soe、age |
| 输出文件 | poisson_nb_results.csv |
| 角色要求 | 因变量、核心解释变量 |
| 依赖包 | 无额外 Stata 社区包要求 |
实际代码
下面是本页案例里的最小 Stata 代码。它的作用是帮助你看清变量怎么进入模型、结果文件怎么生成,而不是要求你在网页里手动运行。
log using "/root/workspace/empirical-wizard/workspace/1bc26490/analysis.log", replace text
global JOB_DIR "/root/workspace/empirical-wizard/workspace/1bc26490"
set more off
adopath + "/root/ado/plus"
global DATA_PATH "/root/workspace/empirical-wizard/workspace/test_e2e/csmar_innovation.csv"
import delimited "/root/workspace/empirical-wizard/workspace/test_e2e/csmar_innovation.csv", clear case(preserve)
capture confirm global JOB_DIR
if _rc global JOB_DIR "."
quietly duplicates drop
* ── Poisson + Negative Binomial 计数模型 ──
capture noisily poisson patent_count dfi_index roa lev size growth cashflow tobinq top1 dual board indep soe age, vce(cluster stkcd)
local _p_rc = _rc
if `_p_rc' == 0 {
capture local _pb : display %9.4f _b[dfi_index]
capture local _pse : display %9.4f _se[dfi_index]
capture local _pn = e(N)
capture local _pll : display %9.3f e(ll)
capture estat gof
capture local _gof_p : display %9.4f r(p_p)
}
capture noisily nbreg patent_count dfi_index roa lev size growth cashflow tobinq top1 dual board indep soe age, vce(cluster stkcd)
local _nb_rc = _rc
if `_nb_rc' == 0 {
capture local _nbb : display %9.4f _b[dfi_index]
capture local _nbse : display %9.4f _se[dfi_index]
capture local _nbll : display %9.3f e(ll)
capture local _nbalpha : display %9.4f e(alpha)
}
tempname fh
capture file close `fh'
file open `fh' using "$JOB_DIR/poisson_nb_results.csv", write replace
file write `fh' "模型,系数,标准误,N,LogL,过度离散 alpha 或 GoF p" _n
file write `fh' "Poisson,`_pb',`_pse',`_pn',`_pll',`_gof_p'" _n
file write `fh' "NegBin,`_nbb',`_nbse',,`_nbll',`_nbalpha'" _n
file close `fh'
di "Poisson + NegBin 完成"
log close
实际输出表
这张表是本方法页配套案例的输出结果,用来把前面的公式、变量口径和代码对应到实际数字。
| 模型 | 系数 | 标准误 | N | LogL | 过度离散 alpha 或 GoF p |
|---|---|---|---|---|---|
| Poisson | 0.2910 | 0.0199 | 720 | -1121.543 | 1.0000 |
| NegBin | 0.2910 | 0.0199 | -1121.543 | 0.0000 |
案例图
这是一张由同一份案例数据生成的页面内诊断图。

论文里怎么写
本文在共用企业面板样本上报告Poisson / 负二项计数,核心输出见 poisson_nb_results.csv。结果解释时同时关注样本口径、变量构造、系数方向、标准误和适用前提,避免只凭单个 p 值完成方法选择。
检查清单
- 先比较均值和方差,过度离散明显时负二项比 Poisson 更合适。
- 计数模型解释的是条件均值的指数变化,不是普通线性变化。
- 零值过多时要考虑 ZIP/ZINB 或 hurdle,而不是只换稳健标准误。