Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

matvec::BinomialDist Class Reference

#include <statdist.h>

Inheritance diagram for matvec::BinomialDist:

matvec::StatDistBase List of all members.

Detailed Description

binomial statistical distribution.

Definition at line 380 of file statdist.h.

Public Methods

 BinomialDist (const long n, const double p)
 BinomialDist (const BinomialDist &u)
void display (void) const
void reset (const long n, const double p)
void sample (Vector< double > &x) const
void sample (doubleMatrix &x) const
double sample (void) const
Vector< double > sample (unsigned n) const
doubleMatrix sample (unsigned m, unsigned n) const
double mean (void) const
double variance (void) const
double pdf (const double x) const
double cdf (const double x) const
double pdf (const long k) const
double cdf (const long k) const
double mgf (const double t) const
double inv (const double p) const
double parameter (const int k) const
void parameter (const int k, const double x)
virtual const std::string name (void) const
virtual double nonct (const double cv, const double p)

Protected Attributes

long n_value
double p_value
std::string distname


Constructor & Destructor Documentation

matvec::BinomialDist::BinomialDist const long    n,
const double    p
[inline]
 

Definition at line 385 of file statdist.h.

References matvec::StatDistBase::distname, and reset().

00386                                   {distname="BinomialDist"; reset(n,p);}

matvec::BinomialDist::BinomialDist const BinomialDist &    u [inline]
 

Definition at line 387 of file statdist.h.

References matvec::StatDistBase::distname, and reset().

00387                                          :StatDistBase()
00388                 {distname="BinomialDist";reset(u.n_value,u.p_value);}


Member Function Documentation

double matvec::BinomialDist::cdf const long    k const
 

Definition at line 1179 of file statdist.cpp.

References matvec::gammln(), n_value, and p_value.

