生活是不确定的,而统计学可以通过应用概率和推理的概念,帮助我们在这个不确定的世界中量化确定性。然而,有两种主要的推理方法。
![](https://img.haomeiwen.com/i184712/7a45263485bd4957.png)
概率论
发现频繁论和贝叶斯方法之间的区别。
频繁论者(经典)
贝叶斯派
让我们用众所周知的、简单的硬币翻转例子来看看这两种方法。
在抛出10次硬币并观察到1个正面和9个反面后,我们能对硬币的公平性说些什么?
虽然10次是确定硬币公平性的小样本量,但我选择它是因为在现实生活中收集大量的样本是很困难的,特别是当风险和机会成本很高的时候。
频繁推断法。
这是在大学里普遍教授的,也是在工业界经常使用的,但它并非没有批评。
基本思想。频繁主义方法计算P值,即假设无效假设为真,观察到的结果至少与我们观察到的数据中的结果一样极端的概率。
在这种情况下,无效假设和备选假设将是。
H0:硬币是公平的
H1: 硬币是有偏见的
假设硬币是公平的,我们计算一下看到像1个头这样极端的东西的概率。也就是1个头,0个头,以及另一边的9个头和10个头。将这四种情况相加的结果是概率为0.021。
from scipy.stats import binom
binom.pmf(k=9, n=10, p=0.5) +binom.pmf(k=10, n=10, p=0.5) +binom.pmf(k=0, n=10, p=0.5) +binom.pmf(k=1, n=10, p=0.5)
因此,在5%的显著性下,我们可以自信地拒绝无效假设,并以95%的确定性得出结论:硬币是有偏见的。
到目前为止,一切似乎都很正常,我们已经确定硬币是有偏见的。那么,问题是什么呢?
假设观察者对这个答案不满意,并继续用同一枚硬币观察另外十个样本。他对这枚硬币的推断会一样吗?不一定。这一次,他可以看到5个正面和5个反面,并得出结论说,这枚硬币没有偏向。因此,我们很难在相同的条件下再现相同的结果。
此外,我们永远不会了解我们的无效假设有多合理,因为我们假设它是真的--你可以提出一个荒谬的主张,然后设计一个实验来拒绝或接受无效假设。
那么,我们是否有其他稳健的方法可以克服这些限制?
贝叶斯推断法采取了与频繁主义方法非常不同的观点,我们不是从观察到的数据中估计单一的群体参数,而是用整个概率分布来描述它们的特征,这些概率分布代表了我们对它们的了解和不确定性。
我们从先验概率开始,它代表了我们在看到数据之前对参数的了解,然后我们进行观察,并根据观察结果使用贝叶斯规则将先验更新为后验。
因此,让我们从贝叶斯规则开始。
![](https://img.haomeiwen.com/i184712/06b7c73807fd5d00.png)
贝叶斯定理
方程中的Theta是实验的成功率,这里的Data是实验中观察到的数据,让我们来理解方程中的每一个项
-
P(theta)--也叫先验--是指在看到数据之前的成功概率,这个是指
-
P(theta | Data) - 也叫后验 - 是指考虑到观察到的数据后,假设为真的概率。
-
P(数据 | Theta) - 也叫可能性 - 它是数据提供的关于假设的证据。
-
P(数据) - 也叫归一化 - 是考虑到所有可能的假设后的数据的总概率。
关于一个事件的推断可以通过三种方式提供。
完全基于你以前的经验,没有任何观察到的数据,--即基于P(theta)
又称先验,这是一种非统计学的处理方式。
第二种方法是频繁主义方法,在这种方法中,我们预计如果假设为真,观察到这种结果的罕见程度,即p(data | theta)
又称可能性,这意味着我们只是依靠观察到的数据而不是其他。
最后,我们有贝叶斯推理,它使用我们的先验知识p(theta)
和我们的观察数据来构建一个可能的后验分布。因此,频繁主义推理和贝叶斯推理之间的一个关键区别是我们的先验知识,即p(theta)
因此,在贝叶斯推理中,我们从一个先验信念开始。然后我们检查观察到的数据,让每一个数据都能稍微改变我们之前的理解。我们观察的数据越多,我们就越能偏离我们的初始信念。这个过程最后产生了一个后验信念。
但有一个问题:如果先验指的是我们以前的理解,这不就增加了实验者的偏见吗?如果我们因为不同的先验而获得不同的结果呢?这些都是合理的问题,然而,先验是贝叶斯推理的一个重要部分,人们应该确保他的先验是相关的。
所以,为了精确计算后验,我们需要一个假设的先验和似然,但在大多数实验中,假设的先验概率是未知的。在这种情况下,我们可以假设概率(theta)在0和1之间均匀分布。
让我们回到抛硬币的例子。
p(theta)--成功的概率(人头)--在看到数据之前,成功的概率是多少--由于我们对硬币没有任何先验知识,我们假设它在0和1之间均匀分布。
让我们从贝叶斯分析开始--后验可以通过几种方式计算。在这种情况下,我使用网格近似法来估计它。
假设观测值为
[T,T,T,T,T,T,T,T,H]
让我们导入所需的包
import numpy as np
import matplotlib.pyplot as plt
#在0和1之间取一个1000个点的网格
probability_grid = np.linspace(0,1,num= 1000)
#由于我们假设0和1之间的分布是均匀的(即所有1000个网格点的分布是均匀的)
prior_probability = np.ones(1000)
![](https://img.haomeiwen.com/i184712/e091bc0a1e142a92.png)
先验分布0的轨迹,0和1之间的均匀分布
现在让我们抛一次硬币,我们观察到一个尾巴
#后验 = prior_probability * probability_data
#后验 = (后验/后验之和)*1000
probability_data = binom.cdf(k=0, n=1, p=probability_grid)
posterior = prior_probability * probability_data
posterior = (posterior/sum(posterior))*1000
![](https://img.haomeiwen.com/i184712/de9f1887faa1aa86.png)
1次跟踪后的后验
这个后验更新的过程必须对所有10条线索重复进行,每条线索后的后验显示如下。
每条线索后的后验值
我分别迭代了所有的轨迹来演示这个过程。我们可以使用Pymc3包来一气呵成。
导入所需的包
import pymc3 as pm
import arviz as az
tosses_output = [ 0,0,0,0,0,0,0,0,1] 。
with pm.Model() as model:
# 让我们定义先验
hypo = pm.Beta('hypo', 2, 2)
# 定义概率
data = pm.Bernoulli('data', hypo, observed=tosses)
# 取样
trace = pm.sample(return_inferencedata=True)
视觉化
az.plot_posterior(trace, hdi_prob=0.95)
![](https://img.haomeiwen.com/i184712/f9820034e2146954.png)
头部概率的95%CI
那么,我们完成了什么?我们不是简单地说明硬币是否有偏差,而是得到了整个成功的分布,从中我们可以回答诸如最可能的人头概率、人头的置信区间等问题。
最后,我将用一幅漫画来帮助你记住贝叶斯和频繁主义思维之间的区别。
![](https://img.haomeiwen.com/i184712/90da91399b34c52c.png)
频繁派推论不考虑太阳爆炸的 "先验 "概率,由于它只基于观察到的数据,纯粹的频繁派方法会遇到问题。频繁论者根据无效假设来研究发现的可能性有多大,但它并不考虑该假设在先验时是否更加不可信。
参考文献和补充阅读
[1] 统计学中的常数派和贝叶斯方法
[2] 频繁主义和贝叶斯推断的比较
[3] 信号与噪声
[4] 贝叶斯与常数论方法的比较
[5] 概率概念解释。用于参数估计的贝叶斯推理。
[6] Andre Schumacher在DTC的演讲
[7] Richard McElreath的2019年统计学反思讲座
本文由mdnice多平台发布
网友评论