为什么要使用Markov chain Monte Carlo来逼近概率分布?
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/10/07 16:41:49
为什么要使用Markov chain Monte Carlo来逼近概率分布?
既然有样本的话,直接把样本的直方图画出来.根据弱大数定理,足够多的样本的直方图就是逼近概率分布的,为什么还要通过MCMC来逼近?是什么样的情况,无法直接使用样本的直方图?
既然有样本的话,直接把样本的直方图画出来.根据弱大数定理,足够多的样本的直方图就是逼近概率分布的,为什么还要通过MCMC来逼近?是什么样的情况,无法直接使用样本的直方图?
MCMC一般用在算marginal posterior distribution上 主要是贝叶斯分析用 (据我目前所学感觉是这样)
是这样的:
样本足够多确实可以逼近分布 但是我们要用多层模型(hierarchical model)的时候 很难直接通过样本分布直接算出一些系数(parameter)的分布.当模型里面系数多的时候,通过贝叶斯定理可以写出很多系数的联合分布.然而我们需要估计系数的时候,往往需要的是marginal distribution.一般在这个时候要通过积分把其他系数消掉基本是不可能的.所以我们需要用mcmc这一类sampling method来趋近感兴趣的系数的posterior distribution.然后利用这个分布来进行分析~
我的理解是这样,希望能够帮到你~
再问: 多层模型是什么意思?是说高维的分布吗?模型里面系数多意思是系数未知。那也就是说MCMC采样之后可以忽略这些未知的参数?
再答: 编个例子吧- - 可以观察到x_1, x_2... x_n 所有x_i 服从 normal (y,1), 在这里y也是随机变量 假设y服从gamma(a,b), a和b分别服从0-truncated normal (10,0.1),这个模型有三层。 那么利用这些条件和贝叶斯公式 可以写出来条件分布 (y,a,b)|(x_1,...,x_n) 这个东西应该比较复杂。。然后如果我们想要单独研究y的分布 就要找到 y|(x_1,...,x_n) 利用积分求基本不可能。。就要用mcmc趋近y|(x_1,...x_n) 另外说 在这里说的是贝叶斯分析和经典统计分析是不同的 传统分析中 x_1,...x_n服从normal (theta, sigma^2), theta 和 sigma都是固定的,所以才能用大数定理 但是贝叶斯分析中 模型系数都是随机变量 所以不能用大数定理 顺便问 你是学计算机的吗
再问: 对。是学计算机的。最近接触机器学习。涉及到MCMC。你的意思是。每个模型里都有未知变量。而这个变量又服从另外一个模型。这样叫多层模型?所以说。现在的已知条件是n个样本。和未知参数的多层模型。然后用MCMC来做?你说的单独研究y的分布是什么意思?能否再解释一下?
再答: 多层模型基本是那个意思 还说之前的例子,比如我们要检验假设h0: y=0 要做到这个就要求出y的95% credit interval (这个和经典统计分析里的confidence interval很像) 我们需要用y|(x_1,...,x_n)的期望和方差来求y的credit interval 根据已知条件 (y,a,b)|(x_1,...,x_n) 很好求 但用积分把a,b消掉 找到只有y的分布很难 所以我们用mcmc得到y的样本 这个样本分布是会趋近真正的y|(x_1,...,x_n)的 所以把样本取的很大 我们就可以通过样本来计算y的 credit interval 了 采了我 给我发消息吧 你要是时间多我可以给你本书看 里面有一些例子
是这样的:
样本足够多确实可以逼近分布 但是我们要用多层模型(hierarchical model)的时候 很难直接通过样本分布直接算出一些系数(parameter)的分布.当模型里面系数多的时候,通过贝叶斯定理可以写出很多系数的联合分布.然而我们需要估计系数的时候,往往需要的是marginal distribution.一般在这个时候要通过积分把其他系数消掉基本是不可能的.所以我们需要用mcmc这一类sampling method来趋近感兴趣的系数的posterior distribution.然后利用这个分布来进行分析~
我的理解是这样,希望能够帮到你~
再问: 多层模型是什么意思?是说高维的分布吗?模型里面系数多意思是系数未知。那也就是说MCMC采样之后可以忽略这些未知的参数?
再答: 编个例子吧- - 可以观察到x_1, x_2... x_n 所有x_i 服从 normal (y,1), 在这里y也是随机变量 假设y服从gamma(a,b), a和b分别服从0-truncated normal (10,0.1),这个模型有三层。 那么利用这些条件和贝叶斯公式 可以写出来条件分布 (y,a,b)|(x_1,...,x_n) 这个东西应该比较复杂。。然后如果我们想要单独研究y的分布 就要找到 y|(x_1,...,x_n) 利用积分求基本不可能。。就要用mcmc趋近y|(x_1,...x_n) 另外说 在这里说的是贝叶斯分析和经典统计分析是不同的 传统分析中 x_1,...x_n服从normal (theta, sigma^2), theta 和 sigma都是固定的,所以才能用大数定理 但是贝叶斯分析中 模型系数都是随机变量 所以不能用大数定理 顺便问 你是学计算机的吗
再问: 对。是学计算机的。最近接触机器学习。涉及到MCMC。你的意思是。每个模型里都有未知变量。而这个变量又服从另外一个模型。这样叫多层模型?所以说。现在的已知条件是n个样本。和未知参数的多层模型。然后用MCMC来做?你说的单独研究y的分布是什么意思?能否再解释一下?
再答: 多层模型基本是那个意思 还说之前的例子,比如我们要检验假设h0: y=0 要做到这个就要求出y的95% credit interval (这个和经典统计分析里的confidence interval很像) 我们需要用y|(x_1,...,x_n)的期望和方差来求y的credit interval 根据已知条件 (y,a,b)|(x_1,...,x_n) 很好求 但用积分把a,b消掉 找到只有y的分布很难 所以我们用mcmc得到y的样本 这个样本分布是会趋近真正的y|(x_1,...,x_n)的 所以把样本取的很大 我们就可以通过样本来计算y的 credit interval 了 采了我 给我发消息吧 你要是时间多我可以给你本书看 里面有一些例子
什么是Markov chain Monte Carlo?
关于monte carlo模拟
使用Monte Carlo 方法计算圆周率pi,写出算法和伪代码
怎么用matlab monte carlo随机数
在单词Monte Carlo method中任意选择一个字母,则恰好选择字母为“元音”字母的概率为多少?
谁能详细说说Monte Carlo算法的历史
求用Monte Carlo 方法随机产生满足约束条件的M 个点 的matlab程序~
英语翻译如题.原文:Monte Carlo Stimulation is not limited by the cond
随机模型的翻译The Markov chain can be considered as a regenerative
投掷一枚硬币,出现正面的概率是0.6.编写java程序,使用Monta Carlo方法模拟抛硬币的过程并验证结果.
Matlab的Monte carlo法求定积分 区域(-π/2,π/2),y=cosx所围面积
用monte carlo算法 求定积分 有没有提高运算时间却有具有一定精确度的方法?