Correlated datasets#
It is possible to incorporate a model for which the observed value \(Y\) at epoch \(i\) is a function of another (error-less) observable \(Z\), which I will call correlated variable:
\(Z_\mathrm{ref}\) is a reference value that can be either specified in the configuration file or automatically computed by PyORBIT. In the latter case, the average of all \(Z\) is taken.
Model definition and requirements#
model_name:
local_correlationorcorrelationrequired common objects:
correlation
Tip
The common object correlation will be automatically grabbed by PyORBIT. Since there are no common parameters, there is no need to specify it in the common section
Keywords#
Model-wide keywords, with the default value in boldface.
order
accepted values: any number up to 10 |
1order (or degree) of the polynomial used to describe the correlation
correlated_variable
accepted values: any variable name |
corrspecify which variable you want to use as correlated model. You need to declare it if you use a name different from
corrfor the label of your column in your dataset/ancillary file
normalization_model
accepted values:
True|FalseIf
False, the correlation model is added to the final model (which is a combination of all the other models). IfTrue, the correlation model is multiplied to the final model (as in the case of a normalization factor).If set to
True, they keywordinclude_zero_pointwill be set to True as well.
use_median_xzero
accepted values:
True|Falseif
True, automatically compute the median of the correlated variable, regardless of the value provided to the keyworduse_median_xzero
x_zero
accepted values: any value | median of the correlated dataset
User value for \(Z_\mathrm{ref}\) as defined in Equation {eq}
polynomial_correlation. To be valid, the keyworduse_median_xzeromust be set toFalse.
include_zero_point
accepted values:
True|FalseThe coefficient \(c_0\) is automatically set to zero, to avoid a degeneracy between this parameter and the offset of the dataset. You can decide to fit for \(c_0\) by setting this keyword to True, but be aware of the consequences
Note: this keyword is set to
Trueifnormalization_modelis set to True
exclude_zero_point
accepted values:
True|FalseIt does the opposite of the keywordinclude_zero_point. It must be set toTrueif you are using thenormalization_modelflag but you don’t want to fit for \(c_0\)
baseline_value
I’ll fix this
Warning
Not all the keywords have been implemented in version <= 9.1.12, check out if the output is consistent with your expectations.
Examples#
The input dataset follows the standard structure described in Prepare a dataset file.
# time flux flux_err jitter offset subset
0.302929 131.510068 1.00 0 0 -1
0.808006 58.192176 1.00 0 0 -1
2.114672 -37.794774 1.00 0 0 -1
...
The ancillary dataset, specified in the ancillary keyword in the input section as in the example below, is rather simple:
# time corr
0.302929 49.767572
0.808006 35.340020
2.114672 16.585392
...
This is an example of a basic analysis where a radial velocity model and a correlation model are used simultaneously. You can see that is not necessary to specify the correlation model in the common section, as PyORBIT will automatically grab the default boundaries, priors, and spaces from the model specification.
1inputs:
2 RV_data:
3 file: dataset_dat.dat
4 ancillary: dataset_anc.dat
5 kind: RV
6 models:
7 - radial_velocities
8 - local_correlation
9common:
10 planets:
11 b:
12 orbit: circular
13 boundaries:
14 P: [2, 20]
15 K: [0.01, 10.0]
16 star:
17 star_parameters:
18 priors:
19 radius: ['Gaussian', 1.00, 0.02]
20 mass: ['Gaussian', 1.00, 0.02]
21models:
22 radial_velocities:
23 planets:
24 - b
25 local_correlation:
26 model: local_correlation
27 correlated_variable: corr
28 order: 1
29parameters:
30 Tref: 0.00 #BJD-2450000; istante arbitrario, più o meno centrale
31solver:
32 pyde:
33 ngen: 20000
34 npop_mult: 4
35 emcee:
36 npop_mult: 4
37 nsteps: 25000
38 nburn: 10000
39 thin: 100
40 nested_sampling:
41 nlive: 4000
42 recenter_bounds: True
New from PyORBIT version 10:
The correlated dataset can be embedded directly in the dataset file (here called dataset_dat1.dat):
# time flux flux_err jitter offset subset corr
0.302929 131.510068 1.00 0 0 -1 49.767572
0.808006 58.192176 1.00 0 0 -1 35.340020
2.114672 -37.794774 1.00 0 0 -1 16.585392
...
In this case, it is not necessary to include the ancillary keyword anymore, but be sure to specify the correlated_variable keyword in the model section, as shown in the example above-
1inputs:
2 RV_data:
3 file: dataset_dat1.dat
4 kind: RV
5 models:
6 - radial_velocities
7 - local_correlation
8common:
9 planets:
10 b:
11 orbit: circular
12 boundaries:
13 P: [2, 20]
14 K: [0.01, 10.0]
15 star:
16 star_parameters:
17 priors:
18 radius: ['Gaussian', 1.00, 0.02]
19 mass: ['Gaussian', 1.00, 0.02]
20models:
21 radial_velocities:
22 planets:
23 - b
24 local_correlation:
25 type: local_correlation
26 correlated_variable: corr
27 order: 1
28parameters:
29 Tref: 0.00 #BJD-2450000; istante arbitrario, più o meno centrale
30solver:
31 pyde:
32 ngen: 20000
33 npop_mult: 4
34 emcee:
35 npop_mult: 4
36 nsteps: 25000
37 nburn: 10000
38 thin: 100
39 nested_sampling:
40 nlive: 4000
41 recenter_bounds: True
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 |
|---|---|---|---|---|
x_zero |
Constant \(Z_\mathrm{ref}\) as defined in Equation {eq} |
dataset |
|
|
corr_cN |
Coefficient of order N |
dataset |
|