[SciPy-User] Rician distributions lacks sigma parameter

Warren Weckesser warren.weckesser at enthought.com
Wed Apr 4 17:04:29 EDT 2012


On Wed, Apr 4, 2012 at 3:57 PM, <josef.pktd at gmail.com> wrote:

> On Wed, Apr 4, 2012 at 1:59 PM,  <josef.pktd at gmail.com> wrote:
> > On Wed, Apr 4, 2012 at 1:53 PM,  <josef.pktd at gmail.com> wrote:
> >> On Wed, Apr 4, 2012 at 1:33 PM, Morten Kjeldgaard <mok at bioxray.dk>
> wrote:
> >>> Thanks for replies Josef and Warren!
> >>>
> >>> I think my current limitation is that I don't fully grasp how the
> >>> shape and scale parameters are propagated to the individual stats
> >>> distributions, and alas the autogenerated documentation isn't always
> >>> very helpful.
> >>>
> >>>> Given the parameters nu and sigma (as shown in the wikipedia
> >>>> article), you use scipy.stats.rice by setting the scale=sigma and
> >>>> the shape parameter b=nu/sigma.  You can use the following script to
> >>>> verify this:
> >>>
> >>> Like you write, the script works fine with parameters (nu, sigma) =
> >>> (3.45, 0.35), but it actually fails when I try to reproduce the plots
> >>> in the wikipedia article. When setting (nu, sigma) = (0, 1), I get the
> >>> following:
> >>
> >> the shape parameter nu has to be strictly positive, eg. nu=1e-10 works
> >> there is a problem with the calculation for nu equal to zero
> >
> > But the _pdf doesn't have a problem
> >>>> stats.rice._pdf(np.linspace(0,4,11),0.)
> > array([ 0.        ,  0.36924654,  0.58091923,  0.58410271,  0.44485968,
> >        0.27067057,  0.13472343,  0.05555507,  0.01912327,  0.00552172,
> >        0.00134185])
> >
> >>>> stats.rice.pdf(np.linspace(0,4,11),0.)
> > array([ nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan])
> >>>>
> >
> > so it should be possible to fix it for the nu=0 case, (define a>= 0 ?)
>
> should be a ticket: define _argcheck for rice
>
> something like the following (but I didn't check which args _argcheck
> is supposed to have)
>
> >>> def _argcheck(self, *args): return args >=0
> ...
> >>> stats.rice._argcheck = _argcheck
> >>> stats.rice.pdf(np.linspace(0,4,11),0.)
> array([ 0.        ,  0.36924654,  0.58091923,  0.58410271,  0.44485968,
>        0.27067057,  0.13472343,  0.05555507,  0.01912327,  0.00552172,
>        0.00134185])
> >>> stats.rice._pdf(np.linspace(0,4,11),0.)
> array([ 0.        ,  0.36924654,  0.58091923,  0.58410271,  0.44485968,
>        0.27067057,  0.13472343,  0.05555507,  0.01912327,  0.00552172,
>        0.00134185])
>
> Josef
>
>


Once again, your post arrived just as I was finishing mine.  Kinda spooky.

Could you add that comment to the ticket? (
http://projects.scipy.org/scipy/ticket/1639)

Warren



> >
> > Josef
> >
> >
> >>
> >> Josef
> >>
> >>>
> >>> AssertionError:
> >>> Not equal to tolerance rtol=1e-07, atol=0
> >>>
> >>> x and y nan location mismatch:
> >>>  x: array([  0.00000000e+00,   3.99680128e-02,   7.97444092e-02,
> >>>          1.19139103e-01,   1.57965051e-01,   1.96039735e-01,
> >>>          2.33186584e-01,   2.69236346e-01,   3.04028363e-01,...
> >>>  y: array([ nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,
> >>> nan,  nan,
> >>>         nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,
> >>> nan,
> >>>         nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,
> >>> nan,...
> >>>
> >>> In other words, your defined function rice_pdf works, but stats.rice
> >>> does not.
> >>>
> >>> Cheers,
> >>> Morten
> >>>
> >>> _______________________________________________
> >>> SciPy-User mailing list
> >>> SciPy-User at scipy.org
> >>> http://mail.scipy.org/mailman/listinfo/scipy-user
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20120404/f35a5cde/attachment.html>


More information about the SciPy-User mailing list