贝叶斯估计及其python实现

article/2025/10/8 14:03:26

文章目录

  • 1.贝叶斯估计的思想
  • 2.正态总体参数贝叶斯估计的推导
  • 3.代码实现
    • 3.1.抽取样本
    • 3.2.估计参数
  • 4.总结
  • 参考文献

1.贝叶斯估计的思想

    在统计学中有两大学派:频率学派和贝叶斯学派。针对参数估计的方法也分成两派。其中以极大似然估计为代表的频率学派和以贝叶斯估计为代表的贝叶斯学派。
    本文将详细介绍贝叶斯估计的细节。贝叶斯用概率反映知识状态的确定性程度。其基本观点是:对于任意未知量 θ \theta θ,由于真实参数 θ \theta θ是未知或不确定的,因此可以表示成随机变量,可以用一个概率分布去描述,这个分布称为先验分布。 在获得样本后,总体分布、样本与先验分布通过贝叶斯公式结合得到了一个关于参数 θ \theta θ的新的分布——后验分布
根据以上思想,可以根据贝叶斯公式给出贝叶斯估计的形式。
设样本 X = ( x 1 , x 2 , . . . , x m ) X=({x_{1},x_{2},...,x_{m}}) X=(x1,x2,...,xm)来自总体 p ( X ∣ θ ) p(X|\theta) p(Xθ), θ ∈ Θ \theta\in\Theta θΘ,参数 θ \theta θ的先验信息通过先验分布 π ( θ ) \pi (\theta) π(θ)确定。此时样本 X = ( x 1 , x 2 , . . . , x m ) X=({x_{1},x_{2},...,x_{m}}) X=(x1,x2,...,xm)联合条件概率函数为:
p ( X ∣ θ ) = p ( x 1 , x 2 , . . . , x m ∣ θ ) = ∏ i = 1 m p ( x i , θ ) (1.1) p(X|\theta)=p(x_{1},x_{2},...,x_{m}|\theta)=\prod_{i=1}^{m} p(x_{i},\pmb{\theta }) \tag{1.1} p(Xθ)=p(x1,x2,...,xmθ)=i=1mp(xi,θθ)(1.1)
根据条件概率公式,样本 X X X和参数 θ \theta θ的联合概率为
h ( X , θ ) = p ( X ∣ θ ) π ( θ ) (1.2) h(X,\theta)=p(X|\theta)\pi (\theta) \tag{1.2} h(X,θ)=p(Xθ)π(θ)(1.2)
在获得上述联合概率之后,可以得到后验概率
p ( θ ∣ X ) = h ( X , θ ) p m ( X ) = p ( X ∣ θ ) π ( θ ) p m ( X ) (1.3) p(\theta|X)=\frac{h(X,\theta)}{p_{m}{(X)}}=\frac{p(X|\theta)\pi (\theta)}{p_{m}(X)} \tag{1.3} p(θX)=pm(X)h(X,θ)=pm(X)p(Xθ)π(θ)(1.3)
其中 p m ( X ) p_{m}(X) pm(X) X X X边际概率,由以下式子确定
p m ( X ) = ∫ Θ h ( X , θ ) d θ = ∫ Θ p ( X ∣ θ ) π ( θ ) d θ (1.4) p_{m}(X)=\int_{\Theta }h(X,\theta)d\theta=\int_{\Theta }p(X|\theta)\pi (\theta)d\theta \tag{1.4} pm(X)=Θh(X,θ)dθ=Θp(Xθ)π(θ)dθ(1.4)
根据式(1.3)(1.4)得后验分布
p ( θ ∣ X ) = p ( X ∣ θ ) π ( θ ) ∫ Θ p ( X ∣ θ ) π ( θ ) d θ (1.5) p(\theta|X)=\frac{p(X|\theta)\pi (\theta)}{\int_{\Theta }p(X|\theta)\pi (\theta)d\theta} \tag{1.5} p(θX)=Θp(Xθ)π(θ)dθp(Xθ)π(θ)(1.5)
由后验分布 p ( θ ∣ X ) p(\theta|X) p(θX)估计参数 θ \theta θ主要有以下三种方法:

  • 最大后验估计——使用后验分布的密度函数最大值点作为 θ \theta θ的点估计.
  • 后验中位数估计——使用后验分布的中位数作为 θ \theta θ的点估计.
  • 后验期望估计——使用后验分布的均值作为 θ \theta θ的点估计.

