CARMA#
- 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:
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.
- 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: tinygp.helpers.JAXArray, beta: tinygp.helpers.JAXArray, sigma: Optional[tinygp.helpers.JAXArray] = None) CARMA [source]#
Construct a CARMA kernel
- Parameters:
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
, whereq <= 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
- to_general_qsm(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) GeneralQSM #
The generalized quasiseparable representation of this kernel