# Block RW Metropolis Hastings

**URL:** https://discourse.julialang.org/t/block-rw-metropolis-hastings/71640
**Category:** Finance and Economics
**Tags:** economics, bayesian-inference
**Created:** [November 17, 2021, 9:28am UTC](https://discourse.julialang.org/t/block-rw-metropolis-hastings/71640 "2021-11-17T09:28:17Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![donk\_fish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/donk_fish/32/14775_2.png) [@donk\_fish](https://discourse.julialang.org/u/donk_fish)
#### Post date: [November 17, 2021, 9:28am UTC](https://discourse.julialang.org/t/block-rw-metropolis-hastings/71640/1 "2021-11-17T09:28:17Z")

</div>

Hi

Is there a package implementing a block RWMH algorithm?

With block, I mean partitioning the parameter vector. Preferably one where I can choose the partition ex ante, but one with random blocks every draw works as well.

Thanks for any suggestions!

---

<div class="post-metadata">

### Author: ![cpfiffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cpfiffer/32/208747_2.png) [@cpfiffer](https://discourse.julialang.org/u/cpfiffer)
#### Post date: [November 17, 2021, 4:29pm UTC](https://discourse.julialang.org/t/block-rw-metropolis-hastings/71640/2 "2021-11-17T16:29:42Z")

</div>

I put this in the Julia Slack, but I’ll repost here for posterity.

You can sort of do this with Gibbs sampling:

```julia
spl = Gibbs(
   MH(:a1, :a2),
   MH(:a3, :a4)
)
sample(model, spl, n)

```

if you want static MH (unconditional proposal distributions). If you have a proposal matrix and want to do random-walk MH you should be able to do

```julia
spl = Gibbs(
   MH(Sigma1, :a1, :a2),
   MH(Sigma2, :a3, :a4)
)
sample(model, spl, n)

```

for proposal matrices `Sigma1` and `Sigma2`.