2.正态总体参数贝叶斯估计的推导

    设样本 X = ( x 1 , x 2 , . . . , x m ) X=({x_{1},x_{2},...,x_{m}}) X=(x1,x2,...,xm)是来自正态分布 N ( μ , σ 0 2 ) N(\mu,\sigma_{0}^{2}) N(μ,σ02)的一个样本,其中 σ 0 2 \sigma_{0}^{2} σ02已知, μ \mu μ未知,假设 μ \mu μ的先验分布也为正态分布 N ( θ , τ 2 ) N(\theta,\tau^{2}) N(θ,τ2),其中先验均值 θ \theta θ和先验方差 τ 2 \tau^{2} τ2均为已知。
    根据贝叶斯估计的过程,可得
p ( X ∣ μ ) = ∏ i = 1 m p ( x i , μ ) = ∏ i = 1 m 1 2 π σ 0 e x p { − ( x i − μ ) 2 2 σ 0 2 } = ( 2 π σ 0 2 ) − m / 2 e x p { − 1 2 σ 0 2 ∑ i = 1 m ( x i − μ ) 2 } (2.1) \begin{aligned} p(X|\mu)&=\prod_{i=1}^{m} p(x_{i},\mu ) \\ &=\prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\sigma_{0}}exp\{-\tfrac{(x_{i}-\mu )^{2}}{2\sigma_{0}^{2}}\} \\ &=(2\pi\sigma_{0}^{2})^{-m/2}exp\{-\frac{1}{2\sigma_{0}^{2}}\sum_{i=1}^{m}(x_{i}-\mu )^{2}\} \tag{2.1} \end{aligned} p(Xμ)=i=1mp(xi,μ)=i=1m2π σ01exp{2σ02(xiμ)2}=(2πσ02)m/2exp{2σ021i=1m(xiμ)2}(2.1)
以及
π ( μ ) = 1 2 π τ e x p { − ( μ − θ ) 2 2 τ 2 } (2.2) \begin{aligned} \pi(\mu)=\frac{1}{\sqrt{2\pi}\tau}exp\{-\frac{(\mu-\theta )^{2}}{2\tau^{2}}\} \tag{2.2} \end{aligned} π(μ)=2π τ1exp{2τ2(μθ)2}(2.2)
由公式(2.1)和(2.2)可得样本 X X X和参数 μ \mu μ的联合概率

