1 #ifndef BERNOULLI_DISTRIBUTION_H 2 #define BERNOULLI_DISTRIBUTION_H 4 #include "ProbabilityDistribution.h" 11 virtual void GetParameters(
Vector& parameters) {
15 virtual void SetParameters(
const Vector& parameters) {
16 Assert(parameters.n==1);
19 virtual Real PDF(Real value) {
20 if(value==0.0)
return 1-p;
21 else if(value==1.0)
return p;
24 virtual Real CDF(Real value) {
25 if(value==1.0)
return 1;
26 else if(value<0.0)
return 0;
29 virtual bool IsDiscrete() {
return true; }
30 virtual Real Minimum() {
return 0; }
31 virtual Real Maximum() {
return 1; }
32 virtual Real Mean() {
return p; }
33 virtual Real Variance() {
return p*(1-p); }
34 virtual Real Skewness() {
return (1.0-2.0*p)/Sqrt(p*(1.0-p)); }
35 virtual Real Kurtosis() {
return (1.0-6.0*p+6.0*p*p)/p*(1.0-p)); }
36 virtual Real Sample() {
return RandBool(p); }
37 virtual bool CanSample()
const {
return true; }
46 virtual void MaximumLikelihood(
const vector<Real>& data);
47 void AddSample(
bool success) {
if(success) n1 += 1.0;
else n0 += 1.0; }
Definition: ProbabilityDistribution.h:14
Contains all definitions in the statistics directory.
Definition: BernoulliDistribution.h:6
bool RandBool()
Generates a random boolean that is true with probability 0.5.
Definition: math/random.h:47
Definition: BernoulliDistribution.h:8
Definition: BernoulliDistribution.h:42