MCMCSamplesDict class

pesummary handles multiple MCMC chains through a custom MCMCSamplesDict class. This MCMCSamplesDict class is inhertied from the core dict class and stores multiple SamplesDict objects, one for each chain. See SanplesDict class for more information. This MCMCSamplesDict class has many useful properties, for example working out the Gelman-Rubin statistic.

Initializing the MCMCSamplesDict class

The MCMCSamplesDict class is initialized with an array of parameters and an array containing the samples for each parameter for each chain,

>>> from pesummary.utils.samples_dict import MCMCSamplesDict
>>> parameters = ["a", "b"]
>>> samples = [
...     [
...         [1, 1.2, 1.7, 1.1, 1.4, 0.8, 1.6],
...         [10.2, 11.3, 11.6, 9.5, 8.6, 10.8, 10.9]
...     ], [
...         [0.8, 0.5, 1.7, 1.4, 1.2, 1.7, 0.9],
...         [10, 10.5, 10.4, 9.6, 8.6, 11.6, 16.2]
...     ]
... ]
>>> dataset = MCMCSamplesDict(parameter, samples)
>>> print(dataset.keys())
dict_keys(['chain_0', 'chain_1'])
>>> print(dataset["chain_0"])
idx     a              b
0       1.000000       10.200000
1       1.200000       11.300000
2       1.700000       11.600000
3       1.100000       9.500000
4       1.400000       8.600000
5       0.800000       10.800000
6       1.600000       10.900000

Using the MCMCSamplesDict properties

Below we show some of the useful properties of the MCMCSamplesDict class. For full details see the doc string,

>>> dataset.nchains
2
>>> transpose = dataset.T
>>> transpose["a"]
idx     chain_0        chain_1
0       1.000000       0.800000
1       1.200000       0.500000
2       1.700000       1.700000
3       1.100000       1.400000
4       1.400000       1.200000
5       0.800000       1.700000
6       1.600000       0.900000
>>> dataset.average
idx     a              b
0       0.900000       10.100000
1       0.850000       10.900000
2       1.700000       11.000000
3       1.250000       9.550000
4       1.300000       8.600000
5       1.250000       11.200000
6       1.250000       13.550000

Using the MCMCSamplesDict function

Below we show some of the useful function of the MCMCSamplesDict class. For full details see the doc string,

>>> dataset.gelman_rubin("a")
1.02018