[SciPy-User] Joint distributions

William Furnass will@thearete.co...
Wed Mar 21 12:48:38 CDT 2012

I am wanting to fit a parameterised model to a series of 15
datapoints, with each being a concentration C and time t.  Within the
objective function of the optimisation routine that I'm using for the
model fitting I presently calculate fitness using the Bray Curtis
distance between the data series and the prediction corresponding to a
candidate solution.

I would ideally like to calculate fitness in such a way as to account
for uncertainty in each (C, t).  I think I can achieve this for a
given data series by
 a) modelling each data point using a bivariate Gaussian PDF (with
static variances for both C and t)
 b) calculate a prediction using a small dt
 c) find the highest probability of all points in the prediction
series for each of the 15 bivariate PDFs
 d) sum or average the probabilities to get a measure of the fit of
the real data series to the prediction corresponding to the candidate

My question is is there an easy way of finding joint probabilities
using scipy.stats?  I thought I could construct a bivariate normal
distribution using

dens = scipy.stats.norm(loc=np.array([t[i], C[i]]),
scale=np.array([t_stdev, C_stdev]))



returns an array when I thought it should return a scalar probability.

Apologies if the above is not particularly clear or if I'm missing
something obvious here.


Will Furnass

More information about the SciPy-User mailing list