Different horseshoe specifications

Dear all,

In reading the literature on the horseshoe and also scanning the Stan forum, I’m coming across a couple of different specifications for the ordinary horseshoe (I know there is a Finnish version). For example, in Carvalho, Polson, and Scott (2009) we find

\beta_{m} \sim \mathcal{N} (0, \tau \cdot \lambda_{m})

\lambda_{m} \sim \text{Half-}\mathcal{C} (0, 1)

\tau \sim \text{Half-}\mathcal{C} (0, 1).

but in Piironen and Vehtari (2017) we find that \tau and \lambda are both squared.

Then in this post (Horseshoe prior in rstan) the gentleman multiples \tau and \lambda by \sigma.

I’m interested in simply knowing the proper specification of the horseshoe prior. Right now, I’m using the Carvalho, Polson, and Scott (2009) which seems to work fine.

Thank you!

@jpiironen @avehtari

There is no one single proper specification, and different versions can work similalrly or differently depending on the case. See some discussion in sections 3.2, 3.3 and 3.5, and appendices C.1 and C.2 in

1 Like

Hi, this reply comes late, but I stumbled upon this just now.

but in Piironen and Vehtari (2017) we find that \tau and \lambda are both squared.

If I understand what you mean, this should be just a matter of notation; so if you write N(\cdot, a), whether a refers to std or variance. I always used it to denote variance, and as far as I see also Carvalho et al. use that notation in their papers. Notice though that in those half-Cauchy distributions the second argument denotes scale (as Cauchy has no variance).

1 Like

In other material, we have tried to make the distinction more clear by using \mathrm{normal}(\cdot, \sigma) when \sigma is in sd scale, which then matches the parameterization of normal() in Stan. Using sd scale has benefits when thinking about priors in general (that don’t need be conjugate).