Informative priors for standard deviation (or variance) Suppose I want to perform Bayesian estimation of the mean $\mu$ and standard deviation $\sigma$ of a Gaussian distribution. Is there a standard way to specify an informative prior over $\sigma$, assuming I have prior info that it lies "close" to some given $\gamma$ in log-space?
In addition to having an initial guess for $\sigma$, I want to avoid two problems with using the Jeffrey's prior (A Bayesian perspective on estimating mean, variance, and
standard-deviation from data, Travis Oliphant). With the Jeffrey's prior, one does not have a well-defined MAP unless $n>3$. And if the sum of squared deviances is 0, one's MAP estimate of $\sigma$ will also be 0.

Another option for the prior on $\sigma$ is the Half-Normal distribution. This is a truncated Normal distribution with all mass above zero. While it's not "standard", it puts more mass on values very close to zero.
In either case, the priors have two hyperparameters (shape & scale for the Inverse-Gamma, mean & standard deviation for the Half-Normal). It might not be altogether easy to pick them so that $E\{\log(\sigma)\} = \gamma$. Trying out different values should do it. And even if you have to do it by hand, you will be able to keep track of the shape of the distribution, not just its mean.
library("tidyverse")

# Inverse-Gamma: prior for the variance, not the standard deviation
shape <- 2
scale <- 0.5

ggplot() +
  geom_function(
    fun = ~ MCMCpack::dinvgamma(., shape, scale),
    n = 1001
  ) +
  scale_x_continuous(
    name = expression(sigma**2),
    limits = c(0, 2)
  ) +
  labs(y = "")
#> Warning: Removed 1 row(s) containing missing values (geom_path).


# Half-Normal: prior for the standard deviation

m <- 0.1
s <- 0.1

ggplot() +
  geom_function(
    fun = ~ dnorm(., m, s) / (1 - pnorm(0, m, s)),
    n = 1001
  ) +
  scale_x_continuous(
    name = expression(sigma),
    limits = c(0, 2)
  ) +
  labs(y = "")


Created on 2022-03-20 by the reprex package (v2.0.1)
