Mix shrinkage and normal priors for rstanarm regression coefficients

Operating System:
Interface Version:


I would like to use variable selection with some shrinkage priors in rstanarm. However, there are some regressors which I do not want to put at test here of being 0. So I would like to specify hs priors for many regressors, but not for all. Can I do that or do I have to write my own Stan program?



You can let the local scales in the hs priors be HUGE for the ones that you don’t want to shrink (much).

Uhhh… that was obvious! I totally forgot about this syntax. Thanks.

took me a while to try this… but how can I actually set the local_scale to be huge for each covariate?

What I tried is to set the global scale different for the different regressors… but rstanarm does not let me do that as it expects a single global scale for all covariates.

You are referring to hs() or hs_plus()? I think slab_scale can be a vector.

I am using hs… and slab_scale cannot be a vector as it seems.

Ok, maybe it is df that is the vector.

but df won’t do the trick of allowing me to mix covariates which I do not penalizes with covariates which I do penalize, right?

This sounds to me I need to go to brms, right? Is a feature like this mixed estimation of interest to rstanarm so that it is worthwhile to file a ticket?

I am interested in doing this as I want to control for some covariates no matter what the data is telling me - this is sort of a prior knowledge which I would like to put into this.

@paul.buerkner … can brms handle different priors for different covariates? So a normal for the intercept and a few covariates which I don’t want to subject to shrinkage, while for other covariates I would like to use horseshoe priors? … I am a newbie to brms …

brms can handle that. See the first post in Error applying horseshoe prior in Poisson glm for an example how to use brms’ non-linear syntax for that purpose.