epinowcast
Loading...
Searching...
No Matches
regression.stan File Reference

Go to the source code of this file.

Functions

real intercept_centring_offset (vector means_fixed, vector beta, vector beta_sd, matrix rdesign, int neffs)
 
 tuple (real, real) centring_offsets(vector means_fixed
 
 return (design, latent)
 
vector regression_predictor (array[] real intercept, vector beta, int nobs, int neffs, matrix fdesign, tuple(vector, array[] int, array[] int) sparse, vector beta_sd, matrix rdesign, int add_intercept, int sparse_design, int centre, int arima_present, int arima_T, int arima_G, int arima_p, int arima_d, int arima_q, int arima_n_obs, matrix arima_z, vector arima_pacf, vector arima_theta, array[] real arima_sigma, array[] int arima_flat_idx, int gp_present, int gp_T, int gp_G, int gp_M, real gp_L, int gp_type, real gp_nu, int gp_d, matrix gp_PHI, matrix gp_eta, array[] real gp_rho, array[] real gp_alpha, array[] int gp_flat_idx)
 
void regression_priors_lp (vector beta, vector beta_sd, array[,] real beta_sd_p, int fixed, int random, int arima_present, int arima_p, int arima_q, matrix arima_z, vector arima_pacf, vector arima_theta, array[] real arima_sigma, array[,] real arima_sigma_p, array[,] real arima_pacf_p)
 
void gp_priors_lp (int gp_present, matrix gp_eta, array[] real gp_rho, array[] real gp_alpha, array[,] real gp_rho_p, array[,] real gp_alpha_p)
 

Variables

vector beta
 
vector vector beta_sd
 
vector vector matrix rdesign
 
vector vector matrix int neffs
 
vector vector matrix int int centre
 
vector vector matrix int int int arima_present
 
vector vector matrix int int int int arima_T
 
vector vector matrix int int int int int arima_G
 
vector vector matrix int int int int int int arima_p
 
vector vector matrix int int int int int int int arima_d
 
vector vector matrix int int int int int int int int arima_q
 
vector vector matrix int int int int int int int int matrix arima_z
 
vector vector matrix int int int int int int int int matrix vector arima_pacf
 
vector vector matrix int int int int int int int int matrix vector vector arima_theta
 
vector vector matrix int int int int int int int int matrix vector vector array[] real arima_sigma
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int gp_present
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int gp_T
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int gp_G
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int gp_M
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real gp_L
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int gp_type
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real gp_nu
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int gp_d
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix gp_PHI
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix matrix gp_eta
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix matrix array[] real gp_rho
 
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix matrix array[] real array[] real gp_alpha
 
real latent
 

Function Documentation

◆ gp_priors_lp()

void gp_priors_lp ( int gp_present,
matrix gp_eta,
array[]real gp_rho,
array[]real gp_alpha,
array real gp_rho_p[,],
array real gp_alpha_p[,] )

Priors for an approximate Gaussian process latent term.

The spectral coefficients eta get a unit-normal (non-centred) prior. The length scale rho gets a log-normal prior and the magnitude alpha a half-normal prior, with each prior (mean, sd) supplied as data. Inert when gp_present == 0.

Definition at line 179 of file regression.stan.

◆ intercept_centring_offset()

real intercept_centring_offset ( vector means_fixed,
vector beta,
vector beta_sd,
matrix rdesign,
int neffs )

Single entry points for the regression layer.

regression_predictor() composes combine_effects() (fixed + partially-pooled random effects via the design matrices) with apply_arima_residual() (parameter-dependent ARIMA(p, d, q) latent residual) and apply_gp_term() (Hilbert-space approximate Gaussian process). Each module that owns a per-observation predictor calls this once instead of calling the layers separately, so every module routed through it gains the ARIMA and GP latent terms for free.

regression_priors_lp() is the matching one-shot priors helper: effect priors plus ARIMA priors (shocks, MA coefficients, latent standard deviation; partial autocorrelations get an implicit uniform prior via their parameter bounds). GP priors are supplied by the separate gp_priors_lp() helper so the long argument list stays manageable.

Both layers are inert when their term is absent: when arima_present == 0 and gp_present == 0, regression_predictor() returns the bare combine_effects() result; each apply_* call short-circuits on its own presence flag.

Every per-observation module routes through these helpers: expr, expl, refnp, and miss apply the latent terms directly at the observation level, while the sparse-row modules refp and rep supply a flat_idx built from the joint (covariate row x time x group) deduplication so the same gather works at sparse-row granularity. The ARIMA and GP terms share this scheme. See vignettes/arima.Rmd and vignettes/gaussian-process.Rmd. Intercept centring offset for a fixed-effects design.

Returns dot(means_fixed, scaled_beta), the mean of the fixed-effect contribution X * scaled_beta over the observations (with means_fixed the observation-weighted column means of the design). Subtracting this from the linear predictor centres the design so the intercept becomes the predictor mean rather than its value at the covariate origin, decorrelating the intercept from the slopes. brms centres the population-level design matrix the same way; it then places the prior on the centred intercept, whereas here the original-scale intercept is recovered via int_raw = int - offset (an additive shift, so the change of variables has unit Jacobian) and the user's prior is placed on the recovered int_raw. A very tight intercept prior therefore reintroduces a little of the intercept/slope coupling, but the user's stated prior is honoured on the original-scale intercept.

Returns 0 when there are no fixed effects (neffs == 0).

Definition at line 51 of file regression.stan.

◆ regression_predictor()

vector regression_predictor ( array[]real intercept,
vector beta,
int nobs,
int neffs,
matrix fdesign,
tuple(vector, array[] int, array[] int) sparse,
vector beta_sd,
matrix rdesign,
int add_intercept,
int sparse_design,
int centre,
int arima_present,
int arima_T,
int arima_G,
int arima_p,
int arima_d,
int arima_q,
int arima_n_obs,
matrix arima_z,
vector arima_pacf,
vector arima_theta,
array[]real arima_sigma,
array[]int arima_flat_idx,
int gp_present,
int gp_T,
int gp_G,
int gp_M,
real gp_L,
int gp_type,
real gp_nu,
int gp_d,
matrix gp_PHI,
matrix gp_eta,
array[]real gp_rho,
array[]real gp_alpha,
array[]int gp_flat_idx )

Definition at line 96 of file regression.stan.

◆ regression_priors_lp()

void regression_priors_lp ( vector beta,
vector beta_sd,
array real beta_sd_p[,],
int fixed,
int random,
int arima_present,
int arima_p,
int arima_q,
matrix arima_z,
vector arima_pacf,
vector arima_theta,
array[]real arima_sigma,
array real arima_sigma_p[,],
array real arima_pacf_p[,] )

Definition at line 144 of file regression.stan.

◆ return()

return ( design ,
latent  )

◆ tuple()

tuple ( real ,
real  )

Bundle a module's design and latent centring offsets.

Returns (design, latent), where design is the fixed-effect design offset (see intercept_centring_offset) and latent is the summed grand-mean offsets of the integrated ARIMA and GP latents (see arima_latent_mean_offset and gp_latent_mean_offset). A module recovers its original-scale intercept as int_c - design - latent and subtracts only design from the centred predictor (the latent is already grand-mean centred in apply_arima_residual / apply_gp_term). All shifts are additive, so the recovery has unit Jacobian. This keeps the per-module recovery to a single call rather than three.

Variable Documentation

◆ arima_d

vector vector matrix int int int int int int int arima_d

Definition at line 76 of file regression.stan.

◆ arima_G

vector vector matrix int int int int int arima_G

Definition at line 75 of file regression.stan.

◆ arima_p

vector vector matrix int int int int int int arima_p

Definition at line 76 of file regression.stan.

◆ arima_pacf

vector vector matrix int int int int int int int int matrix vector arima_pacf

Definition at line 77 of file regression.stan.

◆ arima_present

vector vector matrix int int int arima_present

Definition at line 75 of file regression.stan.

◆ arima_q

vector vector matrix int int int int int int int int arima_q

Definition at line 76 of file regression.stan.

◆ arima_sigma

vector vector matrix int int int int int int int int matrix vector vector array [] real arima_sigma

Definition at line 78 of file regression.stan.

◆ arima_T

vector vector matrix int int int int arima_T

Definition at line 75 of file regression.stan.

◆ arima_theta

vector vector matrix int int int int int int int int matrix vector vector arima_theta

Definition at line 77 of file regression.stan.

◆ arima_z

vector vector matrix int int int int int int int int matrix arima_z

Definition at line 77 of file regression.stan.

◆ beta

vector beta

Definition at line 73 of file regression.stan.

◆ beta_sd

vector vector beta_sd

Definition at line 73 of file regression.stan.

◆ centre

vector vector matrix int int centre

Definition at line 74 of file regression.stan.

◆ gp_alpha

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real int real int matrix matrix array [] real array [] real gp_alpha
Initial value:
{
means_fixed, beta, beta_sd, rdesign, neffs
)
vector beta
vector vector matrix int neffs
vector vector beta_sd
real intercept_centring_offset(vector means_fixed, vector beta, vector beta_sd, matrix rdesign, int neffs)
vector vector matrix rdesign

Definition at line 81 of file regression.stan.

◆ gp_d

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real int real int gp_d

Definition at line 80 of file regression.stan.

◆ gp_eta

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real int real int matrix matrix gp_eta

Definition at line 80 of file regression.stan.

◆ gp_G

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int gp_G

Definition at line 79 of file regression.stan.

◆ gp_L

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real gp_L

Definition at line 79 of file regression.stan.

◆ gp_M

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int gp_M

Definition at line 79 of file regression.stan.

◆ gp_nu

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real int real gp_nu

Definition at line 80 of file regression.stan.

◆ gp_PHI

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real int real int matrix gp_PHI

Definition at line 80 of file regression.stan.

◆ gp_present

vector vector matrix int int int int int int int int matrix vector vector array [] real int gp_present

Definition at line 79 of file regression.stan.

◆ gp_rho

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real int real int matrix matrix array [] real gp_rho

Definition at line 81 of file regression.stan.

◆ gp_T

vector vector matrix int int int int int int int int matrix vector vector array [] real int int gp_T

Definition at line 79 of file regression.stan.

◆ gp_type

vector vector matrix int int int int int int int int matrix vector vector array [] real int int int int real int gp_type

Definition at line 80 of file regression.stan.

◆ latent

real latent
Initial value:
)
real arima_latent_mean_offset(int present, int centre, int T, int G, int p, int d, int q, matrix z, vector pacf, vector theta, array[] real sigma)
real gp_latent_mean_offset(int present, int centre, int T, int G, int M, real L, int type, real nu, int d, matrix PHI, matrix eta, array[] real rho, array[] real alpha)
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int gp_type
vector vector matrix int int centre
vector vector matrix int int int int int int int int arima_q
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix matrix gp_eta
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix matrix array[] real array[] real gp_alpha
vector vector matrix int int int int int int int int matrix vector vector array[] real arima_sigma
vector vector matrix int int int int int int int int matrix arima_z
vector vector matrix int int int int int int int arima_d
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix gp_PHI
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int gp_d
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int gp_M
vector vector matrix int int int int int int int int matrix vector vector array[] real int int gp_T
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real gp_nu
vector vector matrix int int int arima_present
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int gp_G
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real gp_L
vector vector matrix int int int int int int int int matrix vector arima_pacf
vector vector matrix int int int int int int int int matrix vector vector array[] real int int int int real int real int matrix matrix array[] real gp_rho
vector vector matrix int int int int int int arima_p
vector vector matrix int int int int arima_T
vector vector matrix int int int int int int int int matrix vector vector array[] real int gp_present
vector vector matrix int int int int int arima_G
vector vector matrix int int int int int int int int matrix vector vector arima_theta

Definition at line 86 of file regression.stan.

◆ neffs

vector vector matrix int neffs

Definition at line 73 of file regression.stan.

◆ rdesign

vector vector matrix rdesign

Definition at line 73 of file regression.stan.