StatQuest学习笔记08——比数与比数比

前言——主要内容

这篇笔记的主要内容是StatQuest视频教程的第29与30,第29的内容是比值比(Odds)与比值比的log转换(LogOdds)。第30的内容是oddo ratio。

ratio与rate的区别

原视频中有几个术语比较容易混淆,下面是几个英文的注释。

ratio:译为“相对比”,通常简称为“比”,是指一个数字与另外一个数字的比值,它可以是两个有关的同类指标之比,也可以是不同性质的指标之比,常以倍数或百分数来表示,如下所示:

这里的甲、乙指标值可以是绝对数、相对数或平均数等。我们看下面的一个表:

某地区某年居民钩虫感染人数
年龄组/岁 检查人数 感染人数
0-14 453 48
15-49 824 78
50及以上 206 18
合计 1483 144

这个表示中,0-14岁组与15-49岁组钩虫感染人数相对比为48/78X100%=61.54%,0-14岁组与15-49岁组钩虫感染率的相对比为10.60%/9.47%=1.12(倍)。

rate:对应的中文翻译是“率”,率是一个具有时间概率的比,用于说明在某一时期内某个现象发生的频率或旨度。某事件在某时间的发生率为表示为:

率常以百分率(%)、千分率、万分率(1/万)、十万分率(1/10万)等表示,在用率的指标时,应说明观察时时期的时间单位。常用的率有生存率、发病率。例如2000年初,在某地区调查了1000名60岁以上的老人,经检查发现,有80人患糖尿病。在2001年初随访这1000名60岁以上的老人,并进行体验,发生其中有95名老人患有糖尿病,那么糖尿病的发病率为:

也就是说,这个地区60岁以上的老人在2000年的糖尿病发病率为1.63%。

——上述内容引用自《医学统计学及SAS应用》(王炳顺.2014)

odds与odds ratio翻译的区别

odds与odds ratio这两个词容易弄混,后来找了一本书(颜虹. 医学统计学.第2版[M]. 人民卫生出版社, 2010.),根据书里的翻译如下:

odds:翻译为优势比比数比值,在不同的情况下,可以译成不同的名称,例如在比赛时,可以译为“胜算”,在赌博时,也可以译为“胜率”,在疾病方面,也可以译为“风险”。为了方便理解与描述,后文中我会在括号中注明。

odds ratio:翻译为比数比比值比

后文会详细讲这两个术语的区别,为了避免搞混淆,此篇笔记都会使用中英文来描述比数和比数比。

odds

关于比数(odds),我们先举一个例子。

你或许这么说过,“我支持的球队踢赢的概率可能是1:4”。这里暗含的意思就是有5场比赛,其中我的支持的球队会赢1场(下图蓝点所示),会输4场(下图红点所示),如下所示:

那么此时我们使用比数(odds)来表示1:4,我们也可以说是1/4,如下所示:

计算一下,就是0.25。也就是说我支持的球队赢的胜算是0.25(注:odds在这里译为了胜算,因为我觉得在球赛这种场合使用比数比较不太合适,这里可以理解为“胜算”)。

再把这个案例修改一下,如果我支持的球队赢得比赛的胜算(odds)是5:3,那么实际上暗示会有8场比赛,在这8场比赛中,我支持的球队会赢5场(蓝点所示),如下所示:

因此球队赢的胜算(odds)就是5/3,如下所示:

计算结果就是1.7。我们可以说我支持的球队赢的胜算(odds)是1.7。

需要注意的是,比数(odds,这里又切换到了统计学术语)与概率(probability)不同,比数(odds)指的是某些发生的事情与不发生的事情的比值,那么在这个案例中,比数(odds)的计算就是赢的事件数目(蓝色点)除以输的事件数目(红色点)如下所示:

而概率(probability)则指的发生的事情数目(蓝色点)除以所有的事件数目(赢的(蓝色点)和输的(红色点)),如下所示:

因此,在前文中介绍的案例里,赢的比数就是5比3,也就是1.7,如下所示:

而赢的概率则是5/8,也就是0.625,如下所示:

此时我们就理解了比数(odds)与概率(probability)的区别。

