t分布f分布与样本均值抽样分布_分布模拟1——MCMC抽样方法

分布是一系列数字的规律组合。如果在收集了历史中的几百个数据后,我想知道这群数据背后的发射机制是什么,那么就得去寻找这个分布。当然这里的重点不是寻找分布,而是在已知分布的情况下,如何模拟这个机制发射出来的一系列数字呢?

MCMC(Markov Chain Monte Carlo)是马尔科夫链下的蒙特卡洛方法,因为马尔科夫链在满足某些条件下具有平稳分布,如果能够将平稳分布与目标分布联系起来,那么就可以达到对目标分布进行抽样的目的。这里主要介绍的是Metropolis Hasting 算法和Gibbs sampling 算法。

一、Metropolis Hasting

1、算法理解

我们的目标是对Target Distribution进行抽样,首先,我们要引入一条具有平稳分布的马氏链,这条马氏链收敛的平稳分布我们称为Proposal Distribution,而这条马氏链的表现形式是概率转移矩阵

,状态空间
,状态空间也即是Proposal distribution的所有可能取值集合。

如何根据这条马氏链求得目标分布呢?这里由马氏链的细致平稳性引入。

是目标分布下的随机变量,
是proposal distribution下的随机变量。

(1.1)成立。(由马氏链的细致平稳性得到,表示i,j状态之间的能量转换相等)

(1.2)(因为
是两个不同的分布)

(1.3)

为了使(1.2)式成立,所以引入了接受率

。其中
即将不等式的左右两边互相相乘,即可得到式子(1.3)。接受率
表示是否决定抽取下一个样本(i.e., 接受样本j),因此我们需要将这个概率实现,因为在实际抽样过程中,决定抽样和不抽样是一个二元过程,而不是说以多大的概率决定抽样。这个概率实现可以用伯努利分布,也可以用均匀分布:当均匀分布下的数值小于接受率时,决定抽样,反之不抽样。

以上就是Metropolis抽样方法的全部内容了,而Metropolis hasting 算法则对接受率做了一点改进。当接受率太小的时候,我们很难从当前的样本值跳到其他状态,所以对

进行了扩大。将
中的较大值扩充到1(即一定会抽取下个样本),另外一个值等比例扩大。经过计算可以得到表达式
。在计算接受率的过程中,我们就会发现,目标分布的常数项被抵消了,也去除了归一化的过程。

2、proposal distribution的选取

f7fc6044914d6a96dcad71d648aea98d.png

当proposal distribution与目标分布越靠近时,抽取的样本也就越合理。但是proposal distribution下的马氏链如何确定,两个分布的距离如何衡量,这些也都是可以继续探讨也需要权衡的问题。

3、共轭的正态分布示例

已知,
未知,在贝叶斯统计下,
是一个随机变量,其先验分布为
已知。如何利用Metropolis-Hasting算法,在观察数据Y下求得
后验分布得期望和方差?

我们用M-H抽样算法来检验上面得后验分布是否准确。即在已知得各参数和观测值y下抽出一系列的

  1. 找到下一个状态
    。这里proposal distribution设为正态分布。生成
    ,
    .
  2. 接受率
    .其中,
    为随机变量
    的概率密度。
  3. 接受率的概率实现。如果接受,
    ,否则,
import 

二、Gibbs sampling

1、算法理解

Gibbs sampling适用于高维分布的抽样问题。在M-H抽样算法的基础上,如果我们能够比较容易的得到条件分布,那么就可以通过固定其他维度,一次只对一个维度上的条件分布抽样的方法进行全局抽样。

Gibbs sampling里的接受率恒为1。举例说明,

两个样本点满足马氏链的细致平稳条件。因为
其中,
表示从A点转移到B点的转移概率。所以在二维的分布中,可以得到从任意一个点转移到另外一个点都是平稳的,限制是每次变换只能转移一个维度。二维转移图可如下所示。

35ea327c699580f5de1f2eea394af8f5.png

2、示例

一只鸡每天会下N个蛋,N服从参数为