h ( X , μ ) = p ( X ∣ μ ) π ( μ ) = ( 2 π σ 0 2 ) − m / 2 1 2 π τ e x p { − 1 2 σ 0 2 ∑ i = 1 m ( x i − μ ) 2 } e x p { − ( μ − θ ) 2 2 τ 2 } = c ⋅ e x p { − m μ 2 − 2 m μ x ˉ + ∑ i = 1 m x i 2 2 σ 0 2 − μ 2 − 2 θ μ + θ 2 2 τ 2 } = c ⋅ e x p { − 1 2 [ m μ 2 − 2 m μ x ˉ + ∑ i = 1 m x i 2 σ 0 2 + μ 2 − 2 θ μ + θ 2 τ 2 ] } (2.3) \begin{aligned} h(X,\mu)&=p(X|\mu)\pi (\mu)\\ &=(2\pi\sigma_{0}^{2})^{-m/2}\frac{1}{\sqrt{2\pi}\tau}exp\{-\frac{1}{2\sigma_{0}^{2}}\sum_{i=1}^{m}(x_{i}-\mu )^{2}\}exp\{-\frac{(\mu-\theta )^{2}}{2\tau^{2}}\} \\ &=c\cdot exp\{ -\frac{m\mu^{2}-2m\mu\bar{x}+\sum_{i=1}^{m}x_{i}^{2}}{2\sigma_{0}^{2}}-\frac{\mu^{2}-2\theta\mu+\theta^{2}}{2\tau^{2}} \}\\ &=c\cdot exp\{-\frac{1}{2}[\frac{m\mu^{2}-2m\mu\bar{x}+\sum_{i=1}^{m}x_{i}^{2}}{\sigma_{0}^{2}}+\frac{\mu^{2}-2\theta\mu+\theta^{2}}{\tau^{2}} ]\}\tag{2.3} \end{aligned} h(X,μ)=p(Xμ)π(μ)=(2πσ02)m/22π τ1exp{2σ021i=1m(xiμ)2}exp{2τ2(μθ)2}=cexp{2σ02mμ22mμxˉ+i=1mxi22τ2μ22θμ+θ2}=cexp{21[σ02mμ22mμxˉ+i=1mxi2+τ2μ22θμ+θ2]}(2.3)
其中 x ˉ = 1 m ∑ i = 1 m x i , c = ( 2 π ) − ( m + 1 ) / 2 τ − 1 σ 0 − m \bar{x}=\frac{1}{m}\sum_{i=1}^{m}x_{i},c=(2\pi)^{-(m+1)/2}\tau^{-1}\sigma_{0}^{-m} xˉ=m1i=1mxi,c=(2π)(m+1)/2τ1σ0m

A = m σ 0 2 + 1 τ 2 , B = m x ˉ σ 0 2 + θ τ 2 , C = ∑ i = 1 m x i 2 σ 0 2 + θ 2 τ 2 (2.4) A=\frac{m}{\sigma_{0}^{2}}+\frac{1}{\tau^{2}},B=\frac{m\bar{x}}{\sigma_{0}^{2}}+\frac{\theta}{\tau^{2}},C=\frac{\sum_{i=1}^{m}x_{i}^{2}}{\sigma_{0}^{2}}+\frac{\theta^{2}}{\tau^{2}} \tag{2.4} A=σ02m+τ21,B=σ02mxˉ+τ2θ,C=σ02i=1mxi2+τ2θ2(2.4)
则有
h ( X , μ ) = c ⋅ e x p { − 1 2 [ A μ 2 − 2 B μ + C ] } = c ⋅ e x p { − ( μ − B / A ) 2 2 / A − C − B 2 / A 2 } (2.5) \begin{aligned} h(X,\mu) &=c\cdot exp\{-\frac{1}{2}[A\mu^{2}-2B\mu+C]\}\\ &=c\cdot exp\{-\frac{(\mu-B/A)^{2}}{2/A}-\frac{C-B^{2}/A}{2}\}\tag{2.5} \end{aligned} h(X,μ)=cexp{21[Aμ22Bμ+C]}=cexp{2/A(μB/A)22CB2/A}(2.5)
考虑到 A , B , C A,B,C A,B,C均与 μ \mu μ无关,故容易计算 X X X的边际概率密度函数为
p m ( X ) = ∫ − ∞ + ∞ h ( X , μ ) d μ = c ⋅ ( 2 π / A ) 1 / 2 e x p { − C − B 2 / A 2 } (2.6) \begin{aligned} p_{m}(X)&= \int_{-\infty}^{+\infty}h(X,\mu)d\mu\\ &=c\cdot (2\pi/A)^{1/2}exp\{-\frac{C-B^{2}/A}{2}\}\\\tag{2.6} \end{aligned} pm(X)=+h(X,μ)dμ=c(2π/A)1/2exp{2CB2/A}(2.6)
应用贝叶斯公式可得
p ( μ ∣ X ) = h ( X , μ ) p m ( X ) = ( 2 π / A ) − 1 / 2 e x p { − ( μ − B / A ) 2 2 / A } = 1 2 π A − 1 / 2 e x p { − ( μ − B / A ) 2 2 A − 1 } (2.7) \begin{aligned} p(\mu|X)&= \frac{h(X,\mu)}{p_{m}{(X)}}\\ &=(2\pi/A)^{-1/2}exp\{-\frac{(\mu-B/A)^{2}}{2/A}\}\\ \tag {2.7} &=\frac{1}{\sqrt{2\pi}A^{-1/2}}exp\{-\frac{(\mu-B/A)^{2}}{2A^{-1}}\} \end{aligned} p(μX)=pm(X)h(X,μ)=(2π/A)1/2exp{2/A(μB/A)2}=2π A1/21exp{2A1(μB/A)2}(2.7)
从上式可知, μ \mu μ的后验分布为 N ( B / A , 1 / A ) N(B/A,1/A) N(B/A,1/A),即
μ ∣ X ∼ N ( m x ˉ σ 0 − 2 + θ τ − 2 m σ 0 − 2 + τ − 2 , 1 m σ 0 − 2 + τ − 2 ) (2.8) \mu|X\sim N(\frac{m\bar{x}\sigma_{0}^{-2}+\theta\tau^{-2}}{m\sigma_{0}^{-2}+\tau^{-2}},\frac{1}{m\sigma_{0}^{-2}+\tau^{-2}}) \tag {2.8} μXN(mσ02+τ2mxˉσ02+θτ2,mσ02+τ21)(2.8)
后验分布的均值即为参数 μ \mu μ后验期望估计
μ ^ = m x ˉ σ 0 − 2 + θ τ − 2 m σ 0 − 2 + τ − 2 (2.9) \hat{\mu}=\frac{m\bar{x}\sigma_{0}^{-2}+\theta\tau^{-2}}{m\sigma_{0}^{-2}+\tau^{-2}} \tag {2.9} μ^=mσ02+τ2mxˉσ02+θτ2(2.9)

