查看原文
其他

「数」风流人物,还靠泊松回归 | 协和八

张之昊 协和八 2022-06-07

❉说人话的统计学❉

咱们《说人话的统计学》专栏从开始介绍统计建模以来,已经依次介绍了线性回归、二分类逻辑回归、多项逻辑回归、定序回归等几种回归模型。正如我们已经着重指出过的,这几种回归模型在本质上是相通的——它们都是用一些自变量的线性组合来预测因变量的取值。而因变量的类型和性质,则决定了我们要在自变量的线性组合这个内核基础上,再搭配怎样的变换,以打通自变量和因变量之间的联系,这正是上面这几种回归模型的差异所在。

现在就让我们来复习一下,遇到什么样的因变量,应该召唤哪种回归模型。因变量是连续变量?「基本款」线性回归可以搞定。因变量是二分类变量二分类逻辑回归为您效劳。要是多分类变量呢?那我们还得看看这些分类是无序(名义变量)还是有序(定序变量)的,前者要用多项逻辑回归,而后者则要用到前两集介绍的定序回归模型

读到这里,你可能要问这样一个问题:上面这几种情况是否已经覆盖了所有可能的因变量类型?粗略一想,答案似乎是肯定的。许久以前,我们在《数据到手了,第一件事先干啥?》里讲过的变量分类方法里,就是大体按这几种情况区分的。然而,看过下面这个例子以后你会发现,有个灰色地带并没有被以上的几种情况覆盖到。

计数变量

如果大家几周以前读过《让人眼花缭乱的多项逻辑回归,原来是这么用的》,也许还记得,格格巫在蓝精灵村落推出了自动售货机。在那集文章里,我们用多项逻辑回归模型分析了如下问题:时间和天气这两种因素对蓝精灵顾客们对商品(蓝莓、披萨、蘑菇、面包)的选择有什么影响?最近,格格巫再次走访了遍布村落各处的自动售货机,发现放置在不同地点的机器的顾客数量有很大差异,有的售货机货物周转很快,有的售货机则是门庭冷落。于是,他想研究一下,不同售货机的客流量与什么因素有关——这个问题对格格巫的生意显然十分重要,如果能对客流量的影响因素有了准确认识,不仅可以更好地安排货物的补给和更新,以避免客流繁忙的售货机出现断货,而且还能对未来增加的自动售货机的选址提供指导意见。

根据以往的经验,格格巫知道,周末晚上是自动售货机的重点销售时段。因此,他让助手整理出了旗下所有 100 台自动售货机上周六晚上 8 点到午夜 12 点之间有多少人次买过东西。至于可能的影响因素,格格巫想考虑每台售货机附近街区居民的收入水平(连续变量)、售货机周围 500 米内是否有便利店(二分类变量)、是否有公交车站(二分类变量)。要研究的问题弄清楚了,那么我们应该用什么模型来分析这些数据呢?

既然我们已经熟悉的几种回归模型在使用上是按照因变量的类型来划分的,那么就让我们来看一看,在自动售货机买东西的人次是个什么类型的变量——能不能算是连续变量呢?严格来讲,人次这个东西只能取非负的整数,不能算是「连续」的,但实际应用时并不能那么死板。当因变量是连续变量时,线性回归模型认为,因变量在由自变量的线性组合确定的平均值周围呈正态分布。我们知道,正态分布是个对称的钟型曲线,离均值越远,概率就越小,而且正态分布的方差越小,曲线就越瘦。所以,即便因变量有特定的界限(比如说非负),只要实际的取值离界限很远(比如说人次的数量级很大)、分布又比较「紧凑」(方差比较小)的话,还是可以用正态分布来建模。在这种情况下,因变量只能取整数也无伤大雅,因为每个整数之间的间隔比起数据的数量级小得多。

