楼主: 飞天玄舞6
1659 0

[问答] 求助:Gibbs算法的求解 [推广有奖]

  • 3关注
  • 31粉丝

VIP1

已卖:3014份资源

学科带头人

13%

(VIP/贵宾)十级

24%

TA的文库  其他...

综合文库

威望
0
论坛币
153870 个
通用积分
4226.4633
学术水平
128 点
热心指数
148 点
信用等级
102 点
经验
76635 点
帖子
1502
精华
0
在线时间
1519 小时
注册时间
2013-12-2
最后登录
2025-11-25

楼主
飞天玄舞6 在职认证  发表于 2016-11-20 21:10:08 |AI写论文
30论坛币
QQ截图20161120210030.png
如上图片所示。不知什么原因,用这些参数的满条件分布得到的模拟结果只有mu是正确的,sigma0和sigma不对,我想是否在sigma0和sigma中推导的满条件分布不对,但我又推导了一次还是这样,求大神解答。我附上我的代码:
  1. Gib <- function(y, sigma0, sigma, mu, simnum){
  2.   n = length(y)
  3.   gibchain = matrix(NA, simnum, 3)
  4.   gibchain[1,] = c(sigma0, sigma, mu)
  5.   for (i in 2:simnum){
  6.     currsigma0 = gibchain[i-1, 1]
  7.     currsigma = gibchain[i-1, 2]
  8.     currmu = gibchain[i-1, 3]
  9.     ## sample from full conditional distribution of sigma0 (Gibbs)
  10.     currsigma0 = 1/rgamma(1, shape = 2, scale = 1+currmu^2/2)
  11.     currsigma = 1/rgamma(1, shape = 1+(n+6)/2, scale = 1+sum(y-currmu)^2/2)
  12.     currmu = rnorm(1, mean = currsigma0*sum(y)/(n*currsigma0+2*currsigma),
  13.                    sd = sqrt(currsigma0*currsigma))
  14.     gibchain[i,] = c(currsigma0, currsigma, currmu)
  15.   }
  16.   return(gibchain)
  17. }
复制代码

我用y1模拟数据作为实际数据
  1. y1 <- rnorm(100, 0, sd = 4)
  2. gibbs <- Gib(y = y1, sigma0 = 6, sigma = 2, mu = 0, simnum = 10000)
复制代码

除了mu正确,其他两个都不对。

关键词:Gibbs bbs Sigma GMA sigma 图片
strive for the best, prepare for the worst.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 22:29