的泊松分布,每个鸡蛋成功孵出小鸡的比例为p。p未知,其先验分布服从beta分布。
.参数
已知。我们的观测数据只有每天孵出的小鸡个数
,
属于隐变量,观测不到。如何通过Gibbs Sampling 方法找到p的后验期望呢?

在不引入随机变量N的时候,后验分布比较麻烦。引入N后,可得,

通过迭代,即可得到p,N的抽样值。

x, lambda1, a, b = 7, 10, 1, 1
niter = 10000
p = [0 for i in range(niter)]
N = [0 for i in range(niter)]#初始值
p[0] = 0.5 
N[0] = 2*x
for i in range(1,niter):p[i] = random.betavariate(x+a, N[i-1]-x+b)N[i] = x + np.random.poisson(lambda1*(1-p[i-1]))plt.hist(x = p, bins = 100,normed=True)
plt.hist(x = N, bins = 100,normed=True)  
plt.show()

[1][2][3]

参考

  1. ^https://blog.csdn.net/lin360580306/article/details/51240398
  2. ^https://www.jianshu.com/p/dc7624cf6adb
  3. ^Introduction to Probability--Joseph K.Blitzstein

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UWP Composition API - PullToRefresh

UWP Composition API - PullToRefresh 原文:UWP Composition API - PullToRefresh背景: 之前用ScrollViewer 来做过 PullToRefresh的控件,在项目一些特殊的条件下总有一些问题,比如ScrollViewer不会及时到达指定位置。于是便有了使用Composit…

linux 普通io实现pwm,用普通IO口做PWM输出 - 51单片机 - 电子工程世界-论坛 - 手机版...

本人现在想用IO口做PWM输出,频率1KHz,然后用两按键(、-)来调节占空比0-100%,对应数码管显示000-100。现波形是OK了,也可以调占空比,但是出现一个问题数码管显示乱七八糟,调了两天都没有调好,还请…

从城市治理到城市“智”理,AI 不仅是城市管理的“眼睛”

来源:帮尼资讯部分参考来源:中国安防行业网,图片来源网络近年来,随着计算机视觉技术的长足进步,AI在城市管理领域广泛部署。其中,AI视频分析识别技术成为城市场景中规模最大、数量最多、落地最广泛的应用。…

python3 应用 nose_parameterized 实现unittest 参数化

一、读取变量的值,实现unittest 参数化 import nose_parameterized,unittestdef calc(a:int,b:int):return ab case_data [[10,20,30],[12,21,33],[15,21,36] ] class MyClass(unittest.TestCase):nose_parameterized.parameterized.expand(case_data)def test_comp…

vue data数据修改_VUE的数据响应式

什么是数据响应式?const vm newVUE({data:{n:0}})上面的代码中,如果修改vm.n,那么UI中的n就会通过变化来响应我,这就是数据响应式。VUE对data做了什么?当给一个vue实例传入data的时候,vue内部会对传入的dat…

linux使用vim开启文档,linux 配置 直接用VIM默认打开文件

方法一:主要 是把gedit 默认打开的文件 都改成 vim了 此方法有缺陷。推荐使用 方法二 可以指定 哪种类型文件 用VIM 默认打开。两种方法都实现了 方便打开文件 摆脱了用VIM编码 打开文件还要 输入 烦长的路径,配置如下:方法一:把所有 默认 用 gedit 打开…

C#多线程技术总结(异步)

我这里针对现有的C#多线程技术进行一个汇总,一是复习,二是方便索引,文章部份知识点来源于网络,非本人原创。 一、并行(异步): 1.System.Threading.Tasks命名空间下的(TPL): 1.1&…

hutool的定时任务不支持依赖注入怎么办_设计一个任务调度算法,时间轮算法,比优先队列更高效...

当年我还是个学生的时候,有一次去参加欢聚时代的一个面试,有一道面试题记忆尤新,让你来实现一个定时任务,你会怎么做?为了简化问题,我们只用考虑内存方案,不用考虑数据持久化。数组法最简单的&a…

蜂鸟开发板 linux,蜂鸟E203系列——Linux下运行hello world例程

创建程序在 ~/hbird-e-sdk-master/software 路径下创建一个“helloworld”中文件夹在 ~/hbird-e-sdk-master/software/helloworld 路径下创建文件“helloworld.c”内容如下:#includeint main(void){printf("hello world!");printf(…

