Quasi-periodic kernel#

The quasi-periodic kernel is the preferred choice for the multidimensional GP. We follow the expression given by Rajpaul et al. 2015:

(12)#\[\gamma ^{(G,G)}_{i,j} = \exp{ \left \{-\frac{\sin^2{[\pi(t_i - t_j)/ P_\mathrm{rot}]}}{2 O_\mathrm{amp} ^2} - \frac{(t_i-t_j)^2}{2 P_\mathrm{dec}^2} \right \} }\]

Where \(P_\mathrm{rot}\) is equivalent to the rotation period of the star, \(O_\mathrm{amp}\) is the coherence scale, and \(P_\mathrm{dec}\) is usually associated with the decay time scale of the active regions.

Note

Check the documentation page on the quasi-periodic kernel for additional information on this kernel

Improvements#

In PyORBIT the framework implementation has been expanded to support an unlimited number of datasets. Additionally, it is not required for the datasets to have the same dimensions, thus allowing the use of several RV datasets even if activity indicators are not available for all of them.

The coefficients \(X_c\) and \(X_c\) are thus renamed in con_amp and rot_amp, with the reference dataset easily identifiable from the terminal output.

Model definition and requirements#

model name: tinygp_multidimensional_quasiperiodic

model name: gp_multidimensional_quasiperiodic

  • required common objects: activity

  • direct implementation using numpy and scipy packages.

model name: gp_multidimensional_quasiperiodic_numba

  • required common objects: activity

  • direct implementation using numpy and scipy packages with numba acceleration.

Keywords#

Model-wide keywords, with the default value in bold face.

hyperparameters_condition

  • accepted values: True | False

  • activate the conditions \( P_\mathrm{dec} ^ 2 > \frac{3}{2 \pi} P_\mathrm{rot} ^2 O_\mathrm{amp} ^ 2 \) from Rajpaiul 2017 and Rajpaul et al. 2021, to ensure that the QP function has at least one non-trivial turning point.

rotation_decay_condition

  • accepted values: True | False

  • if activated, it ensures that the decay time scale of the activity regions \(\lambda\) is at least twice the rotational period of the star \(\theta\)

derivative

  • accepted values: list of datasets using the model

  • if not provided, default is True for all datasets except H-alpha S_index Ca_HK, and FWHM. If provided, default is False for all the datasets not explicitly mentioned.

  • If True, the first derivative of the underlying Gaussian process is included, otherwise, rot_ampF is fixed to zero.

Examples#

In the following example, one RV dataset comes together with two activity indicators, the BIS and the FWHM of the CCF, the latter as a replacement of \(\log{R^{\prime}_\mathrm{HK}}\).

Here gp_multidimensional is the label that we assign to the tinygp_multidimensional_quasiperiodic model. The label is assigned to each dataset, including the RV dataset for which also the RV model is included.