此时我们看一下如何从概率(probability)中计算比值比(odds)。在上个案例中,我们看到了,赢的比数(odds)为1.7,概率为0.625,我们还可以计算一下输入的概率,也就是3/8=0.375。其实也就是1-赢的概率=1-5/8=3/8=0.375,如下所示:

此时我们用赢的概率除以输的概率,如下所示:

计算后,如下所示:

上述讲了两种计算比数(odds)的方式,一种是根据事件数目计算,一种是根据概率计算。但经常使用的是则是第二种,如下所示:

log odds

再回到最初的案例,也就是我支持的球队在5场比赛中,可能赢1场的那个案例,它的比数(odds)计算如下所示:

如果我支持的球队表现更差,胜算(odds,就是比数,我是为了方便描述比赛)为1:8,那么就是下面的情况:

如果我支持的球队表现再差,假设胜算(odds)为1:16,那么就是下面的情况:

或者还差呢,比如1:32,这基本上就接近0了,如下所示:

我们再假设一下,我支持的球队很好,有可能踢个4:3,或1.3,也就是下面的样子:

如果还好,比如8:3(或2.7),如下所示:

如果非常好,例如32:3(或者说是10.7),如下所示:

在这个案例中,我们知道,最初球队的胜算(odds,比数)是1,然后上下波动,差的时候,是从很小的值(基本上接近于0了)到1,如果很好的时候,则是从1到很大。此时,我们把这个比数(odds)放到一个数轴上表示,如下所示:

红色的箭头表示的就是球队比较差的时候,输的胜算(odds,比数),如下所示:

蓝色的则相反,表示的是球队赢的胜算(odds,比数),如下所示:

但是,这个数轴不太直观,因为红色与蓝色不对称,比较起来不方便,如下所示:

例如,如果胜算(odds)是1比6的话,也就是说1/6=0.17,它就在下面的这个位置:

如果胜算(odds,比数)是6比1的话,也就是6/1=6,它就在很远处,如下所示:

但是这些比数(odds)的程度都比较类似(一个是1比6,一个是6比1),但是区别很大,如下所示:

为了方便观察,我们可以把比数(odds)进行一个log转换来解决这个问题,转换后的数轴如下所示:

例如,如果比数是1:6,那么经过log转换(log(1/6)=log(0.17)=-1.79)则是下面这个样子:

如果比数(odds)是6比1,经过log转换,则是下面的这个样子:

我们通过使用log转换,这两个相似的值就很对称了,如下所示:

注:在学习统计学的时候,有时候我们可能看到一个指标,觉得很奇怪,但是只要深入其中最根本的原理部分,就会发现,这有一定的合理性。

odds深入

在我们刚涉及比数(odds)时,是按事件数目计算的,接着我们又按概率进行了计算,这两种方法在本质上是相同的,如下所示:

最后我们又涉及了比数(odds)的log转换,此时我们需要注意的是,概率的比值(ratio of probabilities)的log转换称为logit函数(logit function),它是logistic回归(logistic regression)的基础,如下所示:

此时我们明白了比数(odds)和比数的log转换,那么它有什么用处呢,看下面的一个案例。在下面的这个案例里,如果随机选择一对加起来的值为100的两个数字,然后利用这对数字计算log(odds),并且绘制出直方图,这个直方图就比较类似于正态分布了,如下所示:

添加上正态分布曲线,就是下面的这个样子:

使用log(odds)在解决某些统计学问题方面很有用,尤其是在我们计算赢/输概率方面,或者是yes/no,或者是true/false这些情况时(我觉得这与二项分布有些类似,以后补一下)。

最后,我们需要注意的是比数(odds)虽然是一个比率(ratio),但它与比数比(odds ratio)是不同的,至于有哪些不同,后文会提到。

odds ratio

当我们说比数(odds)的时候,我们仅指两个事件发生的比(ratio)比值,还以前面的案例为例说明,例如比数(odds)我们指的是我支持的球队获胜的比(ratio)除以我支持的球队失败的比例,如下所示:

我们用图型表示就是下面的这个样子,蓝色圆形表示赢,如下所示:

红色圆形表示输,如下所示:

那么我支持的球队赢的比数(odds)就是蓝色的圆形除以红色的圆形,如下所示:

此时,我们计算一下圆形的数目,就可以计算出比数(odds),如下所示:

