uniform_prior | R Documentation |

These simple objects of class `bssm_prior`

are used to construct a
prior distributions for the hyperparameters theta for some of the model
objects of `bssm`

package. Note that these priors do not include the
constant terms as they do not affect the sampling.

```
uniform_prior(init, min, max)
uniform(init, min, max)
halfnormal_prior(init, sd)
halfnormal(init, sd)
normal_prior(init, mean, sd)
normal(init, mean, sd)
tnormal_prior(init, mean, sd, min = -Inf, max = Inf)
tnormal(init, mean, sd, min = -Inf, max = Inf)
gamma_prior(init, shape, rate)
gamma(init, shape, rate)
```

`init` |
Initial value for the parameter, used in initializing the model components and as a starting values in MCMC. |

`min` |
Lower bound of the uniform and truncated normal prior. |

`max` |
Upper bound of the uniform and truncated normal prior. |

`sd` |
Positive value defining the standard deviation of the (underlying i.e. non-truncated) Normal distribution. |

`mean` |
Mean of the Normal prior. |

`shape` |
Positive shape parameter of the Gamma prior. |

`rate` |
Positive rate parameter of the Gamma prior. |

Currently supported priors are

uniform prior (

`uniform()`

) with a probability density function (pdf) defined as`\frac{1}{max - min}`

for`min < theta < max`

.normal (

`normal()`

), a normal distribution parameterized via mean and standard deviation, i.e. N(mean, sd^2).truncated normal distribution (

`tnormal()`

), a normal distribution with known truncation points (from below and/or above). Ignoring the scaling factors, this corresponds to the pdf of N(mean, sd^2) when`min < theta < max`

and zero otherwise.half-normal (

`halfnormal()`

) with a pdf matching the pdf of the truncated normal distribution with min=0 and max=inf.gamma (

`gamma`

), a gamma distribution with shape and rate parameterization.

All parameters are vectorized so for regression coefficient vector beta you
can define prior for example as `normal(0, 0, c(10, 20))`

.

For the general exponential models, i.e. models built with the `ssm_ulg`

,
`ssm_ung`

, `ssm_mlg`

, and `ssm_mng`

, you can define arbitrary priors by
defining the `prior_fn`

function, which takes the one argument, `theta`

,
corresponding to the hyperparameter vector of the model,
and returns a log-density of the (joint) prior (see the R Journal paper and
e.g. `ssm_ulg`

for examples). Similarly, the priors for the non-linear
models (`ssm_nlg`

) and SDE models (`ssm_sde`

) are constructed
via C++ snippets (see the vignettes for details).

The longer name versions of the prior functions with `_prior`

ending
are identical with shorter versions and they are available only to
avoid clash with R's primitive function `gamma`

(other long prior names
are just for consistent naming).

object of class `bssm_prior`

or `bssm_prior_list`

in case
of multiple priors (i.e. multiple regression coefficients).

```
# create uniform prior on [-1, 1] for one parameter with initial value 0.2:
uniform(init = 0.2, min = -1.0, max = 1.0)
# two normal priors at once i.e. for coefficients beta:
normal(init = c(0.1, 2.5), mean = 0.1, sd = c(1.5, 2.8))
# Gamma prior (not run because autotest tests complain)
# gamma(init = 0.1, shape = 2.5, rate = 1.1)
# Same as
gamma_prior(init = 0.1, shape = 2.5, rate = 1.1)
# Half-normal
halfnormal(init = 0.01, sd = 0.1)
# Truncated normal
tnormal(init = 5.2, mean = 5.0, sd = 3.0, min = 0.5, max = 9.5)
# Further examples for diagnostic purposes:
uniform(c(0, 0.2), c(-1.0, 0.001), c(1.0, 1.2))
normal(c(0, 0.2), c(-1.0, 0.001), c(1.0, 1.2))
tnormal(c(2, 2.2), c(-1.0, 0.001), c(1.0, 1.2), c(1.2, 2), 3.3)
halfnormal(c(0, 0.2), c(1.0, 1.2))
# not run because autotest bug
# gamma(c(0.1, 0.2), c(1.2, 2), c(3.3, 3.3))
# longer versions:
uniform_prior(init = c(0, 0.2), min = c(-1.0, 0.001), max = c(1.0, 1.2))
normal_prior(init = c(0, 0.2), mean = c(-1.0, 0.001), sd = c(1.0, 1.2))
tnormal_prior(init = c(2, 2.2), mean = c(-1.0, 0.001), sd = c(1.0, 1.2),
min = c(1.2, 2), max = 3.3)
halfnormal_prior(init = c(0, 0.2), sd = c(1.0, 1.2))
gamma_prior(init = c(0.1, 0.2), shape = c(1.2, 2), rate = c(3.3, 3.3))
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.