3.代码实现

3.1.抽取样本

import numpy as np
import matplotlib.pyplot as plt

首先从 μ = 2 , σ = 4 \mu=2,\sigma=4 μ=2,σ=4的正态分布中抽取 m = 100000 m=100000 m=100000个样本

np.random.seed(10)
mu=2;sigma=4;m=100000
X=np.sort(np.random.normal(mu,sigma,m))
y=(1/np.sqrt(2*np.pi)*sigma)*np.exp(-(X-mu)**2/(2*sigma**2))

3.2.估计参数

根据后验分布,使用python实现 μ ^ \hat{\mu} μ^,即式(2.9)

def bayesian_estimate(X,sigma0,theta,tau):m=len(X)mu_p=(m*np.mean(X)*(sigma0**-2)+theta*(tau**-2))/(m*(sigma0**-2)+(tau**-2))sigma_p=(1)/(m*(sigma0**-2)+(tau**-2))return mu_p,np.sqrt(sigma_p)

假设 μ \mu μ的先验分布为 N ( 4 , 4 ) N(4,4) N(4,4),得到后验均值估计:

mu_p,sigma_p=bayesian_estimate(X,sigma,4,2)
print("后验分布均值::{}\n后验分布标准差:{}".format(mu_p,sigma_p))

结果:

后验分布均值::1.9881668135649222

后验分布标准差:0.012648857666049918

对应的最大后验估计和后验中位数估计为

mu_p_median=np.median(X1)
mu_p_max=X1[np.argmax(y1)]
print("后验中位数估计:{}\n最大后验估计:{}".format(mu_p_median,mu_p_max))

结果:

后验中位数估计:1.9881840597010452

最大后验估计:1.988166738777464

