Skip to contents

Use a line or lines with independent normal errors to model a main effect or interaction. Typically used with time.

Usage

Lin(s = 1, mean_slope = 0, sd_slope = 1, along = NULL, zero_sum = FALSE)

Arguments

s

Scale for the prior for the errors. Default is 1. Can be 0.

mean_slope

Mean in prior for slope of line. Default is 0.

sd_slope

Standard deviation in prior for slope of line. Default is 1.

along

Name of the variable to be used as the 'along' variable. Only used with interactions.

zero_sum

If TRUE, values must sum to 0 within each combination of the 'by' variables. Default is FALSE.

Value

An object of class "bage_prior_lin".

Details

If Lin() is used with an interaction, then separate lines are constructed along the 'along' variable, within each combination of the 'by' variables.

Argument s controls the size of the errors. Smaller values tend to give smoother estimates. s can be zero.

Argument sd_slope controls the size of the slopes of the lines. Larger values can give more steeply sloped lines.

Mathematical details

When Lin() is used with a main effect,

$$\beta_j = \alpha + j \eta + \epsilon_j$$ $$\alpha \sim \text{N}(0, 1)$$ $$\epsilon_j \sim \text{N}(0, \tau^2),$$

and when it is used with an interaction,

$$\beta_{u,v} \sim \alpha_u + v \eta_u + \epsilon_{u,v}$$ $$\alpha_u \sim \text{N}(0, 1)$$ $$\epsilon_{u,v} \sim \text{N}(0, \tau^2),$$

where

  • \(\pmb{\beta}\) is the main effect or interaction;

  • \(j\) denotes position within the main effect;

  • \(v\) denotes position within the 'along' variable of the interaction; and

  • \(u\) denotes position within the 'by' variable(s) of the interaction.

The slopes have priors $$\eta \sim \text{N}(\text{mean_slope}, \text{sd_slope}^2)$$ and $$\eta_u \sim \text{N}(\text{mean_slope}, \text{sd_slope}^2).$$

Parameter \(\tau\) has a half-normal prior $$\tau \sim \text{N}^+(0, \text{s}^2).$$

See also

  • Lin_AR() Linear with AR errors

  • Lin_AR1() Linear with AR1 errors

  • RW2() Second-order random walk

  • priors Overview of priors implemented in bage

  • set_prior() Specify prior for intercept, main effect, or interaction

Examples

Lin()
#>   Lin() 
#>          s: 1
#> mean_slope: 0
#>   sd_slope: 1
#>      along: NULL
#>   zero_sum: FALSE
Lin(s = 0.5, sd_slope = 2)
#>   Lin(s=0.5,sd_slope=2) 
#>          s: 0.5
#> mean_slope: 0
#>   sd_slope: 2
#>      along: NULL
#>   zero_sum: FALSE
Lin(s = 0)
#>   Lin(s=0) 
#>          s: 0
#> mean_slope: 0
#>   sd_slope: 1
#>      along: NULL
#>   zero_sum: FALSE
Lin(along = "cohort")
#>   Lin(along="cohort") 
#>          s: 1
#> mean_slope: 0
#>   sd_slope: 1
#>      along: cohort
#>   zero_sum: FALSE