Provided by: libpdl-stats-perl_0.75-1build3_amd64 bug

NAME

       PDL::Stats::Distr -- parameter estimations and probability density functions for
       distributions.

DESCRIPTION

       Parameter estimate is maximum likelihood estimate when there is closed form estimate,
       otherwise it is method of moments estimate.

SYNOPSIS

           use PDL::LiteF;
           use PDL::Stats::Distr;

             # do a frequency (probability) plot with fitted normal curve

           my ($xvals, $hist) = $data->hist;

             # turn frequency into probability
           $hist /= $data->nelem;

             # get maximum likelihood estimates of normal curve parameters
           my ($m, $v) = $data->mle_gaussian();

             # fitted normal curve probabilities
           my $p = $xvals->pdf_gaussian($m, $v);

           use PDL::Graphics::PGPLOT::Window;
           my $win = pgwin( Dev=>"/xs" );

           $win->bin( $hist );
           $win->hold;
           $win->line( $p, {COLOR=>2} );
           $win->close;

       Or, play with different distributions with plot_distr :)

           $data->plot_distr( 'gaussian', 'lognormal' );

FUNCTIONS

   mme_beta
         Signature: (a(n); float+ [o]alpha(); float+ [o]beta())

           my ($a, $b) = $data->mme_beta();

       beta distribution. pdf: f(x; a,b) = 1/B(a,b) x^(a-1) (1-x)^(b-1)

       mme_beta processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   pdf_beta
         Signature: (x(); a(); b(); float+ [o]p())

       probability density function for beta distribution. x defined on [0,1].

       pdf_beta processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   mme_binomial
         Signature: (a(n); int [o]n_(); float+ [o]p())

           my ($n, $p) = $data->mme_binomial;

       binomial distribution. pmf: f(k; n,p) = (n k) p^k (1-p)^(n-k) for k = 0,1,2..n

       mme_binomial processes bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   pmf_binomial
         Signature: (ushort x(); ushort n(); p(); float+ [o]out())

       probability mass function for binomial distribution.

       pmf_binomial processes bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   mle_exp
         Signature: (a(n); float+ [o]l())

           my $lamda = $data->mle_exp;

       exponential distribution. mle same as method of moments estimate.

       mle_exp processes bad values.  It will set the bad-value flag of all output piddles if the
       flag is set for any of the input piddles.

   pdf_exp
         Signature: (x(); l(); float+ [o]p())

       probability density function for exponential distribution.

       pdf_exp processes bad values.  It will set the bad-value flag of all output piddles if the
       flag is set for any of the input piddles.

   mme_gamma
         Signature: (a(n); float+ [o]shape(); float+ [o]scale())

           my ($shape, $scale) = $data->mme_gamma();

       two-parameter gamma distribution

       mme_gamma processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   pdf_gamma
         Signature: (x(); a(); t(); float+ [o]p())

       probability density function for two-parameter gamma distribution.

       pdf_gamma processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   mle_gaussian
         Signature: (a(n); float+ [o]m(); float+ [o]v())

           my ($m, $v) = $data->mle_gaussian();

       gaussian aka normal distribution. same results as $data->average and $data->var. mle same
       as method of moments estimate.

       mle_gaussian processes bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   pdf_gaussian
         Signature: (x(); m(); v(); float+ [o]p())

       probability density function for gaussian distribution.

       pdf_gaussian processes bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   mle_geo
         Signature: (a(n); float+ [o]p())

       geometric distribution. mle same as method of moments estimate.

       mle_geo processes bad values.  It will set the bad-value flag of all output piddles if the
       flag is set for any of the input piddles.

   pmf_geo
         Signature: (ushort x(); p(); float+ [o]out())

       probability mass function for geometric distribution. x >= 0.

       pmf_geo processes bad values.  It will set the bad-value flag of all output piddles if the
       flag is set for any of the input piddles.

   mle_geosh
         Signature: (a(n); float+ [o]p())

       shifted geometric distribution. mle same as method of moments estimate.

       mle_geosh processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   pmf_geosh
         Signature: (ushort x(); p(); float+ [o]out())

       probability mass function for shifted geometric distribution. x >= 1.

       pmf_geosh processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   mle_lognormal
         Signature: (a(n); float+ [o]m(); float+ [o]v())

           my ($m, $v) = $data->mle_lognormal();

       lognormal distribution. maximum likelihood estimation.

       mle_lognormal processes bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   mme_lognormal
         Signature: (a(n); float+ [o]m(); float+ [o]v())

           my ($m, $v) = $data->mme_lognormal();

       lognormal distribution. method of moments estimation.

       mme_lognormal processes bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   pdf_lognormal
         Signature: (x(); m(); v(); float+ [o]p())

       probability density function for lognormal distribution. x > 0. v > 0.

       pdf_lognormal processes bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   mme_nbd
         Signature: (a(n); float+ [o]r(); float+ [o]p())

           my ($r, $p) = $data->mme_nbd();

       negative binomial distribution. pmf: f(x; r,p) = (x+r-1  r-1) p^r (1-p)^x for x=0,1,2...

       mme_nbd processes bad values.  It will set the bad-value flag of all output piddles if the
       flag is set for any of the input piddles.

   pmf_nbd
         Signature: (ushort x(); r(); p(); float+ [o]out())

       probability mass function for negative binomial distribution.

       pmf_nbd processes bad values.  It will set the bad-value flag of all output piddles if the
       flag is set for any of the input piddles.

   mme_pareto
         Signature: (a(n); float+ [o]k(); float+ [o]xm())

           my ($k, $xm) = $data->mme_pareto();

       pareto distribution. pdf: f(x; k,xm) = k xm^k / x^(k+1) for x >= xm > 0.

       mme_pareto processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   pdf_pareto
         Signature: (x(); k(); xm(); float+ [o]p())

       probability density function for pareto distribution. x >= xm > 0.

       pdf_pareto processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   mle_poisson
         Signature: (a(n); float+ [o]l())

           my $lamda = $data->mle_poisson();

       poisson distribution. pmf: f(x;l) = e^(-l) * l^x / x!

       mle_poisson processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   pmf_poisson
         Signature: (x(); l(); float+ [o]p())

       Probability mass function for poisson distribution. Uses Stirling's formula for x > 85.

       pmf_poisson processes bad values.  It will set the bad-value flag of all output piddles if
       the flag is set for any of the input piddles.

   pmf_poisson_stirling
         Signature: (x(); l(); [o]p())

       Probability mass function for poisson distribution. Uses Stirling's formula for all values
       of the input. See http://en.wikipedia.org/wiki/Stirling's_approximation for more info.

       pmf_poisson_stirling processes bad values.  It will set the bad-value flag of all output
       piddles if the flag is set for any of the input piddles.

   pmf_poisson_factorial
         Signature: ushort x(); l(); float+ [o]p()

       Probability mass function for poisson distribution. Input is limited to x < 170 to avoid
       gsl_sf_fact() overflow.

   plot_distr
       Plots data distribution. When given specific distribution(s) to fit, returns % ref to sum
       log likelihood and parameter values under fitted distribution(s). See FUNCTIONS above for
       available distributions.

       Default options (case insensitive):

           MAXBN => 20,
             # see PDL::Graphics::PGPLOT::Window for next options
           WIN   => undef,   # pgwin object. not closed here if passed
                             # allows comparing multiple distr in same plot
                             # set env before passing WIN
           DEV   => '/xs' ,  # open and close dev for plotting if no WIN
                             # defaults to '/png' in Windows
           COLOR => 1,       # color for data distr

       Usage:

             # yes it threads :)
           my $data = grandom( 500, 3 )->abs;
             # ll on plot is sum across 3 data curves
           my ($ll, $pars)
             = $data->plot_distr( 'gaussian', 'lognormal', {DEV=>'/png'} );

             # pars are from normalized data (ie data / bin_size)
           print "$_\t@{$pars->{$_}}\n" for (sort keys %$pars);
           print "$_\t$ll->{$_}\n" for (sort keys %$ll);

DEPENDENCIES

       GSL - GNU Scientific Library

SEE ALSO

       PDL::Graphics::PGPLOT

       PDL::GSL::CDF

AUTHOR

       Copyright (C) 2009 Maggie J. Xiong <maggiexyz users.sourceforge.net>, David Mertens

       All rights reserved. There is no warranty. You are allowed to redistribute this software /
       documentation as described in the file COPYING in the PDL distribution.