def plot_density(X,y,mu,sigma):fig=plt.Figure()grid=plt.GridSpec(1,1)axes=fig.add_subplot(grid[0,0])axes.plot(X,y)axes.set_xlabel("x")axes.set_ylabel("$p(x)$")for dire in ['top','right']:axes.spines[dire].set_visible(False)axes.vlines(mu,ymin=0,ymax=np.max(y),color='red')axes.text(2, 0.5*np.max(y), '$\mu={},\sigma={}$'.format(round(mu,4),round(sigma,4)))fig.subplots_adjust(left=0.1, bottom=0.12, right=0.96, top=0.95, wspace=0.5, hspace=0.5)axes.text(mu, 0.4*np.max(y), '$x={}$'.format(round(mu,4)))return fig

从后验分布中抽取100000个样本,绘制后验分布概率密度曲线,如下图:

X1=np.sort(np.random.normal(mu_p,sigma_p,100000))
y1=(1/(np.sqrt(2*np.pi)*sigma_p))*np.exp(-(X1-mu_p)**2/(2*sigma_p**2))
fig=plot_density1(X1,y1,mu_p,sigma_p)

在这里插入图片描述

4.总结

    从估计结果来看,贝叶斯估计对总体均值的估计误差较小。

参考文献

[1] 茆诗松,程依明,濮晓龙.概率论与数理统计教程[M]. 北京:高等教育出版社, 2019. 294-298.
[2] Rice J A. Mathematical statistics and data analysis[M]. Cengage Learning, 2006.
[3] Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press, 2016.


http://chatgpt.dhexx.cn/article/PcW3V1Zs.shtml

相关文章

贝叶斯估计和极大似然估计到底有何区别

前言:原创不易,转载请告知并注明出处!微信搜索【机器学习与自然语言处理】公众号,定期发布知识图谱,自然语言处理、机器学习等知识,添加微信号【17865190919】进讨论群,加好友时备注来自CSDN。 …

【数学基础】参数估计之贝叶斯估计

从统计推断讲起 统计推断是根据样本信息对总体分布或总体的特征数进行推断,事实上,这经典学派对统计推断的规定,这里的统计推断使用到两种信息:总体信息和样本信息;而贝叶斯学派认为,除了上述两种信息以外…

贝叶斯估计与贝叶斯学习的区别

概述: 贝叶斯估计:贝叶斯估计是把待估计的参数看作具有先验分布密度p()的随机变量,其取值与样本D有关,用训练样本D估计出最优的,记为。 贝叶斯学习 :把贝叶斯估计的原理用于直接从数据对概率密度函数进行…

vue3页面刷新

整理工作中用到的页面刷新方式&#xff1a; 1.provide/inject 2.router.go(0) 3.provide,inject 一、使用provide和inject 控制<router-view>的显示隐藏 默认<router-view v-if"isRouterAlive" /> isRouterAlive是true&#xff0c;在需要刷新的时候把这…

js 页面刷新

刷新为新的页面 获得当前页面的url,即浏览器显示的地址: window.location.href; 按下enter,页面刷新为百度 刷新为当前页面 1,history.go(0)2,location.reload() 3,location=location 4,location.assign(location) 5,document.execcommand(‘refresh‘) 6,window.na…

Web页面自刷新

简单介绍两种&#xff1a; 第一种Ajax Ajax Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;&#xff0c;ajax就是基于浏览器提供的XMLHttpRequest对象来实现的 什么叫异步&#xff1f; 异步&#xff0c;不同的意思&#xff0c;这里也就…

页面刷新技术-------AJAX

一、前提步骤&#xff08;先把静态网页写出来&#xff09; 1、首先先要配置文件 2、然后去后端建立服务器&#xff0c;把该下载的模块下载好 var httprequire("http") var fsrequire("fs") var urlrequire("url") var querystringrequire(&quo…

页面刷新和vue页面刷新

history.go(0) location.reload() locationlocation location.assign(location) document.execCommand(Refresh) window.navigate(location) location.replace(location) document.URLlocation.href这几个都可以刷新&#xff1a; window.location.reload();刷新 window.locatio…

vue关于页面刷新的几个方式

