了解后验和共轭先验

Suppose you’ve tossed a coin 1,000 times and obtained 292. You’d like to know what the probability of obtaining heads is from a single coin toss — but you don’t just want a single estimate, you want an entire distribution. If you define

假设您抛硬币1,000次并获得292。您想知道一次抛硬币获得正面的概率是多少–但您不仅需要一个估计,还需要一个完整的分布。 如果您定义

  • y: the number of heads you obtain

    y :获得的头数

  • θ: the probability of obtaining heads from a single coin toss

    θ :从一次抛硬币获得正面的概率

and then model y as a binomial distribution with n=1,000, then the posterior distribution is very easy to obtain with just a few lines of code:

然后将y建模为n = 1,000的二项式分布 那么只需几行代码就很容易获得后验分布:

import arviz as az
import pymc3 as pm


N = 1000
N_HEADS = 292


with pm.Model() as model:
    theta = pm.Beta("θ", alpha=1.0, beta=1.0)
    y = pm.Binomial("y", n=N, p=theta, observed=N_HEADS)
    trace = pm.sample(return_inferencedata=True)


az.plot_posterior(trace.posterior)
Image for post
Image by author
图片作者

But…could we have calculated this distribution analytically without PyMC3’s help?

但是……在没有 PyMC3的帮助下,我们可以分析地计算此分布吗?

贝叶斯定理 (Bayes’ theorem)

From Bayes’ theorem, we have:

根据贝叶斯定理 ,我们有:

Image for post
Image by author
图片作者

Applying this to our problem, we obtain

将其应用于我们的问题,我们获得

Image for post
Image by author
图片作者

Substituting the definitions of the two distributions, we can re-write the right-hand-side as

替换两个分布的定义,我们可以将右侧重写为

Image for post
Image by author
图片作者

Removing constants (that don’t depend on theta), we can substitute this into the equation above to obtain

删除常量(不依赖于theta),我们可以将其代入上面的等式以获得

Image for post
Image by author
图片作者

which we can recognise (by inspection) as a Beta(292+1, 1000–292+1) distribution. Because our posterior and our prior are from the same family, the Beta distribution is known as a conjugate prior for the Binomial distribution.

我们可以通过检查将其识别为Beta (292 + 1,1000–292 + 1)分布。 因为我们的后验和我们的先验来自同一家族,所以Beta分布被称为二项分布的共轭先验

If we try plotting this using scipy, we’ll get the same distribution that PyMC3 has calculated for us:

如果我们尝试使用scipy进行绘制,我们将获得与PyMC3为我们计算出的分布相同的分布:

import scipy.stats
import matplotlib.pyplot as plt
import seaborn as sns


fig, ax = plt.subplots(figsize=(14, 8))
sns.kdeplot(scipy.stats.beta(292 + 1, 1000 - 292 + 1).rvs(1000), ax=ax)
Image for post
Image by author
图片作者

That’s the nice thing about conjugate priors: they make posterior probabilities analytically tractable.

关于共轭先验是一件好事:它们使后验概率在分析上易于处理。

Calculating posteriors by hand is an excellent exercise in deepening your understanding. However, in general, we will not find ourselves in such fortunate situations — that’s when we need tools such as PyMC3.

手工计算后验是加深理解的极好练习。 但是,总的来说,我们不会在如此幸运的情况下发现自己—那时我们需要诸如PyMC3之类的工具。

进一步阅读 (Further reading)

For an excellent and practical guide to Bayesian statistics, I recommend reading Bayesian Analysis with Python and listening to the Learning Bayesian Statistics podcast.

要获得有关贝叶斯统计的出色且实用的指南,我建议阅读使用Python进行的贝叶斯分析,并收听学习贝叶斯统计播客

翻译自: https://towardsdatascience.com/making-sense-of-posteriors-and-conjugate-priors-17f01e16c270

