点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”
作者:Rahul Agarwal
编译:ronghuaiyang
没有统计学里的复杂公式,使用数据科学的直白语言描述给你听。
最近,有人问我如何向外行人简单地解释 p 值。我发现这很难做到。
即使对了解 p 值的人,解释 p 值总是一个令人头疼的问题,更不用说对不懂统计学的人了。
我去维基百科找了一些东西,这是它的定义:
在统计假设检验中,对于给定的统计模型,p 值或概率值是在原假设为真时,统计值(如两组间的样本均值差)与实际观察结果相等或更大的概率。
我的第一个想法是,可能他们这样写,所以没有人能理解它。这里的问题在于统计学家喜欢使用的大量术语。
这篇文章是关于用一种容易理解的方式解释 p 值,而不是统计学家们的方式。
一个现实生活中的问题
在我们的生活中,我们对一件事的相信程度胜过另一件事。
地球是圆的。或者地球绕着太阳转。太阳从东方升起。
对于那些有着不同程度不确定因素的不太明显的人来说 —— 锻炼可以减肥?还是说特朗普会在下次选举中赢/输?或者某种特定的药物有效?还是说睡 8 个小时对你的健康有好处?
前一类是事实,后一类则因人而异。
那么,如果我找到你说锻炼不会影响体重呢?
所有去健身房的人都可能对我说不好听的话。但是否存在一种数学和逻辑结构,可以证明我是错的?
这就引出了假设检验的概念。
假设检验
锻炼不能减肥?所以我在上面的例子中所说的锻炼不会影响体重。这是我的假设。我们暂时称它为零假设。就目前而言,我们认为这种现状是正确的。
那些发誓要锻炼的人的替代假设是 —— 锻炼确实能减肥。
但我们如何验证这些假设呢?我们收集的数据。我们收集了 10 个经常锻炼超过 3 个月的人的减肥数据。
样本减重均值 = 2 kg
样本标准差 = 1 kg
这能证明运动确实能减肥吗?粗略一看,似乎锻炼确实有好处,因为锻炼的人平均减重 2 公斤。
但你会发现,当你进行假设检验时,这种清晰的发现并不总是如此。如果做运动的人减掉的体重只有 0.2 公斤呢?你还会那么肯定运动能减肥吗?
那么,我们如何量化这一点,并在背后进行一些数学计算呢?
我们来做个实验。
实验
让我们再回到我们的假设:
Hº:锻炼不影响体重。或者说 ????= 0
Hᴬ:锻炼减肥。或者说 ????> 0
我们看了 10 个人的数据样本,我们试着找出
观察平均值(运动的人减重的值) = 2 公斤
观测样本标准差 = 1 kg
我们可以问自己一个问题假设零假设成立,观察到样本均值为 2 千克或更极端情况的概率是多少假设零假设成立,观察到样本均值为 2 千克或更极端情况的概率是多少
假设我们可以计算这个— 如果这个概率值很低(小于阈值),我们就拒绝零假设。否则,我们不拒绝零假设。**为什么不拒绝?**我稍后会回答这个问题。
这个概率值实际上是 p 值。简单地说,它就是我们假设零假设成立时观察到的结果或极端结果的概率。
统计学家把这个阈值称为显著性水平(????),在大多数的情况下,取 ????=0.05。
**那么我们怎么回答这个问题呢:**假设零假设成立,减肥 2 公斤或 2 公斤以上的值的概率是多少?
现在,我们来聊聊我们最喜欢的正态分布。
正态分布
中心极限定理: 中心极限定理简单地指出,如果你有一个分布,均值 μ 和标准差 σ,从这个分布中随机抽样,得到的样本分布也是近似正态分布的,均值和原来的分布一样,标准差为 σ/√n,其中 σ 是样本的标准差,n 观测样本的数量。
根据零假设,我们已经知道总体均值了,于是,我们有了正态分布的均值是 0,标准差是 1/√10。
抽样分布是样本均值的分布。
采样的样本分布的均值来自于总体分布。我们观察到一个特定的平均值,即 Xobserved = 2kg。
现在我们可以使用一些统计软件来找到这条曲线下的面积:
from scipy.stats import norm
import numpy as np
p = 1-norm.cdf(2, loc=0, scale = 1/np.sqrt(10))
print(p)
------------------------------------------
1.269814253745949e-10
可以看到,这是个非常小的概率 p 值(< 0.5 的显著性水平),意味着减肥超值过平均 2kg 的概率非常小。
我们可以拒绝零假设。我们可以称我们的结果在统计上是有意义的,因为它们不是偶然发生的。
Z 统计量
这是上面基本相同思想的延伸,我们使用均值为 0,方差为 1 的标准正态分布作为抽样分布,使用下面的方式将观测值 x 进行转化:
这样用统计表格更容易。在我们运行的例子中,我们的 z 统计量是:
z = (2-0)/(1/np.sqrt(10))
print(z)
------------------------------------------------------
6.324555320336758
只要看>6 的 Z 统计量就能知道观测值至少有 6 个标准差远,p 值应该更小。我们仍然可以找到 p 值,使用:
from scipy.stats import norm
import numpy as np
p = 1-norm.cdf(z, loc=0, scale=1)
print(p)
------------------------------------------------------
1.269814253745949e-10
正如你所看到的,我们使用 Z 统计量得到了相同的结果。
一个重要的区别
我们的陪审员永远无法确定,所以他们不会接受,他们只是拒绝。我们之前说过我们拒绝零假设因为我们有足够的证据来证明零假设是错误的。
但是如果 p 值高于显著性水平呢?那么我们说我们没有拒绝零假设。为什么不接受零假设呢?
最直观的例子就是使用初审法院。在初审法庭上,原假设是被告无罪。然后我们看到一些证据来反驳零假设。
如果我们不能反驳无效假设,法官就不会说被告没有犯罪。法官只说根据所给的证据,我们不能给被告定罪。
再举一个例子:假设我们正在探索外星生命。零假设是那个星球上就没有生命。我们漫游了几英里,寻找那个星球上的人/外星人。如果我们看到任何外星人,我们可以拒绝零假设,支持另一种选择。
但是,如果我们没有看到任何外星人,我们能确定地说在这个星球上没有外星生命或者接受我们的零假设吗?也许我们需要更多的探索,也许我们需要更多的时间,也许我们已经发现了一个外星人。在这种情况下,我们不能接受零假设,我们只能拒绝它。或者,我们可以说**“我们没有学到任何有趣的东西”**。
Riddikulus: 使用p值进行假设检验可以使原假设看起来很荒谬在 STAT101 课程中,他们会教你如何在这种情况下写出令人费解的段落。(“我们没有拒绝零假设,也没有得出没有足够的统计证据支持这个星球上存在外星生命的结论。”)我总是允许我的本科生这样写:我们没有学到任何有趣的东西。
本质上,假设检验就是检查我们的观测值是否使原假设看起来很荒谬。如果是,我们拒绝零假设,称我们的结果具有统计显著性。除此之外,我们没有学到任何有趣的东西,我们继续维持现状。
英文原文:https://towardsdatascience.com/p-value-explained-simply-for-data-scientists-4c0cd7044f14
请长按或扫描二维码关注本公众号
喜欢的话,请给我个好看吧!