class tinygp.kernels.quasisep.CARMA(alpha: tinygp.helpers.JAXArray, beta: tinygp.helpers.JAXArray, sigma: tinygp.helpers.JAXArray, roots: tinygp.helpers.JAXArray, proj: tinygp.helpers.JAXArray, proj_inv: tinygp.helpers.JAXArray, stn: tinygp.helpers.JAXArray)[source]#

Bases: tinygp.kernels.quasisep.Quasisep

A continuous autoregressive moving average (CARMA) process

This process has the power spectrum

\[P(\omega) = \sigma^2\,\frac{\sum_{q} \beta_q\,(i\,\omega)^q}{\sum_{p} \alpha_p\,(i\,\omega)^p}\]

defined following Kelly et al. (2014).

Unlike other kernels, this must be instatiated using the init() method instead of the usual constructor:

kernel = CARMA.init(alpha=..., beta=..., sigma=...)
coord_to_sortable(X: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray#

A helper function used to convert coordinates to sortable 1-D values

By default, this is the identity, but in cases where X is structured (e.g. multivariate inputs), this can be used to appropriately unwrap that structure.

design_matrix() tinygp.helpers.JAXArray[source]#

The design matrix for the process

evaluate(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray#

The kernel evaluated via the quasiseparable representation

evaluate_diag(X: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray#

For quasiseparable kernels, the variance is simple to compute

classmethod init(alpha: JAXArray, beta: JAXArray, sigma: Optional[JAXArray] = None) CARMA[source]#

Construct a CARMA kernel

  • alpha – The parameter \(\alpha\) in the definition above. This should be an array of length p.

  • beta – The parameter \(\beta\) in the definition above. This should be an array of length q, where q <= p.

  • sigma – The parameter \(\sigma\) in the definition above.

observation_model(X: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray[source]#

The observation model for the process

stationary_covariance() tinygp.helpers.JAXArray[source]#

The stationary covariance of the process

to_general_qsm(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) tinygp.solvers.quasisep.general.GeneralQSM#

The generalized quasiseparable representation of this kernel

to_symm_qsm(X: tinygp.helpers.JAXArray) tinygp.solvers.quasisep.core.SymmQSM#

The symmetric quasiseparable representation of this kernel

transition_matrix(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray[source]#

The transition matrix between two coordinates