q**j 发帖数: 10612 | 1 最近在看书。感觉Gibbs sampler简单很多。我在想,如果我们用numerical
integration把那个让积分成为1的常数求出来,就直接用Gibbs sampler好了。MH的优
势在于不需要积分常数。但是好像这个numerical的工作可以“外包”给搞数学的,对
不对?请问这样make sense么,有人这样干过么,效果如何? |
l*******r 发帖数: 407 | |
b*****n 发帖数: 685 | 3 两个问题:
1、如果只有一个参数...
2、如果有N多的参数,M-H效率比Gibbs高很多... |
a********a 发帖数: 346 | 4 楼主看的那本书啊?我一直对Gibbs sampling 和MH 感觉心虚。也想学学。谢谢。 |
q**j 发帖数: 10612 | 5 你就看chib and greenberg的MH的论文。里面提到一个有关于gibbs sampler的经典论
文。
【在 a********a 的大作中提到】 : 楼主看的那本书啊?我一直对Gibbs sampling 和MH 感觉心虚。也想学学。谢谢。
|
l******r 发帖数: 18699 | 6 gibbs sampler能用则用
导不出full conditionals则只能用MH了
MH制造许多rejected samples(无效采样),故效率比较低下
【在 q**j 的大作中提到】 : 最近在看书。感觉Gibbs sampler简单很多。我在想,如果我们用numerical : integration把那个让积分成为1的常数求出来,就直接用Gibbs sampler好了。MH的优 : 势在于不需要积分常数。但是好像这个numerical的工作可以“外包”给搞数学的,对 : 不对?请问这样make sense么,有人这样干过么,效果如何?
|
q**j 发帖数: 10612 | 7 多谢指教。请问MH里面可以想gibbs那样block by block sample,如果我的变量只有10
个。10一起sample,比6-2-2这样sample会差很多么?
【在 l******r 的大作中提到】 : gibbs sampler能用则用 : 导不出full conditionals则只能用MH了 : MH制造许多rejected samples(无效采样),故效率比较低下
|
l******r 发帖数: 18699 | 8 其实你可以试试gibbs-in-MH
有时候其中一部分parameter的full conditional是可以导出的,
对于它们,你可以用gibbs sampler
对另一部分导不出来的你可以用MH
可以用所谓的block 技巧,把好几个parameter凑到一块成为一个vector,
然后抽出另一个vector跟原vector做比较看是否reject它
不过这样劣势很大,因为也许其中只有一个parameter应该被rejected,
而其它的都是好sample,
即使如此,也会导致整个vector被rejected,故效率也许比较低下
10
【在 q**j 的大作中提到】 : 多谢指教。请问MH里面可以想gibbs那样block by block sample,如果我的变量只有10 : 个。10一起sample,比6-2-2这样sample会差很多么?
|
q**j 发帖数: 10612 | 9 多谢。我是新手。你这个full conditional是指可以完全写出conditional
distribution,包括积分常数,吧?你的意思是如果可以一个一个的用MH,是最有效的
。对不对?找这样看,分成若干个block,比一起sample好。应该是这个道理吧?
【在 l******r 的大作中提到】 : 其实你可以试试gibbs-in-MH : 有时候其中一部分parameter的full conditional是可以导出的, : 对于它们,你可以用gibbs sampler : 对另一部分导不出来的你可以用MH : 可以用所谓的block 技巧,把好几个parameter凑到一块成为一个vector, : 然后抽出另一个vector跟原vector做比较看是否reject它 : 不过这样劣势很大,因为也许其中只有一个parameter应该被rejected, : 而其它的都是好sample, : 即使如此,也会导致整个vector被rejected,故效率也许比较低下 :
|
b*****n 发帖数: 685 | 10 gibbs-in-MH?没听说过哎。
常用的是MH-in-gibbs。
【在 l******r 的大作中提到】 : 其实你可以试试gibbs-in-MH : 有时候其中一部分parameter的full conditional是可以导出的, : 对于它们,你可以用gibbs sampler : 对另一部分导不出来的你可以用MH : 可以用所谓的block 技巧,把好几个parameter凑到一块成为一个vector, : 然后抽出另一个vector跟原vector做比较看是否reject它 : 不过这样劣势很大,因为也许其中只有一个parameter应该被rejected, : 而其它的都是好sample, : 即使如此,也会导致整个vector被rejected,故效率也许比较低下 :
|
|
|
l******r 发帖数: 18699 | 11 gibbs sampler要求我们求出conditional distribution of one parameter given 其
它paramaters,这个conditional distribution叫做full conditional
举个例子,假设你有3个parameters a,b,c
而且你可以精确求出a|b,c和b|a,c的conditional distribution,
则sample a, b时可以用gibbs sampler
可是如果你不能精确求出c|a,b的conditional distribution
则sample c时用MH
gibbs sampler因为是没有 rejective sample,
故block technique在gibbs sampler尤为有用
可是MH经常要reject一些sample,所以block常常不那么容易
【在 q**j 的大作中提到】 : 多谢。我是新手。你这个full conditional是指可以完全写出conditional : distribution,包括积分常数,吧?你的意思是如果可以一个一个的用MH,是最有效的 : 。对不对?找这样看,分成若干个block,比一起sample好。应该是这个道理吧?
|
l******r 发帖数: 18699 | 12 无所谓怎么叫了,反正是二者的结合而已
名字都是人起的:)
【在 b*****n 的大作中提到】 : gibbs-in-MH?没听说过哎。 : 常用的是MH-in-gibbs。
|
s*******t 发帖数: 45 | 13 Gibbs 用block的时候,auto correlation会相对影响小一些。 |
b*****n 发帖数: 685 | 14 是么?
MH-within-Gibbs是指整个MCMC是Gibbs,不过无法得到conditional posterior
distribution的显式表达所以用MH来获得conditional posterior sample。
Gibbs-within-MH是这意思吗?能否说明白点?
【在 l******r 的大作中提到】 : 无所谓怎么叫了,反正是二者的结合而已 : 名字都是人起的:)
|
C******n 发帖数: 284 | 15 正如lookacar所说,这名称真无所谓
如果你一定要纠结,那就如有些人所习惯地称之为hybrid sampling
假如你有多个parameters,其中推倒不出full conditional的就用MH,推得出的就用
Gibbs
update them one by one
that's it
反正我是这样理解的, so far so good
【在 b*****n 的大作中提到】 : 是么? : MH-within-Gibbs是指整个MCMC是Gibbs,不过无法得到conditional posterior : distribution的显式表达所以用MH来获得conditional posterior sample。 : Gibbs-within-MH是这意思吗?能否说明白点?
|
q**j 发帖数: 10612 | 16 请问一般如何大概估计一下要sample多少次,头多少次的要扔掉?
看了chib and greenberg的文章,我对一次sample所有参数有了感性认识。但是对bloc
k by block update还是有问题。这样做每次的conditional distribution由于conditi
onal on的参数不同,都是应该是不同的函数。怎么肯定会converge呢?一个函数conve
rge还好理解,怎么理解一个family的函数一起converge?
当然我可能是杞人忧天了,应该有大牛做过理论证明的。纯粹是我的心理不好接受。请
问有没有人给个形象的解释或者例子。
【在 C******n 的大作中提到】 : 正如lookacar所说,这名称真无所谓 : 如果你一定要纠结,那就如有些人所习惯地称之为hybrid sampling : 假如你有多个parameters,其中推倒不出full conditional的就用MH,推得出的就用 : Gibbs : update them one by one : that's it : 反正我是这样理解的, so far so good
|
q**j 发帖数: 10612 | 17 对于以下这段话我不太懂。如果分成两组,其中一组接受了;基于这个接受的,再
sample另外一组,被拒绝了。那么就还是生成了一组新observation。对不对。在MH里
面,每次都是能够得到一个新observation的。这个和accept-rejection method还是不
同的。对不对。
【在 l******r 的大作中提到】 : 无所谓怎么叫了,反正是二者的结合而已 : 名字都是人起的:)
|
b*****n 发帖数: 685 | 18 呵呵,还是跟我说的一样嘛。
不过很多人做MCMC不严谨,有些人就凭想象乱作一通,根本不管detailed balance。这
个现象很不好。
【在 C******n 的大作中提到】 : 正如lookacar所说,这名称真无所谓 : 如果你一定要纠结,那就如有些人所习惯地称之为hybrid sampling : 假如你有多个parameters,其中推倒不出full conditional的就用MH,推得出的就用 : Gibbs : update them one by one : that's it : 反正我是这样理解的, so far so good
|
q**j 发帖数: 10612 | 19 这个现象可以逐渐改善吧。matlab里面有MH的函数。以后MH和regression一样成了家常
便饭了。
【在 b*****n 的大作中提到】 : 呵呵,还是跟我说的一样嘛。 : 不过很多人做MCMC不严谨,有些人就凭想象乱作一通,根本不管detailed balance。这 : 个现象很不好。
|