此时需要注意的是,即使比数(odds)是一个比(ratio),它也不是人们所谓的比数比(odds ratio),如下所示:

当人们说比数比(odds ratio)的时候,事实上他们是在说比数的比(ratio of odds)(这几个术语很拗口,为了避免混淆,我都会在括号时注明英文),分子与分母都是一个比数(odds),如下所示:

计算可得0.17,如下所示:

就像我们计算某件事情的比数(odds)时,如果分母比分子大很多,那么比数比(odds ratio)就位于0到1这个区间上,如下所示:

相反,如果分子很大,分母很小,那么比数比(odds ratio)就位于1到极大这个区间上,如下所示:

与比数(odds)类似,我们也可以把比数比(odds ratio)进行log转换,让它们看起来比较对称,如下所示:

例如,比数比(odds ratio)为(2/4)/(3/1),进行log转换,即log(odds ratio)=-1.79,比数比(odds ratio)为(3/1)/(2/4),进行log转换,即log(odds ratio)=1.79,如下所示:

此时我们就得到了转换后的比数比(odds ratio),如下所示:

odds ratio案例

此时,我们看一个案例,Has cancer表示得癌症的情况,Yes是得,No是不得,Has the mutated gene表示含有突变基因的情况,Yes是含有突变基因,No是不含突变基因,如下所示:

方框中的数据是356个(356=23+117+6+210),其中,我们从是否得癌症的角度来看,29个人得癌症(29=23+3),327人不得癌症(327=117+210),我们从是否含有突变基因的角度来看,含有突变基因的人数是140(140=23+117),不含突变基因的人数是216(216=6+210)。

此时,我们可以使用比数比(odds ratio)来研究突变基因与癌症之间的关系,如果一个人含有突变基因,那么它得病症的风险(odds,比数)有多高?如下所示:

如果一个人含有突变基因,那么他得癌症的的风险(odds)为23/117,如果一个人不含突变基因,那么他得癌症的风险就是6/210,此时我们把23/117放在分子上,把6/210放在分母上,如下所示:

它们整体上被称为比数比(odds ratio),如下所示:

经计算,可得比数比(odds ratio)为6.88,这个数字告诉我们,含有突变基因的人得癌症的风险要比不含突变基因的人风险高出6.88倍,如下所示:

把6.88进行log转换,就得到了1.93,这个转换的意义类似于线性回归中的${R}^2$,它表示的是两个事件(在这个案例中是突变基因与癌症的关系)的关联程度,它们的值反映了事件的效应程度(effect size),如下所示:

当这个值很大的时候,表示突变基因是癌症的一个很好的指标,如果这个值比较小,那么突变基因就不是癌症的一个很好指标,如下所示:

此时还有一个问题,还是与线性回归中的${R}^2$一样,我们要知道,这个值是否有统计学上的意义,一共有3种方式来计算比数比(odds ratio),如下所示:

  1. Fisher’s 精确检验
  2. Chi-Square检验
  3. The Wald检验(有人喜欢用这种方法来计算p值与置信区间)

至于哪种方法好,目前还没有一个统计的认识,如下所示:

Fisher精确检验

我们先用Fisher精确检验来计算。

第一步,我们先把这几个数字当作是某个袋子中的不同颜色的巧克力豆(注:原视频说把这些豆子是M&M豆,后来查了一下,这是美国的一个巧克力豆品牌,简称为MM豆,它有各种颜色),得癌症的用红色表示,不得的用蓝色表示,如下所示:

第二步,在得癌症的人中,数字是29,也就是29=26+3,如下所示:

第三步:不得癌症的人的数字是327,也就是327=117+210,如下所示:

第四步:计算我们抓到23个红豆和117个蓝豆的p值,如下所示:

经计算,这个p值为0.00001,如下所示:

Chi-square检验

我们再用Chi-square来检验一下p值,它的原理就是通过比较理论值与真实值之间的差异来计算p值的。

第一步,我们先假设突变基因与癌症没有关系,如下所示:

第二步:计算整体中得癌症的概率,在这个数据集中,得癌症的人是29个,即29=23+6,那么它除以总的人数356(356=23+117+6+210)就是得癌症的概率,如下所示:

