如何用数据验证你的理论

笔者在抖音平台以绝顶教育头条号推出了《双盲测试为什么不能证明药效》的视频,达到近四千次播放量。更有学物理化学医学商科的痛斥我这是在动摇科学的基础。既然广大读者对统计学如此感兴趣,科学家也的确是一个钱多事少离家近的工作,于是笔者专门写作了本文,探讨如何从数据中发现规律,以及频率派和贝叶斯派两大统计学派之间的恩怨情仇。本文就动摇一个科学基础给你看看!

为什么不建议学统计学(我要告诉你你以前学得统计学是错的)(1)

现在假设你现在拿到一批吃夜宵的人员年龄数据,当然你首先会用描述性统计学的知识画一些图,然后你也会计算一些平均数方差这些统计学指标,看看有什么规律。然后你突然之间如醍醐灌顶,你发现年纪轻的更喜欢吃夜宵,这是一个社会学规律,所以你决定写一篇《论年龄对吃夜宵习惯的决定性影响》,打算向CSCI投稿。

为什么不建议学统计学(我要告诉你你以前学得统计学是错的)(2)

再假设,你想从股市里赚点钱,然后拿到了上证综指的k线数据。你一拍脑门,发现这k线图波涛汹涌,于是你提出了一个波浪理论。问题是理论谁都可以提,能不能赚到真金白银呢?于是你想通过统计学来验证一下这个金融学理论。

为什么不建议学统计学(我要告诉你你以前学得统计学是错的)(3)

这一次,新冠疫情来袭。这传染上了要死人的,你躲在家里不敢出门。然后你从网上下载了疫情新增趋势的数据,充满求知欲的你想预测一下疫情什么时候结束。说不定你也能像张文宏主任一样一夜成名呢?你学了公共卫生学的课程,想检验一下理论对不对。

案例

下面我们就通过一个案例来详细解释一下拿到一批数据后该做什么,再看看两大统计学派在吵什么。

我们从世界银行网站上随机抽取了32个国家1990年到2018年的平均寿命和国家名称以及人均GDP数据。

拿到这些数据之后我们应该如何找出其中的规律呢?

当然我们首先猜测亚洲国家有中医,所以寿命应该长一些,一个简答的模型是寿命由是否亚洲国家决定。所以我们把这两列数据画在图上。

为什么不建议学统计学(我要告诉你你以前学得统计学是错的)(4)

我们在散点图上添加了一条趋势线。从图中我们可以清楚地看出,亚洲国家的平均寿命反而比非亚洲国家的平均寿命低。所以用是否亚洲国家这个因素对平均寿命进行建模,应用频率派统计学的最小二乘法,就能得到一个预测模型,得出中医会降低寿命这样一个结论。系数估计亚洲国家因素会导致平均寿命降低4.31岁,而且在统计学上非常显著,t统计量达到-9.43,p值达到0.0000,如果按照你之前学的数理统计学,你一定会认为中医导致寿命下降理论是绝对真理(当然这只是做个例子,不考虑时间序列的更复杂因素)。

真实的规律果真如此吗?很遗憾,这个理论当然是荒谬的。

现在,拿出你的数理统计学教材,看看推断统计学的定义:推断统计是研究如何利用样本数据来推断总体特征的统计方法。

所以,上面的数理统计学假设检验是在说通过了理论就成立吗?如果你语文过关的话就应该知道这两句话的含义完全不同。根据定义,通过假设检验说明的是样本上成立的理论在总体上也成立。

那么问题来了,在样本上中医导致寿命降低的理论成立吗?这一点频率派统计学可没说。所以你需要学一点贝叶斯派统计学才能回答这个问题。

贝叶斯派统计学提出算法叫极大似然法,其思想简单来说就是如果你的理论模型是正确的,那么真实数据就应该在你的理论预测值周围呈正态分布,因为只是存在测量误差。这样在预设几个参数后就可以把每一点的可能性计算出来,把这些可能性相乘就是模型成立的可能性。然后在各种参数中寻找模型成立可能性最大的参数,这样得到的参数模型就是可能性最大的参数模型。

还是对这两列数据,我用oxmetrics软件的pcgive模块进行了极大似然估计,得到的结果如图,跟之前频率派统计学最小二乘法计算出来的系数是一样的,都是-4.31.所以从参数估计角度讲,两种算法是一致的。

但是贝叶斯派统计学的好处是在我们上面找最大可能性的参数的时候,我们同时得到了模型的可能性究竟是多少这个统计指标,这在频率派统计学的最小二乘法下是无法得到的。

