首页 > 其他分享 >R语言近似贝叶斯计算MCMC(ABC-MCMC)轨迹图和边缘图可视化

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

时间:2022-11-09 12:32:51浏览次数:37  
标签:ABC return 样本 近似 贝叶斯 MCMC

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

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

1.  library(coda)
2.
3.
4.
5.
6.
7. # 假设数据是正态分布的10个样本
8.
9. # 平均值为5.3,SD为2.7
10.
11. data = rnorm
12.
13.
14.
15.
16.
17. # 我们想用ABC来推断出所使用的参数。
18.
19. # 我们从同一个模型中取样,用平均值和方差作为汇总统计。当我们接受ABC时,我们返回真,因为与数据的差异小于某个阈值
20.
21.
22.
23.
24.
25.
26.
27. ABC <- function(pr){
28.
29.
30.
31. # 先验避免负的标准偏差
32.
33. if (par <= 0) return(F)
34.
35.
36.
37. # 随机模型为给定的参数生成一个样本。
38.
39.
40. samples <- rnorm
41.
42.
43.
44. # 与观察到的汇总统计数字的比较
45.
46.
47. if((difmean < 0.1) & (difsd < 0.2)) return(T) else return(F)
48.
49. }
50.
51.
52.
53.
54.
55. # 我们将其插入一个标准的metropolis Hastings MCMC中。
56.
57. #用metropolis 的接受度来交换ABC的接受度
58.
59.
60.
61. MCMCABC <- function(saue, itns){
62.
63.
64.
65.
66. for (i in 1:ieraos){
67.
68.
69.
70. # 提议函数
71.
72. prp = rnorm(2,mean = chain[i,], sd= c(0.7,0.7))
73.
74.
75.
76. if(A_ance(prl)){
77.
78. chn[i+1,] = prl
79.
80. }else{
81.
82. chn[i+1,] = cain[i,]
83.
84. }
85.
86. }
87.
88. return(mcmc(cin))
89.
90. }
91.
92.
93.
94. plot(psor)

结果应该是这样的:

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

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


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

标签:ABC,return,样本,近似,贝叶斯,MCMC
From: https://blog.51cto.com/u_14293657/5835847

相关文章

  • ABC235G
    首先有一个\(\mathcalO(N^2)\)做法。考虑容斥掉条件一,令\(g(i)\)表示恰好有\(i\)个花园空着,\(f(i)\)表示至少有\(i\)个花园空着。则有\(g(0)=\sum\limits_{i=......
  • ABC267G
    考虑重新刻画一个序列的生成,设原数列为\((0,0)\),将所有数从小到大排序后依次加入。例如\((2,3,1)\)是这样生成的:\[(0,0)\to(0,1,0)\to(0,2,1,0)\to(0,2,3,1,0)\]于是......
  • 题解 ABC154F【Many Many Paths】
    problem令\(f(i,j)\)表示,在平面直角坐标系中,从\((0,0)\)出发,每次向上或向右走一步,到达\((i,j)\)的方案数,求:\[\sum_{l_1\leqi\leqr_1}\sum_{l_2\leqj\leqr_2}f(......
  • ABC229G
    首先显然能想到二分,随后想想怎么判定。这里我卡住了(看了题解发现是一个常用的技巧。先把所有\(Y\)的位置存下来,记为数组\(A\),记\(B_i=A_i-i\),那么发现交换就相当于......
  • ABC229F
    首先题目要求删去边权和最小的边使得图变成一张二分图,那么看到二分图就想到染色,那么题目的意思就是让同色节点之间的边权之和最小。不失一般性的,强制\(0\)节点为白色。......
  • ABC 276 ABCDE(dfs)
    A-Rightmost#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLMAXN=1e18;constLLINF=1e9;constLLN=5000......
  • ABC248G
    套路题。设\(M=10^5\)。设\(f(i)\)表示路径的\(\gcd\)恰好为\(i\)时候的贡献,则答案为\(\sum_{i=1}^Mi\timesf(i)\)。套路的,将限制变成路径的\(\gcd\)为\(i......
  • ABC248F
    设\(f_{i,j,0/1}\)表示考虑前\(i\)列,删去了\(j\)条边,目前上方和下方连不连通的方案数。则有转移:\[f_{i,j,1}=f_{i-1,j,1}+3\timesf_{i-1,j-1,1}+f_{i-1,j,0}\]\[......
  • [数学记录]abc276G Count Sequences
    题意:对满足以下条件的序列计数,膜\(998244353\):\(0\leqa_0\leqa_1\cdots\leqa_n\leqm\)$a_i\not\equiva_j\pmod3$这题的难点在于发现它是简单题。想了......
  • ACWING 第 76 场周赛 ABC
    https://www.acwing.com/activity/content/2589/这场周赛也很简单,除了C我在赛场上写的时候有点小bug,赛时没改出来,哎,真废啊4713.反转字符串#include<bits/stdc++.h>u......