全景解密量子信息技术:高层集中学习,国家战略,三大领域一文看懂

来源:智东西 内参来源:中国信通院 IPRdaily中文网10月16日下午,高层就量子科技研究相关前景举行了一次会议,强调当今世界正经历百年未有之大变局,科技创新是其中一个关键变量。要充分认识推动量子科技发展的重要性&am…

shell 脚本编写 if else then

shell 脚本编写 if else then if ....; then .... elif ....; then .... else .... fi 大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…   通常用" [ ] "来表示条件测试。注意这里的空格很重要。…

mac怎么查看gitlab的注册邮箱_163电子邮箱怎么注册申请?手机号注册电子邮箱的小技巧...

电子邮箱帮助我们实现了无纸化,无需手写信件,通过电脑、手机输入,即可与收件人在网络上进行联系。电子邮箱的兴起,对于人与人之间的沟通和交流,增加了便捷性,促进了社会的发展与进步。目前的邮箱中&#xf…

c语言 switch案例,c语言switch case语句使用例子

c语言switch case语句使用例子发布时间:2020-04-23 11:48:53来源:亿速云阅读:421作者:小新这篇文章主要为大家详细介绍了c语言switch case语句使用例子,文中示例代码介绍的非常详细,具有一定的参考价值&…

把手机上的新浪微博客户端卸载了

因为我本身发微博的时候就是通过通过电脑上的浏览器发的,就连看别人发的微博也是通过浏览器发的,基本上也不怎么用手机客户端。反而是客户端总是推送各种新闻,我实在是没有这个需要,也完全不想被弹窗影响。 综上所述,因…

深度学习未来的三种方式

来源:海豚数据科学实验室深度学习的未来在于这三种学习模式,而且它们彼此之间密切相关:混合学习——现代深度学习方法如何跨越监督学习和非监督学习之间的边界,以适应大量未使用的无标签数据?复合学习——如何以创造性…

c 语言sort函数,C/c++语言sort函数如何使用

头文件是#include比如说数组a[5]{1,5,4,2,3};当你用sort(a,a5)时&#xff0c;就把数组a从小到大排序了for(i0;i<5;i){printf("%d \n",a[i]);}输出为1 2 3 4 5C语言中没有预置的sort函数。如果在C语言中&#xff0c;遇到有调用sort函数&#xff0c;就是自定义的一个…

android ocr识别源码_身份证识别OCR解决手动输入繁琐问题

随着互联网金融的的发展&#xff0c;越来越多的互联网金融公司都推出了自己的金融APP&#xff0c;这些APP都涉及到个人身份证信息的输入认证&#xff0c;如果手动去输入身份证号码和姓名&#xff0c;速度非常慢&#xff0c;且用户体验非常差。为了提高在手机移动终端上输入身份…

mybatis异常invalid comparison: java.util.Date and java.lang.String

原文链接&#xff1a;http://blog.csdn.net/wanghailong_qd/article/details/50673144 mybatis异常invalid comparison: java.util.Date and java.lang.String 开发中改动mapper文件后需要重新编译发布, 由于工程比较大非常耗时, 所以为方便快速测试干脆写了一个小java工程. 工…

计算机c语言等级考试PDF,国家计算机等级考试c语言精华.pdf

心之所向&#xff0c;所向披靡C 语言总复习顺序结构程序设计1.单字符输入输出&#xff1a;getchar(字符变量) &#xff1b;putchar(字符变量) &#xff1b;2.字符串输入输出&#xff1a;gets(字符数组名),puts(字符数组名)。3.格式化输入输出&#xff1a;(1)格式化输入&#xf…

什么是内卷?华为内部这篇文章读懂

来源&#xff1a;互联网坊间八卦&#xff08;ID:kekesil&#xff09;内卷的意思是明明已经靠近边界有个天花板&#xff0c;但却又不断自我激发&#xff0c;繁复化、精致化。概念的含糊其辞是无效讨论和跌入焦虑自我再生产困境的原因之一。判断内卷还是良性竞争的前置问题是回答…