[SciPy-Dev] Multivariate normal distribution in scipy.stats
Ralf Gommers
ralf.gommers at gmail.com
Mon Aug 5 16:42:04 EDT 2013
On Sun, Aug 4, 2013 at 8:35 PM, Robert Kern <robert.kern at gmail.com> wrote:
> On Sun, Aug 4, 2013 at 11:54 AM, Joris Vankerschaver <
> joris.vankerschaver at gmail.com> wrote:
> >
> > Dear all,
> >
> > I was wondering if there's any interest to have the multivariate normal
> distribution integrated into scipy.stats. Its PDF is easily calculated, for
> instance by something like
> >
> > def multinormal_pdf(r, mean, cov):
> > """ Probability density function for a multidimensional Gaussian
> distribution."""
> > dim = r.shape[-1]
> > dev = r - mean
> > maha = np.einsum('...k,...kl,...l->...', dev, np.linalg.pinv(cov),
> dev)
> > return (2 * np.pi)**(-0.5 * dim) * np.linalg.det(cov)**(0.5) *
> np.exp(-0.5 * maha)
> >
> > Here, r is an array-like of position vectors, with the last axis
> labeling the components.
> >
> > While all of this would be useful and not too hard to code up, it
> doesn't seem to fit within the scipy.stats.rv_continuous framework, which
> seems to be explicitly geared to 1D random variables. Is there a natural
> place where this code could be fitted in, or is this functionality already
> somewhere else in SciPy?
>
> A new scipy.stats.multivariate module would be a fine place for it. This
> is common enough that it doesn't need to wait for a full-fledged framework
> for multivariate distributions, in my opinion. I'm not sure what such a
> framework would really do except collect the various PDFs and log-PDFs.
>
+1 to add it without a framework. Can be either a new module or in the
scipy.stats namespace - there aren't that many multivariate distributions
that it would necessarily warrant a new submodule.
Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20130805/35190325/attachment.html>
More information about the SciPy-Dev
mailing list