在写项目的时候会遇到需要刷新页面重新获取数据&#xff0c;浅浅总结了一下几种方案。 1.this.$router.go(0) 强制刷新页面&#xff0c;会出现一瞬间的白屏&#xff0c;用户体验感不好。 2.location.reload() 也是强制刷新页面&#xff0c;和第一种方法一样&#xff0c;会造成…

HTML页面刷新及其应用例子

HTML页面刷新及其应用例子 刷新一般指重新载入当前页面。本文先给出html页面刷新重载方法汇总&#xff0c;再给出示例。 html页面刷新重载方法汇总 一、javascript页面刷新重载的方法&#xff1a; <a href"javascript:location.reload();">点击重新载入页面…

vue页面刷新

vue页面刷新 首先我们都知道vue属于单页面应用&#xff0c;默认境况下是不会触发刷新页面操作的&#xff0c;所以这个时候就需要我们通过事件来触发reload()来达到刷新操作 接下来我就为大家介绍三种刷新页面的方法 1. wiindow.location.reload([bForceGet])该方法强迫浏览…

hadoop 学习路线

Posted: Sep 6, 2013 Tags: Hadoophadoop familyroadmap Comments: 40 Comments Hadoop家族学习路线图 Hadoop家族系列文章&#xff0c;主要介绍Hadoop家族产品&#xff0c;常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa&am…

Hadoop 学习路线图

主要介绍Hadoop家族产品&#xff0c;常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa&#xff0c;新增加的项目包括&#xff0c;YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。 从2011年开始&…

Hadoop学习路线

Hadoop基础 Hadoop是一个能够对大量数据进行分布式处理的软件框架&#xff0c;它是一种技术的实现&#xff0c;是云计算技术中重要的组成部分&#xff0c;云计算的概念更广泛且偏向业务而不是必须拘泥于某项具体技术&#xff0c;云计算的存在只是一种新的商业计算模型和服务模…

第11期:Hadoop零基础学习路线

大家好&#xff0c;我是你们的老朋友老王随聊&#xff0c;今天和大家讨论的话题——Hadoop零基础应该怎么学&#xff1f; 通过这段时间和群里同学们交流&#xff0c;发现很多大学生甚至职场小白对Hadoop学习路线不是很清晰&#xff0c;所以我花了一些时间给大家整理了一张Hadoo…

hadoop学习路线图

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群的威力进行高速运算和存储。而对于hadoop的学习是大数据学习中的重要一个环节&#xff0c;于是乎有很多人想要知道hadoop学习路线图。…

Python的基础编程

1. python的基本语法 Python是一个结合了解释性、编译性、互动性和面向对象的高级程序设计语言&#xff0c;结构简单&#xff0c;语法定义清晰&#xff1b; Python最具特色的就是使用缩进来表示代码块&#xff0c;不需要使用大括号{}&#xff0c;但每一个模块内的语句必须包含…

【Java编程指南】语法基础

目录 一、前言 二、关键字 三、数据类型 1.存储单元 2.存储范围 3.类型转换 四、常量 五、变量 六、标识符 七、注释 一、前言 学习目标 1&#xff1a;熟悉Java的关键字、数据类型&#xff08;包括范围&#xff09;、常量与变量的区别 学习目标 2&#xff1a;类型转…

新手小白零基础,该怎样学习编程呢?

零基础编程入门先学什么&#xff1f;编程语言有几百种&#xff0c;我们应该怎么选择。想学习编程&#xff0c;加入互联网行业&#xff0c;哪一个更有前途&#xff1f;在小白学习编程会有各种各样的问题&#xff0c;今天小编我就来为你解答。 一、怎么选择编程语言 编程语言有很…

如何打好编程基础

如何打好编程基础 这篇文章是写给那些真心想学编程的人看的——那些憋着一股狠劲儿,一定要做出个什么真东西,不学好不罢休的人;而不是那些「听说编程好玩」的人,在我看来,这种人永远都入不了编程的门,更别提做出个像样的东西来了。 心态调整 确定目标 在你学习编程之前思…