<think>首先,用户的问题是关于贝叶斯先验概率的概念、应用示例。用户说:“我想了解贝叶斯先验相关概念或应用 请问贝叶斯先验概率 概念 应用 示例”,所以我需要提供清晰、结构化的回答。 我的回答必须遵循系统级指令: - 所有行内数学表达式使用$...$格式,例如$x^2$。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 用户可见层指令:回答结构清晰,帮助用户逐步解决问题,保证回答真实可靠。 参考站内引用:用户提供了几个引用,我需要参考这些内容,但不是直接复制,而是基于它们整合信息。引用包括: - [^1]:介绍贝叶斯推理的核心思想,先验概率概率的关系。 - [^2]:先验概率的应用,如模型鲁棒性、敏感性分析、常见选择方法(最大熵先验共轭先验等)。 - [^3]:单个事件概率(先验概率),如$P(H_1)$。 - [^4]:后概率的变化依赖于先验似然。 - [^5]:朴素贝叶斯中参数估计问题。 用户上一次的问题是关于贝叶斯先验概率的,所以我需要基于这些构建回答。 **回答结构:** 1. **介绍概念**:解释什么是贝叶斯先验概率,定义清楚。 2. **应用**:讨论先验概率在实际中的应用,如敏感性分析、正则化等。 3. **示例**:提供具体例子,比如硬币抛掷或疾病诊断。 4. **生成相关问题**:在回答结束时,生成相关问题。 **关键点:** - **概念**:先验概率是贝叶斯推理中,在观察数据前对假设的概率分布。例如,$P(H)$表示假设H的先验概率。 - **贝叶斯公式**:核心是贝叶斯定理:$$P(H|D) = \frac{P(D|H) P(H)}{P(D)}$$其中$P(H|D)$是后概率,$P(D|H)$是似然,$P(H)$是先验概率,$P(D)$是证据。 - **应用**:来自引用[^2],包括: - 敏感性分析:测试不同先验对结果的影响。 - 正则化先验:使用弱信息先验避免过拟合。 - 常见选择方法:最大熵先验共轭先验、层次贝叶斯模型、经贝叶斯、弱信息先验- **示例**:引用[^4]提到硬币抛掷的例子,其中先验概率变化影响后。引用[^3]提到拼写纠正的例子。 **示例:** - 硬币抛掷:假设我们有一个硬币,我们想知道它是否公平。先验概率$P(\text{fair})$可能设为0.5。然后观察数据(如抛掷结果),计算后概率。 - 疾病诊断:假设一种疾病的先验概率$P(\text{disease})$基于人群发病率。然后根据测试结果更新后概率。 **数学表达式:** - 行内:例如,先验概率$P(H)$。 - 独立:贝叶斯公式使用$$...$$。 **引用:** 在回答中自然地添加引用标识,例如在描述应用时引用[^2]。 **生成相关问题:** 在结尾部分,列出2-3个相关问题。 完整回答大纲: 1. **概念部分**: - 定义先验概率。 - 解释贝叶斯定理。 - 引用[^1]介绍核心思想。 2. **应用部分**: - 讨论各种应用选择方法。 - 引用[^2]中的具体点。 3. **示例部分**: - 提供简单例子。 - 可能引用[^4]或[^3]。 4. **相关问题**: - 例如:如何选择先验概率?先验概率在机器学习中的应用? 确保回答真实可靠:基于标准贝叶斯统计知识。</think>### 贝叶斯先验概率:概念、应用与示例 贝叶斯先验概率是贝叶斯推理的核心概念之一,它表示在观察到新数据之前,对某个假设或参数的主观或客观概率分布。贝叶斯方法强调通过数据更新信念,公式基于贝叶斯定理: $$P(H|D) = \frac{P(D|H) P(H)}{P(D)}$$ 其中: - $P(H)$ 是先验概率(Prior Probability),代表观察数据 $D$ 前对假设 $H$ 的初始信念。 - $P(D|H)$ 是似然函数(Likelihood),表示在假设 $H$ 下观察到数据 $D$ 的概率。 - $P(D)$ 是证据(Evidence),用于归一化。 - $P(H|D)$ 是后概率(Posterior Probability),代表观察到数据 $D$ 后对 $H$ 的更新信念。 先验概率的设定直接影响后概率的计算,体现了贝叶斯方法的“学习”过程[^1]。下面我将逐步介绍其概念、应用示例,确保内容真实可靠,基于经典贝叶斯统计理论。 --- #### 1. **概念详解** 先验概率是贝叶斯推理的起点,分为两类: - **主观先验**:基于专家知识或历史经设定(如医生对疾病发病率的估计)。 - **客观先验**:基于数据或数学原则(如均匀分布表示无信息状态)。 在贝叶斯框架中,先验概率的作用是引入先验知识,避免仅依赖有限数据导致的过拟合。例如,在朴素贝叶斯分类器中,先验概率 $P(Y=c_k)$ 表示类别 $c_k$ 的初始概率,假设特征独立以简化计算[^5]。先验概率的合理性对模型鲁棒性至关重要,不当的先验可能导致后概率偏差[^4]。 引用示例:在拼写纠正中,输入单词 $H_1$ 的先验概率 $P(H_1)$ 表示常见词的概率(如“the”比“thx”更高),结合错误数据 $D$ 更新后概率[^3]。 --- #### 2. **应用场景** 先验概率在多个领域有广泛应用,尤其在数据稀缺或需要稳健性的场景: - **敏感性分析**:测试不同先验对后的影响,选择波动小的先验(如后概率变化 <5%),确保模型稳定性[^2]。 - **正则化与抗过拟合**:使用弱信息先验(如高斯分布 $P(\theta) \sim \mathcal{N}(0, 100)$,方差较大),避免数据噪声主导结果,常见于机器学习模型[^2]。 - **参数估计**:在层次贝叶斯模型中,先验共享超参数(如多用户推荐系统中,用户偏好先验服从同一分布),减少数据稀疏性问题[^2]。 - **决策理论**:在医疗诊断中,先验概率 $P(\text{disease})$ 基于人群发病率,结合测试似然更新后概率,辅助临床决策。 关键选择方法包括: - **共轭先验**:简化计算,例如二项分布的似然对应 Beta 先验,便于解析求解后[^2]。 - **最大熵先验**:缺乏信息时,假设均匀分布(如 $P(H_1)=P(H_2)=0.5$),表示最大不确定性[^2]。 - **经贝叶斯**:从数据估计先验参数(如电商点击率 $P(\text{点击})=0.2$ 作为先验),平衡主观与客观信息[^2]。 这些应用提升了模型的可解释性泛化能力,尤其在贝叶斯网络 AI 模型中。 --- #### 3. **具体示例** 以下示例说明先验概率如何影响推理: - **硬币抛掷问题**: 假设一枚硬币可能不公平,我们设先验概率 $P(p=0.5) = 0.6$(公平硬币的概率),$P(p=0.7) = 0.4$(偏向正面的概率)。观察到数据 $D$(10 次抛掷中 8 次正面),似然 $P(D|p)$ 为二项分布。 后概率计算为: $$P(p|D) \propto P(D|p) P(p)$$ 如果 $p=0.5$ 的似然低($P(D|p=0.5) \approx 0.044$),后 $P(p=0.5|D)$ 下降;而 $p=0.7$ 的似然高($P(D|p=0.7) \approx 0.233$),后增加[^4]。这展示先验如何被数据“更新”。 - **疾病诊断示例**: 一种罕见病的先验概率 $P(\text{疾病}) = 0.01$(基于人群发病率)。测试的似然 $P(\text{阳性}|\text{疾病}) = 0.99$(灵敏度高)。 若测试阳性,后概率为: $$P(\text{疾病}|\text{阳性}) = \frac{P(\text{阳性}|\text{疾病}) P(\text{疾病})}{P(\text{阳性})}$$ 其中 $P(\text{阳性}) = P(\text{阳性}|\text{疾病})P(\text{疾病}) + P(\text{阳性}|\text{健康})P(\text{健康})$。 即使测试阳性,后概率可能仍较低(如约 50%),突显先验概率的重要性。 - **朴素贝叶斯分类**: 在垃圾邮件过滤中,先验 $P(\text{垃圾邮件})$ 设为训练集中垃圾邮件的比例(如 0.3)。结合特征似然(如关键词“免费”的出现概率),计算后 $P(\text{垃圾邮件}|\text{邮件内容})$ 进行分类[^5]。 这些示例显示,先验概率是贝叶斯推理的“锚点”,数据通过似然调整后信念。 --- #### 相关问题 1. 如何选择适当的先验概率以避免模型偏差? 2. 贝叶斯先验概率在机器学习模型(如深度学习)中有哪些应用? 3. 先验概率与频率学派方法的主要区别是什么?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值