- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Metropolis-Hastings 问题具有平稳的二项分布,所有建议分布 q(i,j) 都是 0.5。引用绘图和直方图,算法是否应该如此明确地以 0.5 为中心,二项式分布的概率?
pi <- function(x, n, p){
# returning value from binomial distribution
result <- (factorial(n) / (factorial(x) * factorial(n - x))) *
p^x * (1 - p)^(n - x)
return(result)
}
metropolisAlgorithm <- function(n, p, T){
# implementation of the algorithm
# @n,p binomial parameters
# @T number of time steps
X <- rep(runif(1),T)
for (t in 2:T) {
Y <- runif(1)
alpha <- pi(X[t - 1], n, p) / pi(Y, n, p)
if (runif(1) < alpha) X[t] <- Y
else X[t] < X[t - 1]
}
return(X)
}
# calling M-H algorithm and plotting result
test <- metropolisAlgorithm(40,0.5,5000)
par(mfrow=c(2,1))
plot(test, type = "l")
hist(test, breaks = 40)
最佳答案
您有 3 个问题:
1) 您似乎想要模拟二项式分布,因此您的随机游走应该超过 1:n
范围内的整数而不是 [0,1]
范围内的实数.
2) 你在计算 alpha
时调换了分子和分母
3) 您在 X[t] < X[t - 1]
中输入错误.
修复这些问题并稍微清理你的代码(包括使用@ZheyuanLi 建议的 dbinom
函数)产生:
metropolisAlgorithm <- function(n, p, T){
# implementation of the algorithm
# @n,p binomial parameters
# @T number of time steps
X <- rep(0,T)
X[1] <- sample(1:n,1)
for (t in 2:T) {
Y <- sample(1:n,1)
alpha <- dbinom(Y,n,p)/dbinom(X[t-1],n,p)
if (runif(1) < alpha){
X[t] <- Y
}else{
X[t] <- X[t - 1]}
}
return(X)
}
# calling M-H algorithm and plotting result
test <- metropolisAlgorithm(40,0.5,5000)
par(mfrow=c(2,1))
plot(test, type = "l")
hist(test) breaks = 40)
典型输出(非常合理):
关于r - R : correct results? 中的 Metropolis-Hastings 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329252/
我目前在实现 Metropolis-Hastings 算法时遇到问题。 我正在尝试使用该算法来计算形式的积分 在使用这个算法时,我们可以获得一长串配置(在这种情况下,每个配置只是一个数字),这样在链的
我是一个统计学外行,在阅读了一些关于 Metropolis-Hastings MCMC 算法的博客和示例之后,我有一个问题: 在M-H算法中,一个新样本(比如,x')是否被接受取决于“接受概率”,al
MCMC是从复杂概率模型中采样的通用技术。 蒙特卡洛 马尔可夫链 Metropolis-Hastings算法 问题 如果需要计算有复杂后验pdf p(θ|
我正在尝试在 C 中实现 Metropolis-Hastings 算法以实现简单的线性回归(不使用其他库(boost、Eigen 等)并且不使用二维数组)*。为了更好地测试代码/跟踪图的评估,我通过保
每当我制作Metropolis UI项目并尝试将Label字体更改为除白色以外的任何颜色时,都不会发生任何事情,并且在编译项目时颜色始终为白色, 那么,有什么可以改变颜色的字体吗? 我正在使用Delp
我目前正在用 C 编写一些用于模拟退火的代码。我在使用此函数时遇到了问题: int metrop (E, E1, T) { int j; if (exp((-E-E1)/T) > ran(
我正在尝试使用 Metropolis-Hastings 进行贝叶斯回归。测试数据生成如下(Python代码,我没有复制整个代码): trueA = 5 ; trueB = 7 ;trueSD = 10
我一直在阅读 Metropolis-Hastings (MH) 算法。从理论上讲,我了解该算法的工作原理。现在,我正在尝试使用 python 实现 MH 算法。 我遇到了以下 notebook .它完
我有一个代码,旨在模拟理想气体在盒子中的运动。它基于蒙特卡罗模拟中的大都会方法。但是,我使用了一系列逻辑语句(主要是 ifs)来定义边界条件,以找到与随机选择的粒子相邻的粒子。该算法为 1x4 矩阵内
测试平台目标的不同选项我在 delphi xe5 帮助中找到了以下信息: Note: You cannot set OS X as the target platform for a Metropol
我正在尝试编写一个基于 Haskell 中的 Metropolis 算法的 MCMC 程序,但我在从概率分布中采样(生成伪随机数)和构建程序时遇到问题。目前,我很高兴使用带有硬编码种子的生成器,而不是
我正在尝试编写一个基于 Haskell 中的 Metropolis 算法的 MCMC 程序,但我在从概率分布中采样(生成伪随机数)和构建程序时遇到问题。目前,我很高兴使用带有硬编码种子的生成器,而不是
我正在尝试使用带有 R 的 MH 算法来实现一个简单的 MCMC,问题是我得到了这个错误(我试图计算 alpha 并且它不是 NA 问题) Error in if (runif(1) 0){
我有一个相对简单的函数,具有三个未知输入参数,我只知道它们的上限和下限。我也知道我所有数据的输出 Y 应该是什么。 到目前为止,我已经在 python 中完成了一个简单的网格搜索,遍历所有可能的参数组
我一直在运行一些相当昂贵且老化时间较长的型号。我想保存并恢复 AdaptiveMetropolis 步骤方法的状态(至少)以减少老化时间。有没有推荐的方法来做到这一点,或者我应该腌制 step_met
我遇到了在我的应用程序中使用表单中的 TListBox 时,在 HorzScrollBox 中选择不正确的项目的问题。该表单上有两个(或更多)TListBox。它们彼此远离放置,使得它们的绝对左坐标差
我有一个结构如下图所示的模型: 我有几个人(在这张图片中索引为 1...5)。种群参数(A 和 B,但可以有更多)确定每个个体的潜在变量 L[i] 的分布。潜在变量 L[i] 以概率的方式确定观测值
我的 Metropolis-Hastings 问题具有平稳的二项分布,所有建议分布 q(i,j) 都是 0.5。引用绘图和直方图,算法是否应该如此明确地以 0.5 为中心,二项式分布的概率? pi <
我在使用基于 Metropolis-Hastings 算法的 MCMC 技术对后验分布进行采样(因此是贝叶斯方法)方面很新。 为此,我在 R 中使用了 mcmc 库。我的分布是多维的。为了检查这个me
我正在尝试用 Python 实现一个简单的蒙特卡洛(我对此还很陌生)。来自 C 我可能走的是最错误的道路,因为我的代码对于我所要求的来说太慢了:对于 60 个 3d 粒子和周期性边界条件(PBC),我
我是一名优秀的程序员,十分优秀!