01182               {n!}{(n-x)!x!}p^x(1-p)^{n-x}, \quad x = 0,1,2,\ldots,n
01183 \f]
01184 */
01185 double BinomialDist::pdf(const long k) const
01186 {
01187    if (k > n_value) throw exception("BinomialDist::pdf(): bad arg");
01188    double pr = std::log(p_value)*k + std::log(1.0-p_value)*(n_value - k);
01189    pr += gammln(static_cast<double>(n_value + 1))
01190         - gammln(static_cast<double>(k + 1)) - gammln(static_cast<double>(n_value - k + 1));
01191    if (pr > 0.0) return 1.0;
01192    if (pr < -600.00) return 0.0;
01193    return std::exp(pr);
01194 }
01195 
01196 double BinomialDist::cdf(const long k) const
01197 {

double matvec::BinomialDist::cdf const double    x const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 401 of file statdist.h.

00401 {return cdf(long(x));}

void matvec::BinomialDist::display void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 390 of file statdist.h.

References matvec::StatDistBase::distname, n_value, and p_value.

00390                                   {std::cout << "\t" << distname << "(" << n_value
00391                                         << "," << p_value << ")\n"; return;}

double matvec::BinomialDist::inv const double    p const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 406 of file statdist.h.

00407                        {std::cerr << " BinomialDist::inv(): not available\n"; return p;}

double matvec::BinomialDist::mean void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 398 of file statdist.h.

References n_value, and p_value.

00398 {return p_value*n_value;}

double matvec::BinomialDist::mgf const double    t const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 404 of file statdist.h.

References n_value, and p_value.

00405                             {return std::pow(1.0-p_value + p_value*std::exp(t),(double)n_value);}

virtual const std::string matvec::StatDistBase::name void    const [inline, virtual, inherited]
 

Definition at line 45 of file statdistbase.h.

References matvec::StatDistBase::distname.

00045 {return distname;}

virtual double matvec::StatDistBase::nonct const double    cv,
const double    p
[inline, virtual, inherited]
 

Definition at line 58 of file statdistbase.h.

00058 {std::cerr << "error\n"; return 0.0;}

void matvec::BinomialDist::parameter const int    k,
const double    x
[virtual]
 

Implements matvec::StatDistBase.

Definition at line 1246 of file statdist.cpp.

01249 {
01250    double par =  0.0;
01251    if (k==1) {
01252       par = static_cast<double>(n_value);
01253    }
01254    else if (k==2) {
01255       par = p_value;
01256    }
01257    else {
01258       throw exception("BinomialDist::parameter(): bad arg, 1 or 2 is expected");
01259    }
01260    return par;
01261 }
01262 

double matvec::BinomialDist::parameter const int    k const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 1231 of file statdist.cpp.

01235 {
01236    Vector<double> x(n);
01237    sample(x);
01238    return x;
01239 }
01240 
01241 doubleMatrix BinomialDist::sample(unsigned m,unsigned n) const
01242 {
01243    doubleMatrix x(m,n);
01244    sample(x);

double matvec::BinomialDist::pdf const long    k const
 

The random variable X has a binomial distribution if its probability density function (pdf) is defined by

Definition at line 1168 of file statdist.cpp.

01173 {
01174    if (p < 0.0 || p > 1.0) throw exception("BinomialDist::reset(): bad arg2");
01175    n_value = n;
01176    p_value = p;
01177 }

double matvec::BinomialDist::pdf const double    x const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 400 of file statdist.h.

00400 {return pdf(long(x));}

void matvec::BinomialDist::reset const long    n,
const double    p
 

Definition at line 1157 of file statdist.cpp.

References matvec::DiscreteUniformDist::a_value, and matvec::DiscreteUniformDist::b_value.

Referenced by BinomialDist().

01157              {
01158       if (a_value <= x) {
01159          b_value = static_cast<long int>(x);
01160       }
01161       else {
01162          throw exception("DiscreUniformDist::parameter(): bad arg2");

doubleMatrix matvec::BinomialDist::sample unsigned    m,
unsigned    n
const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 1224 of file statdist.cpp.

References matvec::ignbin(), n_value, and p_value.

01224 {
01225    int nr = x.num_rows();
01226    int nc = x.num_cols();
01227    double *bot,*top;
01228    for (unsigned i=0; i<nr; i++) {
01229       bot = x[i];  top = &bot[nc];

Vector< double > matvec::BinomialDist::sample unsigned    n const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 1217 of file statdist.cpp.

References matvec::ignbin(), n_value, and p_value.

01217 {
01218    double *bot = x.begin();
01219    double *top = x.end();
01220    while (bot < top ) *bot++ = static_cast<double>(ignbin(n_value,p_value));
01221 }
01222 

double matvec::BinomialDist::sample void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 395 of file statdist.h.

References matvec::ignbin(), n_value, and p_value.

00395 {return double(ignbin(n_value,p_value));}

void matvec::BinomialDist::sample doubleMatrix   x const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 1206 of file statdist.cpp.

01207                      {
01208      retval = pow(1.0 - p_value, static_cast<double>(n_value));
01209    }
01210    else {
01211       retval = 0.0;
01212    }
01213    return retval;
01214 }
01215 

void matvec::BinomialDist::sample Vector< double > &    x const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 1199 of file statdist.cpp.

References matvec::betain(), matvec::gammln(), n_value, and p_value.

01201                {
01202       double a = static_cast<double>(n_value - k);
01203       double b = static_cast<double>(k+1);
01204       double lb = gammln(a) + gammln(b) - gammln(a+b);

double matvec::BinomialDist::variance void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 399 of file statdist.h.

References n_value, and p_value.

00399 {return p_value*(1.0-p_value)*n_value;}


Member Data Documentation

std::string matvec::StatDistBase::distname [protected, inherited]
 

Definition at line 39 of file statdistbase.h.

Referenced by matvec::BetaDist::BetaDist(), BinomialDist(), matvec::ChiSquareDist::ChiSquareDist(), matvec::DiscreteUniformDist::DiscreteUniformDist(), matvec::NegativeBinomialDist::display(), matvec::GeometricDist::display(), matvec::PoissonDist::display(), display(), matvec::DiscreteUniformDist::display(), matvec::BetaDist::display(), matvec::ExponentialDist::display(), matvec::GammaDist::display(), matvec::FDist::display(), matvec::tDist::display(), matvec::ChiSquareDist::display(), matvec::LogNormalDist::display(), matvec::NormalDist::display(), matvec::UniformDist::display(), matvec::ExponentialDist::ExponentialDist(), matvec::FDist::FDist(), matvec::GammaDist::GammaDist(), matvec::GeometricDist::GeometricDist(), matvec::LogNormalDist::LogNormalDist(), matvec::StatDistBase::name(), matvec::NegativeBinomialDist::NegativeBinomialDist(), matvec::NormalDist::NormalDist(), matvec::PoissonDist::PoissonDist(), matvec::StatDistBase::StatDistBase(), matvec::tDist::tDist(), and matvec::UniformDist::UniformDist().

long matvec::BinomialDist::n_value [protected]
 

Definition at line 382 of file statdist.h.

Referenced by cdf(), display(), mean(), mgf(), matvec::PoissonDist::reset(), sample(), and variance().

double matvec::BinomialDist::p_value [protected]
 

Definition at line 383 of file statdist.h.

Referenced by cdf(), display(), mean(), mgf(), sample(), and variance().


The documentation for this class was generated from the following files:
Generated on Thu Jun 16 17:14:16 2005 for Matvec by doxygen1.2.16