# [Scipy-tickets] [SciPy] #1848: stats invgauss parameters

SciPy Trac scipy-tickets@scipy....
Wed Feb 20 04:31:40 CST 2013

```#1848: stats invgauss parameters
---------------------------------------+------------------------------------
Reporter:  ken.bastiaensen@…          |       Owner:  rgommers
Type:  defect                     |      Status:  new
Priority:  normal                     |   Milestone:  Unscheduled
Component:  scipy.stats                |     Version:  0.11.0
Keywords:  invgauss                   |
---------------------------------------+------------------------------------
Hi,

I think the implementation of invgauss might not be correct.

The Inverse Gaussian is usually defined as the first hitting time
probability of a random gaussian process (Wiener) drifting towards a
barrier. See e.g.
http://en.wikipedia.org/wiki/Inverse_Gaussian_distribution
Usually the pdf is defined in the form pdf(x;d,a) = d / sqrt(2*pi*x**3) *
exp(-(a*x-d)**2/(2*x))
with d = c / sigma, a = m / sigma,
c: distance to barrier at start
and (m,sigma): drift and square vol of the process.

In scipy.stats it is defined as
invgauss.pdf(x, mu) = 1 / sqrt(2*pi*x**3) * exp(-(x-mu)**2/(2*x*mu**2))

I believe the location and scale transformation x -> (x-loc)/scale cannot
capture the actual change in parameter together with the parameter mu.
[[BR]]

The parameter loc cannot be used different from zero as it introduces a
polynomial in the sqrt of the first pdf factor, changing the
distribution.[[BR]]

A change in parameter scale:
pdf_scale(x,mu) =
sqrt(scale**3)/sqrt(2*pi*x**3)*exp(-(sqrt(scale)-x/(mu*sqrt(scale))**2/(2*x))
[[BR]]

In the exponential factor, the parameter mu is multiplied by sqrt(scale),
as well as the first term in the numerator. But the first pdf factor is
multiplied by sqrt(scale**3).

I don't think there exists a transformation betweeen the usual pdf as on
wikipedia and the parameters mu,loc,scale in the implementation. Or
differently stated, invgauss only captures the distribution when distance
to barrier equals standard deviation of the process, a very specific case.

I suggest to change to distribution implementation.

Should a transformation exist, then please regard this as an enhancement
request for the documentation to include this transformation.

This question was also asked in the user mailinglist but never answered:
http://mail.scipy.org/pipermail/scipy-user/2012-June/032420.html

Ken

--
Ticket URL: <http://projects.scipy.org/scipy/ticket/1848>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.
```

More information about the Scipy-tickets mailing list