Conjugate Autoregressive node

The ConjugateAR node encodes the same Bayesian autoregressive process as the Autoregressive node:

\[y_t \sim \mathcal{N}(\theta^\top x_t, \, \gamma^{-1})\]

The likelihood is identical to the Autoregressive node, but the AR coefficients θ and the transition precision γ enter through a single edge w that carries the joint (θ, γ) as an MvNormalGamma variable, instead of the two separate mean-field edges θ and γ of AR.

Keeping (θ, γ) joint makes the parameter update exactly conjugate: under the structured factorization q(y, x) q(θ, γ) the posterior q(θ, γ) is again MvNormalGamma. This is a Bayesian linear regression with unknown noise precision, where the regression statistics are the expected sufficient statistics of q(y, x).

Interfaces

InterfaceAliasRole
youtCurrent observation yₜ
xLagged state vector (yₜ₋₁, …, yₜ₋ₚ)
wJoint parameters (θ, γ) distributed as MvNormalGamma

Metadata

ConjugateAR reuses ARMeta for the order and variate form, and — like AR — requires it to be passed explicitly:

y[t] ~ ConjugateAR(x[t], w) where { meta = ARMeta(Multivariate, order, ARsafe()) }

The state messages (:y, :x), the (y, x) joint marginal, and the average energy delegate to the existing AR rules through the effective (q_θ, q_γ) moments computed by ReactiveMP.conjugatear_effective_marginals.

ReactiveMP.ConjugateARType
ConjugateAR

Autoregressive node with a combined conjugate parameter interface. The likelihood is identical to ARy₁ ∼ N(θᵀx, γ⁻¹) with companion-form state propagation — but the AR coefficients θ and the transition precision γ enter through a single edge w that carries the joint (θ, γ) as an MvNormalGamma variable, instead of the two mean-field edges θ and γ of AR.

Keeping (θ, γ) joint makes the parameter update exactly conjugate: under the structured factorization q(y, x) q(θ, γ) the posterior q(θ, γ) is MvNormalGamma. This is a Bayesian linear regression with unknown noise precision, where the regression statistics are the expected sufficient statistics of q(y, x). The node reuses ARMeta for the order and variate form.

Interfaces

  1. y (alias out) — current state.
  2. x — lagged state vector of length order.
  3. w — joint parameters (θ, γ) distributed as MvNormalGamma.
source
ReactiveMP.conjugatear_effective_marginalsFunction
conjugatear_effective_marginals(q_w::MvNormalGamma)

Map the joint marginal q(θ, γ) = MvNormalGamma(μ, Λ, α, β) to the (q_θ, q_γ) pair under which the AR state/energy rules reproduce the exact ConjugateAR moments: E[γ] = α/β, E[θ] = μ, and the coefficient–precision coupling mγ·Vθ = Λ⁻¹ (i.e. E[γθθᵀ] − E[γ]μμᵀ). This lets the ConjugateAR state rules delegate to the tested AR rules without duplicating their algebra.

source