这个指标在极大似然法中被称为log似然值,其实就是上面计算出来的可能性取了对数水平。因为对数函数是单调的,所以最大可能性的参数模型当然也会有最大log似然值。

pcgive报告该模型的log似然值为-903.98.

所以在频率派统计学下看起来很完美的一个模型,几乎确认为绝对真理可以发表在国际期刊上的论文在贝叶斯派统计学下就能看出存在极大问题。因为这个log似然值太低了!

从图上也可以看出这个模型完全就是瞎掰。比如模型预测非亚洲国家平均可以活81岁,但非亚洲国家的西班牙平均寿命只有61岁,正常思维的人都会问一个为什么?你的理论真的正确吗?预测误差这么大就叫真理?

所以通过频率派统计学假设检验并不能确认理论成立,还要看log似然值是否达到合理水平。如果log似然值很高,才能说理论在该批数据上成立的可能性很大;如果还能通过频率派统计学检验就可以说理论在总体上也在一定概率下成立。

为什么不建议学统计学(我要告诉你你以前学得统计学是错的)(5)

所以加入了贝叶斯派统计学我们就知道上述中医降低寿命的理论模型是荒谬的。

那么我们如何改进我们的模型呢?我们就要把第三列人均GDP数据也用上,因为经济因素显然会影响日常营养摄入,当然是平均寿命的决定因素之一。

我们只要把人均GDP数据和平均寿命两列数据画一个散点图就很容易看出这一点。从有图中我们看到随着人均GDP的上升,平均寿命也上升,这种相关性是很明显的。

所以平均寿命实际上由两个因素决定,一个是经济因素,用人均GDP来代表(当然由于人均GDP发展到一定程度,对寿命的影响就有限了,所以取对数更合适);另一个是亚洲因素,因为亚洲中医的普及率相对更高。由于无法画三维散点图,所以只能将两张图并列供大家观察。当然统计学建模还是可以做,在频率派中叫多元回归,在贝叶斯派中也一样可以用极大似然法来做参数估计。

由于两种算法从参数估计角度来讲是一致的,所以oxmetrics软件内部实际上采用了频率派的最小二乘法,因为对计算机来说这种算法效率更高,对机器来说更容易处理。

如果你学了贝叶斯统计学,这回估计得到的结果就比之前好多了,log似然值是-614.74。物理化学高度可预测的,做出来的log似然值也非常高。但是生物社科中一般做不到那么高,所以-614.74是可以接受的。所以这个理论模型在样本上是可以成立的。

这个理论的结论跟前面完全相反,亚洲因素的系数是0.93,就是说亚洲国家的平均寿命反而比非亚洲国家高一岁。对数人均GDP的系数是3.98,就是说人均GDP每增长翻一翻,平均寿命就会增加3.98岁。两个系数都是显著的,前者的t统计量是4.10,后者是40.2,两者的p值都在0.001以下。所以即使按照频率派统计学的观点,中医会增加平均寿命的理论也是几乎绝对真理。所以只是因为增加了一个变量,中医对寿命的作用就完全转变方向了。中医增加平均寿命和中医减少平均寿命这两个理论不可能同时成立,所以频率派统计学存在严重弊端。

那么现在我们学了贝叶斯派统计学了,就知道第一个理论log似然值是通不过的,第二个理论是可以通过的。所以第一个理论在样本上就不成立,而第二个理论在样本上是成立的。由于第二个理论也通过了频率派统计学的检验,所以第二个理论不光在样本上成立,也可以在99.9%的置信水平下推广到总体(同样的这只是做个例子,不考虑时间序列的更复杂因素)。

那你可能会问,为什么在物理化学的研究中没有发现频率派统计学的这个严重缺陷呢?

那是因为物理化学的因素比较简单,大部分都是受控实验。所以那些理论在样本上都是成立的,只需要考虑能不能推广到总体形成科学理论就行了,当然主要要用频率派统计学。

但是生物社科的因素非常复杂,受控实验非常容易没控制某个变量,或者用的就是观察数据,根本不知道因变量是多少自变量决定的。所以贝叶斯的log似然值就成为必要的先决指标了。

双盲测试的问题和上面的例子一摸一样,由于没有控制体质因素,所以药物有效的理论在样本上就不一定是成立的。如果你用他们的数据做一下就知道log似然值有多低,是无法通过贝叶斯统计学检验的。所以虽然能通过频率派统计学检验,可以从样本推广到总体,但样本上无法成立的理论当然也无法在总体上成立。

,