那格格巫手上的人次数据能不能当连续变量来看呢?格格巫浏览了一下,发现有不少售货机的人次数值很小,甚至还有一些是 0 。这样以来,我们刚才说的条件就不符合了,看来还得另寻他法。人次算不算分类变量呢?这听起来有点别扭,没有顺序的名义变量肯定是不对的,有序变量似乎还能沾上点边儿,但仔细斟酌还是不太对。我们强调过,有序变量只讲方向、不谈距离,但人次的数据又是有距离可言的,比如说,3 和 2 的距离与 20 和 19 的距离是一样的。因此,要是硬把定序回归套上去,就不能很好地体现这一信息,得到的结论也可能是不完善的。

所以,我们现在面对的是一个新问题,需要用新的方法来解决。像人次这样的变量,本质上是一个数(第三声)出来的数(第四声),描述了一个时间或空间范围内某个事件发生的次数,所以称为计数变量」(count variable)。在日常生活中,计数变量的例子很多,除了某个地方的来访人数以外,还可以是你睡着之前数到第几只绵羊、一定时间内某个网页的点击量、某个路口的车流量、某罕见病的发病数、某些产品或机器发生故障的次数、某个地域范围内发生某种自然灾害的次数等等。

泊松回归

要研究某些因素与一个计数变量之间的关系,我们首先要弄清楚,计数变量会(在理想条件下)服从一个怎样的概率分布。这个问题在将近两百年前被法国数学家泊松(Poisson)所解决,因而这个分布被称为「泊松分布」(Poisson distribution)。泊松分布的定义是什么样子的呢?

假设我们考虑某个事件(比如说,任意某个人来到一台特定的无人售货机买东西)在一段时间(比如说,上周六晚上 8 点到 12 点)内随机发生。如果我们把这个时间段分成许多前后相接、互不包含的极其微小的时间段,那么可以想象,假如这些时间段的长度变短,在该微小时间段内,发生这个事件的概率也会变小。这个在直觉上很好理解,假如格格巫在一台自动售货机边上蹲 1 分钟、1 秒钟、0.1 秒钟,在他蹲着的时间里正好遇上有人来买东西的概率自然会越来越小。泊松在数学上证明,如果:

(1)在一个微小的时间段内该事件发生一次的概率与时间段的长度成正比;

(2)在一个微小的时间段内不可能发生两次该事件;

(3)随意挑出两个不同的微小时间段,在一个时间段内该事件发生与否,不影响另一个时间段内该事件是否发生(即两者相互独立);

则在整个时间段里,事件发生次数 Y=k( k 为非负整数)的概率是

其中表示 k 的阶乘,即 1·2·3·…·(k-1)·k,而则是这个分布的唯一一个参数(parameter) 。

在进一步讨论泊松分布的性质之前,我们先来想想,我们通常感兴趣的计数变量是不是符合上面的三个条件呢?第一个条件看起来挺合理的,比如说从 9 点 0 分 0 秒到 9 点 0 分 0.3 秒,这段时间内来一个顾客的概率将是 9 点 0 分 0 秒到 9 点 0 分 0.1 秒这段时间内来一个顾客概率的 3 倍。第二个条件也说得通,如果时间段分得足够细,总归可以把各个人次分开——即便是再繁忙的售货机,某两个顾客出现的时间总不可能分毫不差。第三个条件呢,大致上是说顾客们的行动都是各自为政的,不存在说几人结伴而行或是一个人买完东西以后打电话叫另一个人来买。而且,如果一个人在整个时间段里来了不止一次,他每次来的决定也与上次无关。不难想象,这第三个条件有时候可能会不太符合实际,但即便如此,泊松分布仍然是个合理的近似,可以作为统计建模的出发点。

我们已经知道,泊松分布只有一个参数,就是 λ,它一定是个正数,但不一定要是整数。它的意义是什么呢?λ 既是事件发生次数 X 的均值,也是其方差。λ 是事件发生次数的均值,意味着它代表了这个事件背后的某种本质规律,但并不意味着在任何的试验中,我们都一定会观察到该事件发生了 λ 次。λ 越大,意味着在我们考虑的整个时间段内,该事件平均来说会发生的次数越大,但同样也不完全排除实际事件发生次数与 λ 相去甚远的情况(虽然可能性比较小)。下面的图 1 绘出了 λ 分别取 1、4、10 时事件发生次数 k(k=1,2,3,…)的概率。容易发现,λ 越小,概率分布越不对称(因为发生次数 k 接近于 0 的概率很大)。