第三步:计算不同组中得得癌症的理论人数,以含有这个突变基因的组为例(这个组的人数是140,即140=23+117),那么这个组中得癌症的理论人数应该为140 x 0.08 = 11.2,如下所示:

按照同样的方法,把所有组的理论得癌症人数都计算出来,如下所示:

第四步:比较理论值与观察值,如下所示:

至于有2个p值,这主要是因为卡方检验通常是不连续数据,但样本量足够大的话,可以视为连续数据。因此在进行卡方检验时,可以使用连续性校正,也可以不使用。

Wald检验

这种检验常常用于计算logistic回归中的比数比(odds ratios)的显示性与置信区间,如下所示:

Wald检验会充分利用log(odds ratios),它通常是服从正态分布的,如下所示:

这个直方图是由10000个随机的log(odds ratio)生成的,它告诉我们如果突变基因与癌症没有关系的话,可能的p值大小,如下所示:

如果要在自己的计算机上绘制这个直方图,那么随机选择的人的数目就是300到400。在这个案例中我们计算的步骤如下(Wald检验不懂,我只能照着字面翻译):

第一,我们选择的是325(数字位于300到400之间);

第二,针对每个样本选择一个0到1之间的随机数,例如0.01,0.73,0.95;

第三,小于0.08的那些随机数就是得样本得癌症的概率,例如,17除以325就是0.05,小于0.08;

第四,为每个样本再挑选1个位于0到1之间的随机数字;

第五,小于0.05的那些随机数字就是含有突变基因的人数。

至少,我们会得到一个矩阵,这个矩阵中的值和基因与癌症之间的关系无关,下面主是这个矩阵,如下所示:

𦘀,计算log(odds ratio),做10000万次,然后绘制出直方图,如下所示:

这个直方图的正态分布曲线如下所示:

在x=0处,log(odds ratio)=0,它表示不同组之间的比数(odds)没有差异,这个正态分布的标准差为0.43,如下所示:

通常使用观测值来估计标准差,如下所示:

计算过程如下所示:

最终结果是0.47,如下所示:

我们可以发现,这个0.47与0.43还是比较接近的。

Wald检验所做的就是观测值的log(odds ratio)距离0有多少个标准差,如下所示:

由于Wald检验通常使用估计的标准差(这里就是0.47),那么我们使用一个中心为0,标准差为0.47的正态分布区曲线来替换原来的直方图,如下所示:

此时计算一下观测值的log(odds ratio),如下所示:

计算可得log(odds ratio)=1.93,它位于曲线的右侧部分,如下所示:

此时我们计算一个这个值距离0有几个标准差,我们只用它除以标准差即可,如下所示:

经计算可得,观测值的log(odds ratio)距离0有4.11个标准差,如下所示:

按照我们平时的计算规则,通常偏离2个标准差的p值会小于0.05,那么此时我们就可以知道log(odds ratio)在统计学上的显著的,如下所示:

不过,为了得到一个精确的双尾检验的p值,我们可以求出大于1.93以及小于-的.93的曲线下面积,如下所示:

不过上述是传统的,利用标准正态曲线计算的方式,如下所示:

利用这种方法就意味着,大于4.11以及小于-4.11的曲线下面积的点都加在了一起,其中4.11是log(odds ratio)离均值标准差的数目,如下所示:

最终我们计算的结果就是,突变基因与癌症之间没有关系的p值是0.00005,如下所示:

三种方法总结

前面我们使用了3种方法来计算p值,当我们生成10000个随机的log(odds ratios)时,我们分别使用这3种方法来检验,如果检验符合预期,那么有5%的可能性p值是小于0.05的,如下所示:

从这三种方法的计算结果来看,它们在限制p值方面都表现得很好,因此你所做的就是找出你自己专业领域中最常用的方法。就作者个人的看法,如果都能通过所有的检验,那么他会选择一个在边界上的p值。

总结

比数比(odds ratio)就是比数(odds)的比,如下所示:

log(odds ratio)就是odds ratio进行log转换,如下所示:

比数比(odds ratio)会告诉我们两件事情之间的联系,例如有某种突变基因的人是否会增加其得癌症的风险(odds),如下所示:

有三种方法来计算两个事件之间的p值,分别为Fisher精确检验,Chi-Square检验,Wald检验,在前面的案例中,这3个检验得到的p值如下所示: