INVERSION: PREDATOR-PREY MODEL CALIBRATION¶

In this example, the classical predator-prey equations (or Lotka-Volterra equations) are calibrated against a time series that represents the relative population sizes of lynxes and hares in a region. The data used to estimate the population sizes over time were published in Howard (2009), but were originally collected based on the number of pelts traded by the Hudson Bay Company in the early 20th century.

The example is originally taken from the Stan manual (Carpenter, 2018).

References

  • Howard, P. (2009). Modeling basics. Lecture Notes for Math 442, Texas A&M University, <http://www.math.tamu.edu/~phoward/m442/modbasics.pdf URL> (last accessed: 13/12/2018).
  • Carpenter, B. (2018). Predator-Prey Population Dynamics: the Lotka-Volterra model in Stan, <http://mc-stan.org/users/documentation/case-studies/lotka-volterra-predator-prey.html URL> (last accessed: 13/12/2018).

Package imports¶

In [1]:
from uqpylab import sessions
import numpy as np
import math
import scipy.io

Start a remote UQCloud session¶

In [2]:
# Start the session
mySession = sessions.cloud()
# (Optional) Get a convenient handle to the command line interface
uq = mySession.cli
# Reset the session
mySession.reset()
Processing .
.
 done!

 uqpylab.sessions :: INFO     :: This is UQ[py]Lab, version 1.00, running on https://uqcloud.ethz.ch. 
                                 UQ[py]Lab is free software, published under the open source BSD 3-clause license.
                                 To request special permissions, please contact:
                                  - Stefano Marelli (marelli@ibk.baug.ethz.ch).
                                 A new session (2cb16c358510429babf72cfc697c58ed) started.
 uqpylab.sessions :: INFO     :: Reset successful.

Set the random seed for reproducibility¶

In [3]:
uq.rng(100, 'twister');

Forward model¶

The forward model used for calibration is the solution of the Lotka-Volterra differential equations given by:

$$ \frac{\mathrm{d}\,p_{\mathrm{prey}}}{\mathrm{d}\,t}=\alpha p_{\mathrm{prey}} - \beta p_{\mathrm{prey}}p_{\mathrm{pred}}$$

$$ \frac{\mathrm{d}\,p_{\mathrm{pred}}}{\mathrm{d}\,t}=-\gamma p_{\mathrm{pred}} + \delta p_{\mathrm{prey}}p_{\mathrm{pred}}$$

These equations describe the evolution over time $t$ of two populations: the prey $p_{\mathrm{prey}}$ and the predator $p_{\mathrm{pred}}$.

The forward model computes the population sizes for the duration of 21 years, for which measurements $y_{\mathrm{prey}}(t)$ and $y_{\mathrm{pred}}(t)$ are available.

The model takes as input parameters:

  • $\alpha$: growth rate of the prey population
  • $\beta$: shrinkage rate of the prey population (relative to the product of the population sizes)
  • $\gamma$: shrinkage rate of the predator population
  • $\delta$: growth rate of the predator population (relative to the product of the population sizes)
  • $p_{\mathrm{prey},0}$: initial prey population
  • $p_{\mathrm{pred},0}$: initial predator population

The computation is carried out by the function |uq_predatorPreyModel| supplied with UQLab. For every set of input parameters, the function returns the population evolution in a 21-year time series.

Load the measured population size stored in |Data|:

In [4]:
file_location = './Bayesian_Data'
mat = scipy.io.loadmat('{}/{}'.format(file_location,'uq_Example_BayesianPreyPred.mat'))
Data = mat['Data'][0][0]

Shift the year in the loaded data for consistency with the forward model (start from 0):

In [5]:
normYear = Data[0] - Data[0][0]

Specify the forward models as a UQLab MODEL object:

In [6]:
ModelOpts = {'Type': 'Model', 
             'ModelFun':'predatorPreyModel.model',
             'Parameters': {'time': normYear.tolist()},
             'isVectorized': True
            }
myForwardModel = uq.createModel(ModelOpts)

Prior distribution of the model parameters¶

To encode the available information about the model parameters $x_{\mathcal{M}}$ before any experimental observations, lognormal prior distributions are put on the parameters as follows:

  • $\alpha \sim \mathcal{LN}(\mu_\alpha = 1, \sigma_\alpha = 0.1)$
  • $\beta \sim \mathcal{LN}(\mu_\beta = 5\times10^{-2}, \sigma_\beta = 5\times10^{-3})$
  • $\gamma \sim \mathcal{LN}(\mu_\gamma = 1, \sigma_\gamma = 0.1)$
  • $\delta \sim \mathcal{LN}(\mu_\delta = 5\times10^{-2}, \sigma_\delta = 5\times10^{-3})$
  • $p_{\mathrm{prey},0} \sim \mathcal{LN}(\lambda_{p_{prey}} = \log{(10)}, \zeta_{p_{prey}} = 1)$
  • $p_{\mathrm{pred},0} \sim \mathcal{LN}(\lambda_{p_{pred}} = \log{(10)}, \zeta_{p_{pred}} = 1)$

Specify these prior distributions as a UQLab INPUT object:

In [7]:
PriorOpts = {
    'Name': 'Prior distribution on PredPrey parameters',
    'Marginals': [
        {
            'Name': 'alpha', 
            'Type': 'LogNormal',
            'Moments': [1, 0.1] 
        },
        {
            'Name': 'beta', 
            'Type': 'LogNormal',
            'Moments': [0.05, 0.005] 
        },
        {
            'Name': 'gamma', 
            'Type': 'LogNormal',
            'Moments': [1, 0.1] 
        },
        {
            'Name': 'delta', 
            'Type': 'LogNormal',
            'Moments': [0.05, 0.005] 
        },
        {
            'Name': 'initH', 
            'Type': 'LogNormal',
            'Parameters': [math.log(10), 1] 
        },
        {
            'Name': 'initL',
            'Type': 'LogNormal',
            'Parameters': [math.log(10), 1]
        }
    ]
}
    
myPriorDist = uq.createInput(PriorOpts)

Measurement data¶

Because the lynx and hare populations have different discrepancy options, the measurement data is stored in two different data structures

In [8]:
DataHare = Data[2]/1000
DataLynx = Data[1]/1000

myData = [
    {
        'y': [DataHare.tolist()], # in 1000
        'Name': 'Hare data',
        'MOMap': [list(range(1,22))] # Output ID
    },
    {
        'y': [DataLynx.tolist()], # in 1000
        'Name': 'Lynx data',
        'MOMap': [list(range(22,43))] # Output ID
    }
]

Discrepancy model¶

To infer the discrepancy variance, lognormal priors are put on the discrepancy parameters:

  • $\sigma^2_{\mathrm{prey}} \sim \mathcal{LN}(\lambda_{\sigma^2_\mathrm{prey}} = -1, \zeta_{\sigma^2_\mathrm{prey}} = 1)$
  • $\sigma^2_{\mathrm{pred}} \sim \mathcal{LN}(\lambda_{\sigma^2_\mathrm{pred}} = -1, \zeta_{\sigma^2_\mathrm{pred}} = 1)$

Specify these distributions separately as two INPUT objects:

In [9]:
SigmaOpts = {
    'Marginals': {
        'Name': 'Sigma2L',
        'Type': 'LogNormal',
        'Parameters': [-1, 1]
    }
}

mySigmaDist1 = uq.createInput(SigmaOpts)

SigmaOpts = {
    'Marginals': {
        'Name': 'Sigma2H',
        'Type': 'LogNormal',
        'Parameters': [-1, 1]
    }
}

mySigmaDist2 = uq.createInput(SigmaOpts)

Assign the distribution of $\sigma^2$ to the discrepancy options:

In [10]:
DiscrepancyOpts = [
    {
        'Type': 'Gaussian',
        'Prior': mySigmaDist1['Name']
    },
    {
        'Type': 'Gaussian',
        'Prior': mySigmaDist2['Name']
    }
]

Bayesian analysis¶

MCMC solver options¶

To sample directly from the posterior distribution, the adaptive Metropolis algorithm is employed for this example, using $100$ parallel chains, each with $100$ iterations:

In [11]:
Solver = {
    'Type': 'MCMC',
    'MCMC': {
        'Sampler': 'AM', 
        'Steps': 100, 
        'NChains': 100, 
    }
}

Visualization during MCMC execution currently not supported

Note: In this example, we use 100 MCMC iterations per chain and 100 parallel chains for demonstration purposes. It will take approximately 23 minutes to run because the forward model evaluation requires 10-15 seconds per iteration on a standard laptop. However, at least 5,000 to 10,000 iterations would be necessary for reliable results.

Posterior sample generation¶

The options for the Bayesian analysis are specified with the following structure:

In [12]:
BayesOpts = {
    'Type': 'Inversion',
    'Name': 'Bayesian model',
    'Prior': myPriorDist['Name'],
    'Data': myData,
    'Discrepancy': DiscrepancyOpts,
    'Solver': Solver
}

Perform and store the Bayesian inversion analysis:

In [13]:
myBayesianAnalysis = uq.createAnalysis(BayesOpts)
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((56, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((61, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((71, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((69, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((73, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((77, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((80, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((83, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((79, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((89, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((95, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((99, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((89, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((96, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((95, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((95, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((95, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((89, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((95, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((89, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((91, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((89, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((94, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((84, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((86, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((82, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((89, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((96, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((90, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((86, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((93, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((85, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((88, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((87, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((84, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((85, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((92, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.

Print out a report of the results:

In [14]:
uq.print(myBayesianAnalysis)
%----------------------- Inversion output -----------------------%
   Number of calibrated model parameters:         6
   Number of non-calibrated model parameters:     0

   Number of calibrated discrepancy parameters:   2

%------------------- Data and Discrepancy
%  Data-/Discrepancy group 1:
   Number of independent observations:            1

   Discrepancy:
      Type:                                       Gaussian
      Discrepancy family:                         Scalar
      Discrepancy parameters known:               No

   Associated outputs:
      Model 1: 
         Output dimensions:                       1
                                                  to
                                                  21


%  Data-/Discrepancy group 2:
   Number of independent observations:            1

   Discrepancy:
      Type:                                       Gaussian
      Discrepancy family:                         Scalar
      Discrepancy parameters known:               No

   Associated outputs:
      Model 1: 
         Output dimensions:                       22
                                                  to
                                                  42


%------------------- Solver
   Solution method:                               MCMC

   Algorithm:                                     AM
   Duration (HH:MM:SS):                           00:19:52
   Number of sample points:                       1.00e+04

%------------------- Posterior Marginals
------------------------------------------------------------------
| Parameter | Mean  | Std    | (0.025-0.97) Quant. | Type        |
------------------------------------------------------------------
| alpha     | 0.99  | 0.16   | (0.64 - 1.3)        | Model       |
| beta      | 0.05  | 0.0065 | (0.038 - 0.063)     | Model       |
| gamma     | 1     | 0.15   | (0.76 - 1.3)        | Model       |
| delta     | 0.047 | 0.0082 | (0.033 - 0.065)     | Model       |
| initH     | 19    | 7.8    | (6.5 - 35)          | Model       |
| initL     | 15    | 8.9    | (0.66 - 32)         | Model       |
| Sigma2L   | 3     | 0.93   | (1.1 - 5.2)         | Discrepancy |
| Sigma2H   | 2.4   | 0.87   | (0.86 - 4.4)        | Discrepancy |
------------------------------------------------------------------

%------------------- Point estimate
--------------------------------------
| Parameter | Mean  | Parameter Type |
--------------------------------------
| alpha     | 0.99  | Model          |
| beta      | 0.05  | Model          |
| gamma     | 1     | Model          |
| delta     | 0.047 | Model          |
| initH     | 19    | Model          |
| initL     | 15    | Model          |
| Sigma2L   | 3     | Discrepancy    |
| Sigma2H   | 2.4   | Discrepancy    |
--------------------------------------

%------------------- Correlation matrix (model parameters)
-------------------------------------------------------------------
|       |  alpha     beta      gamma    delta     initH    initL  |
-------------------------------------------------------------------
| alpha |  1         -0.047    0.1      -0.061    -0.12    0.4    |
| beta  |  -0.047    1         0.024    0.043     0.093    -0.16  |
| gamma |  0.1       0.024     1        0.16      0.23     0.2    |
| delta |  -0.061    0.043     0.16     1         -0.25    0.039  |
| initH |  -0.12     0.093     0.23     -0.25     1        0.42   |
| initL |  0.4       -0.16     0.2      0.039     0.42     1      |
-------------------------------------------------------------------

%------------------- Correlation matrix (discrepancy parameters)
----------------------------------
|         |  Sigma2L    Sigma2H  |
----------------------------------
| Sigma2L |  1          0.62     |
| Sigma2H |  0.62       1        |
----------------------------------




Posterior sample post-processing¶

Diagnose the quality of the results, create a trace plot of the first parameter:

In [15]:
uq.display(myBayesianAnalysis, trace=1);

From the plots, one can see that several chains have not converged yet. From the trace plot, the non-converged chains are all characterized by a final value $x_1^{(T)}>0.8$:

In [16]:
badChainsIndex = np.array(myBayesianAnalysis['Results']['Sample'])[-1,0,:] > 0.8

These chains can be removed from the sample through post-processing. Additionally, draw a sample of size $10^3$ from the prior and posterior predictive distributions:

In [17]:
myBayesianAnalysis = uq.postProcessInversion(myBayesianAnalysis,
                            'badChains', badChainsIndex.tolist(),
                            'prior', 1000,
                            'priorPredictive', 1000,
                            'posteriorPredictive', 1000,
                    )
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: predatorPreyModel.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1000, 42))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.

Note: sampling prior predictive samples requires new model evaluations

Display the post processed results:

In [18]:
uq.display(myBayesianAnalysis);

Terminate the remote UQCloud session¶

In [19]:
mySession.quit()
 uqpylab.sessions :: INFO     :: Session 2cb16c358510429babf72cfc697c58ed terminated.
Out[19]:
True