图1  均值取不同数值时的泊松分布

(图片来源:https://zh.wikipedia.org/wiki/%E6%B3%8A%E6%9D%BE%E5%88%86%E4%BD%88)


泊松分布

讲到了泊松分布的均值 λ,以泊松分布为基础、针对计数变量的回归模型其实已经呼之欲出了。回想一下,在线性回归和逻辑回归模型中,我们其实都是在对均值进行建模。线性回归里,我们用自变量的线性组合直接对应了正态分布的均值 μ:

而逻辑回归里,它则对应了概率 p 被转化到整个实数轴上的

即而我们在《你在,或者不在,需要逻辑回归来算》里指出过,概率 p 其实也是 0/1 变量的算术平均值。换言之,我们通过自变量的线性组合来预测反映了某种稳定规律的均值,而实际观测数据围绕均值的波动则通过因变量本身服从的特定概率分布来体现。所以,对于计数变量,我们可以继续将这个思想发扬光大,构建泊松分布的均值与自变量的线性组合 β01x12x2+…+βmx之间的关系。

我们能不能直接让两者相等呢?不行,因为泊松分布的均值 λ 必须是个正数,而 β01x12x2+…+βmx可以是负的。因此,我们需要像逻辑回归那样,对均值 λ 作个合适的变化,使它「投射」到负无穷到正无穷的整个范围上。一种很简单的做法,就是对 λ 取对数——对数函数的定义域是正数,值域是整个实数集,而且还是个单调函数,也就保证了每个正数取对数以后,会一一对应于实数域上的数。那么,我们就有了

log(λ)=β01x12x2+…+βmxm

这就是用于计数变量的回归模型的基本形式。由于它的基础是泊松分布,因此它被称为泊松回归」(Poisson regression)。

明确了泊松回归模型的形式,模型的拟合就变成了一个可以交给统计软件包办的技术问题。给定一个具体的模型,及与之相应的数据集,统计软件会使用与其他回归模型相同的极大似然估计方法,得到回归系数的估计值,这个过程通常用不着我们操心。对我们来说,更重要的是正确解读泊松回归的结果,并进行统计推断。

泊松回归的解读

让我们假想一下,格格巫对数据进行泊松回归建模以后,拟合得到了如下的回归模型:

log(周末晚上自动售货机顾客人次平均值)=1.9+0.1×街区居民平均月收入(千元)-0.4×有便利店+0.03×有公交车站

其中,街区居民平均月收入以千元为单位,而附近是否有便利店和公交站这两个变量都用 1 表示有、0 表示没有,因此为了指示明确,把它们在模型里写成「有便利店」和「有公交车站」。这时,1.9、0.1、-0.4、0.03 这几个回归系数分别代表了什么含义?

与其他模型一样,在解读结果时,我们一定要紧扣模型本身的形式(也就是上面这条式子)。现在,顾客人次的平均值是我们关心的问题,但它在一个对数符号里,不太好理解。所以我们先根据对数的定义,把它单独拎出来:

周末晚上自动售货机顾客人次平均值=e1.9+0.1×街区居民平均月收入(千元)-0.4×有便利店+0.03×有公交车站

这样,我们就更容易把每个回归系数与等式左边的顾客人次平均值对应起来了。我们先来看截距 1.9:希望你还记得,要分析截距的含义,就要让所有自变量都变成 0,这时有

周末晚上自动售货机顾客人次平均值=e1.9

换言之,截距 1.9 意味着当售货机所在街区居民平均月收入为 0,而且附近既没有便利店也没有公交车站时,周末晚上自动售货机顾客人次的平均值将为 e 的1.9 次方,约为 6.686。当然,月收入为 0 在实际中不可能出现,因此在这个模型里截距并没有太大的实际意义。

我们接着来看下一个回归系数 0.1,它是所在街区居民平均月收入这个自变量的回归系数。回想一下我们讨论过的其他回归模型,当自变量不止一个时,我们总是在假定其他自变量不变、本自变量增加 1 个单位的情况下来讨论回归系数的含义。假设有 1 号、2 号自动售货机,它们附近便利店和公交车站的情况相同,分别为 x2, x3,而所在街区居民平均月收入之差 1 个单位,分别为 x1和x1+1。根据前面的模型,我们得到

1号售货机均值=e1.9+0.1x1-0.4x2+0.03x3

2号售货机均值=e1.9+0.1(x1+1)-0.4x2+0.03x3

考虑到指数的性质,我们将两者相除,得到

2好售货机均值/1号售货机均值=e0.1=1.105

也就是说,其他自变量相同、所在街区居民平均月收入多 1 千元的 2 号售货机客流量均值是 1 号售货机的e0.1=1.105倍。或者我们也可以说,其他自变量保持不变时,所在街区居民平均月收入增加 1 千元,自动售货机的平均客流量会增加 e0.1-1=10%。

推广到一般情况,在泊松回归中,一个自变量的回归系数为 βk,意味着当其他自变量保持不变、该自变量增加 1 个单位时,因变量的均值会变成原来的 eβk倍。也可以说,此时因变量变化的比例将是 eβk-1。之所以与线性回归中回归系数直接表示因变量的变化量不同,这里变成了倍数或比例,正是因为泊松回归里多了一个对均值的对数变换。

我们马上现学现卖,来把剩下两个回归系数也解读完。「有便利店」的回归系数是 -0.4,就是说其他条件相同时,一个附近有便利店的自动售货机的平均顾客流量将会是一个附近没有便利店的自动售货机的 e-0.4倍——如果附近有便利店的竞争,格格巫的自动售货机生意就会缩水三分之一!而「有公交车站」的影响比较轻微,其他条件相同时,附近有无公交车站对平均顾客流量的影响只是e0.03=1.03倍,即只有 3% 的区别。

当然,回归系数本身只代表了效应大小的估计值,它们究竟是否显著(即与 0 有统计学意义上的显著差异),还需要通过假设检验来考察。对于泊松回归,我们仍然可以应用《逻辑回归的统计检验,原来招数辣么多?》里介绍的似然比检验(likelihood ratio test),这里我们就不再重复了。对于这个数据集,似然比检验对街区居民月收入、便利店、公交车站的这三个回归系数得到的 p 值分别是 0.03、0.0005、0.36,因此前两者与顾客流量之间有显著的相关性。如此看来,格格巫以后再增设新的自动售货机,得找平均收入较高的街区,尤其得躲着点儿便利店。至于附近有没有公交车站,也许就不是太要紧了。

作者:张之昊

编辑:鹅不食草

质控:灯盏细辛


* 点击下方标题,或回复关键词「说人话的统计学」可随时查阅本系列任意文章!


干货

第 1 章  高屋建瓴看统计

你真的懂p值吗?

做统计,多少数据才算够?(上)

做统计,多少数据才算够?(下)

提升统计功效,让评审心服口服!

你的科研成果都是真的吗?

见识数据分析的「独孤九剑」

贝叶斯 vs 频率派:武功到底哪家强?


第 2 章  算术平均数与正态分布

数据到手了,第一件事先干啥?

算术平均数:简单背后有乾坤

正态分布到底是怎么来的?


第 3 章  t 检验:两组平均数的比较

想玩转 t 检验?你得从这一篇看起

就是要实用!t 检验的七十二变

不是正态分布,t 检验还能用吗?

只有 15 个标本,也能指望 t 检验吗?

样本分布不正态?数据变换来救场!

数据变换的万能钥匙:Box-Cox 变换

t 检验用不了?别慌,还有神奇的非参数检验

只讲 p 值,不讲效应大小,都是耍流氓!

找出 t 检验的效应大小,对耍流氓 say no!

用置信区间,就是这么(不)自信!

如何确定 t 检验的置信区间

优雅秀出你的 t 检验,提升 Paper 逼格!

要做 t 检验,这两口毒奶可喝不得!


第 4 章  方差分析(ANOVA):多组平均数的比较

要比较三组数据,t 检验还能用吗?

ANOVA 在手,多组比较不犯愁

ANOVA 的基本招式你掌握了吗?

ANOVA 做出了显著性?事儿还没完呢!

听说,成对t检验还有 ANOVA 进阶版?

重复测量 ANOVA:你要知道的事儿都在这里啦

没听说过多因素 ANOVA ?那你就可就 OUT 了!

多因素 ANOVA=好几个单因素 ANOVA?可没这么简单!

两个因素相互影响,ANOVA 结果该如何判读?

ANOVA 还能搞三四五因素?等等,我头有点儿晕

要做 ANOVA,样本量多大才够用


第 5 章  线性回归:统计建模初步

车模航模你玩过,统计学模型你会玩吗?

如果只能学习一种统计方法,我选择线性回归

回归线三千,我只取这一条

三千回归线里选中了你,你靠谱吗?

自变量不止一个,线性回归该怎么做?

找出「交互效应」,让线性模型更万能

天啦噜!没考虑到混杂因素,后果会这么严重?

回归系数不显著?也许是打开方式不对!

评价线性模型,R 平方是个好裁判吗?

如果R平方是砒霜,本文教你三种解药!

线性模型生病了,你懂得怎样诊断吗?

「脱离群众」的数据点,是「春风化雨」还是「秋风扫落叶」


第 6 章  广义线性模型:统计建模进阶

你在 或者不在 需要逻辑回归来算

逻辑回归的袅娜曲线,你是否会过目难忘?

逻辑回归的统计检验,原来招数辣么多?

线性回归能玩多变量,逻辑回归当然也能!

喂,你的逻辑回归模型该做个体检啦

逻辑回归能摆平二分类因变量,那……不止二分类呢?

让人眼花缭乱的多项逻辑回归,原来是这么用的

只问方向,无问远近,定序回归的执念你懂吗?

包教包会:定序回归实战

自检

妈妈说答对的童鞋才能中奖

统计学的十个误区,你答对了吗?


番外篇

说人话的统计学:一份迟来的邀请

作者简介

张之昊

2010 年本科毕业于清华大学生命科学学院,获理学学士学位。2016 年 5 月在耶鲁大学跨院系神经科学项目获得哲学博士学位。在耶鲁期间,他利用功能核磁共振成像(fMRI)技术与计算建模研究人类经济决策的脑科学基础及其与肥胖症的联系,曾以第一作者身份在 Nature Communications, Current Biology 等顶尖学术杂志上发表多篇论著,并受到 BBC 新闻、CBC、洛杉矶时报、果壳网等知名媒体的关注和报道。他还曾任耶鲁大学 StatLab 数据咨询师(Data Consultant),为耶鲁师生提供实验设计、数据分析及统计学软件的咨询服务。2016 年 8 月至今在伯克利加州大学(UC Berkeley)哈斯商学院市场营销系担任博士后研究学者(Postdoctoral Scholar),致力于运用神经科学、经济学模型、自然语言处理及大数据方法研究消费者行为与决策。

作者简介

田菊

2010 年本科毕业于清华大学工程物理系,获工学学士学位。2016 年 5 月在哈佛大学医学院神经科学项目获得哲学博士学位。她在攻读博士期间研究基于奖赏的学习行为的神经回路及其计算模型,曾以第一作者或共同作者身份在 Nature,Cell,Neuron,Nature Neuroscience,Trends in Cognitive Science 等顶尖学术杂志上发表多篇论著。2016 年 6 月至今在 Facebook 担任数据科学家( Data Scientist ),运用大数据和人工智能解决网络诈骗、虚假新闻和不良广告等信息安全相关问题。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存