R语言近似贝叶斯计算MCMC(ABC-MCMC)轨迹图和边缘图可视化

最近我们被客户要求撰写关于MCMC的研究报告,包括一些图形和统计输出。

近似贝叶斯计算和近似技术基于随机模拟模型中的样本计算近似似然值,在过​​去几年中引起了很多关注,因为它们有望为任何随机过程提供通用统计技术。

一位同事向我询问我们在我们的文章中讨论过的近似贝叶斯计算 MCMC (ABC-MCMC) 算法的简单示例。下面,我提供了一个最小的示例,类似于Metropolis-Hastings 。

library(coda)

 



# 假设数据是正态分布的10个样本

# 平均值为5.3,SD为2.7

data =  rnorm





# 我们想用ABC来推断出所使用的参数。

# 我们从同一个模型中取样,用平均值和方差作为汇总统计。当我们接受ABC时,我们返回真,因为与数据的差异小于某个阈值







ABC <- function(pr){

   

  # 先验避免负的标准偏差

  if (par <= 0) return(F)

   

  # 随机模型为给定的参数生成一个样本。


  samples <- rnorm



  # 与观察到的汇总统计数字的比较

  
  if((difmean < 0.1) & (difsd < 0.2)) return(T) else return(F)

}





# 我们将其插入一个标准的metropolis Hastings MCMC中。

#用metropolis 的接受度来交换ABC的接受度



MCMCABC <- function(saue, itns){



  
    for (i in 1:ieraos){

         

        # 提议函数

        prp = rnorm(2,mean = chain[i,], sd= c(0.7,0.7))

         

        if(A_ance(prl)){

            chn[i+1,] = prl

        }else{

            chn[i+1,] = cain[i,]

        }

    }

    return(mcmc(cin))

}



plot(psor)

结果应该是这样的:

:后验样本的轨迹图和边缘图。从右边的边缘图中,您可以看到我们正在近似检索原始参数值,即 5.3 和 2.7。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值