The common:planets section includes three planets, of which one is transiting - with Gaussian priors on the period and time of inferior conjunction - and two non-transiting planets with a prior on the eccentricity. The common:activity section provides the hyperparameters for the GP shared among all the datasets. The example shows how to assign boundaries and priors to the parameters. The model keywords and the boundaries for the dataset-specific parameters are listed in models:gp_multidimensional

  1inputs:
  2  RVdata:
  3    file: RVS_PyORBIT.dat
  4    kind: RV
  5    models:
  6      - radial_velocities
  7      - gp_multidimensional
  8  BISdata:
  9    file: BIS_PyORBIT.dat
 10    kind: BIS
 11    models:
 12      - gp_multidimensional
 13  FWHMdata:
 14    file: FWHM_PyORBIT.dat
 15    kind: FWHM
 16    models:
 17      - gp_multidimensional
 18common:
 19  planets:
 20    b:
 21      orbit: circular
 22      use_time_inferior_conjunction: True
 23      boundaries:
 24        P: [2.21000, 2.240000]
 25        K: [0.001, 20.0]
 26        Tc: [59144.60, 59144.63]
 27      priors:
 28        P: ['Gaussian', 2.2241951, 0.00000030]
 29        Tc: ['Gaussian', 59144.616171, 0.000284]
 30    c:
 31      orbit: keplerian
 32      boundaries:
 33        P: [2.0, 100.0]
 34        K: [0.001, 30.0]
 35        e: [0.00, 0.70]
 36      priors:
 37        e: ['Gaussian', 0.00, 0.098]
 38    d:
 39      orbit: keplerian
 40      boundaries:
 41        P: [2.0, 100.0]
 42        K: [0.001, 30.0]
 43        e: [0.00, 0.70]
 44      priors:
 45        e: ['Gaussian', 0.00, 0.098]
 46  activity:
 47    boundaries:
 48      Prot: [20.0, 30.0]
 49      Pdec: [30.0, 1000.0]
 50      Oamp: [0.01, 1.0]
 51    priors:
 52      Prot: ['Gaussian', 14.00, 0.50]
 53      Oamp: ['Gaussian', 0.35, 0.035]
 54  star:
 55    star_parameters:
 56      priors:
 57        mass: ['Gaussian', 0.65, 0.05]
 58        radius: ['Gaussian', 0.624, 0.005]
 59        density: ['Gaussian', 2.65, 0.08]
 60models:
 61  radial_velocities:
 62    planets:
 63      - b
 64      - c
 65      - d
 66  gp_multidimensional:
 67    model: tinygp_multidimensional_quasiperiodic
 68    common: activity
 69    hyperparameters_condition: True
 70    rotation_decay_condition: True
 71    RVdata:
 72      boundaries:
 73        rot_amp: [0.0, 20.0] #at least one must be positive definite
 74        con_amp: [-20.0, 20.0]
 75      derivative: True
 76    BISdata:
 77      boundaries:
 78        rot_amp: [-20.0, 20.0]
 79        con_amp: [-20.0, 20.0]
 80      derivative: True
 81    FWHMdata:
 82      boundaries:
 83        con_amp: [-50., 50.]
 84      derivative: False
 85parameters:
 86  Tref: 59200.00
 87  safe_reload: True
 88  low_ram_plot: True
 89  plot_split_threshold: 1000
 90  cpu_threads: 16
 91solver:
 92  pyde:
 93    ngen: 50000
 94    npop_mult: 4
 95  emcee:
 96    npop_mult: 4
 97    nsteps: 100000
 98    nburn: 25000
 99    nsave: 25000
100    thin: 100
101    #use_threading_pool: False
102  nested_sampling:
103    nlive: 1000
104    sampling_efficiency: 0.30
105  recenter_bounds: True

Tip

Since the coefficients are always coupled, there is a degeneracy between a given set and the opposite one (i.e., all the coefficient with opposite sign). This degeneracy can be solved by force one coefficient to be positive, e.g., rot_amp for the RV_data in the example.

A simpler way to prepare the configuration file if you are not specifying the boundaries is to list the datasets with derivatives under the same keyword:

 1...
 2  gp_multidimensional:
 3    model: gp_multidimensional_quasiperiodic
 4    common: activity
 5    hyperparameters_condition: True
 6    rotation_decay_condition: True
 7    derivative:
 8      RVdata: True
 9      BISdata: True
10      FWHMdata: False
11parameters:
12...

Model parameters#

The following parameters will be inherited from the common model (column Common?: common) or a different value will be assigned for each dataset (column Common?: dataset)

Name

Parameter

Common?

Definition

Notes

Prot

rotational period of the star \(\theta\)

common

activity

Pdec

Decay time scale of active regions \(\lambda\)

common

activity

Oamp

Coherence scale \(w\)

common

activity

con_amp

coefficient of \(G(t)\) component

dataset

activity

rot_amp

coefficient of \(G^\prime (t)\) component

dataset

activity