Why does horseshoe prior for a linear model need a non-linear formula

Thank you AWoodward for your reply. What you suggest is exactly what I wanted to do in the first place. There is nothing about the system that is non-linear and that’s the confusion I have. I don’t want to model any non-linear effects here. That formula is based on an earlier reply here: prior on subset of predictors

When I try test case:


formula <- bf(sns_theta ~ 1 + PVA + NVEA + PPhysA + age)
priors <- c(prior(horseshoe(1), class = "b", coef = PVA),
            prior(horseshoe(1), class = "b", coef = NVEA),
            prior(horseshoe(1), class = "b", coef = PPhysA),
            prior(normal(0, 1), class = "b", coef = age))

# fit 
horsehoe_fit <- brm(formula = formula, data = surveys, family = gaussian(),
                    prior = priors, iter = 3000, warmup = 1000, chains = 4, cores = 4,
                    control = list(adapt_delta = 0.999, max_treedepth = 15))

I get the following message: Error: Prior ‘horseshoe(1)’, ‘horseshoe(1)’, ‘horseshoe(1)’ is used in an invalid context. See ?set_prior for details on how to use special priors.

So I am wondering that even if I am using the brms non-linear syntax it in fact is just a linear model since I have not specified any non-linear effects.

Thanks again for taking the time to reply.

1 Like