实证方法教程 / poisson_nb

Poisson / 负二项计数

因变量不是连续正态时,不再硬套 OLS

这节课解决什么当因变量是二元、多分类、计数、审查、截断或选择性样本时使用。
先准备哪些变量因变量 / 核心解释变量
会看到哪张表poisson_nb_results.csv
论文里怎么克制解释正文优先给可解释的边际效应或预测变化,而不是只贴 latent-index 系数。

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

实际输出表

这张表是本方法页配套案例的输出结果,用来把前面的公式、变量口径和代码对应到实际数字。

模型系数标准误NLogL过度离散 alpha 或 GoF p
Poisson 0.2910 0.0199720-1121.543 1.0000
NegBin 0.2910 0.0199-1121.543 0.0000

案例图

这是一张由同一份案例数据生成的页面内诊断图。

Poisson / 负二项计数 的共用案例输出图。
Poisson / 负二项计数 的共用案例输出图。

论文里怎么写

本文在共用企业面板样本上报告Poisson / 负二项计数,核心输出见 poisson_nb_results.csv。结果解释时同时关注样本口径、变量构造、系数方向、标准误和适用前提,避免只凭单个 p 值完成方法选择。

检查清单

  • 先比较均值和方差,过度离散明显时负二项比 Poisson 更合适。
  • 计数模型解释的是条件均值的指数变化,不是普通线性变化。
  • 零值过多时要考虑 ZIP/ZINB 或 hurdle,而不是只换稳健标准误。

返回教程库 · 查看共用案例