Accord.Statistics.Distributions.Univariate.TrapezoidalDistribution.ProbabilityDensityFunction C# (CSharp) Method

ProbabilityDensityFunction() public method

Gets the probability density function (pdf) for this distribution evaluated at point x.
The Probability Density Function (PDF) describes the probability that a given value x will occur.
public ProbabilityDensityFunction ( double x ) : double
x double A single point in the distribution range.
return double
        public override double ProbabilityDensityFunction(double x)
        {
            if (x < a)
                return 0;

            if (x > d)
                return 0;

            if (x < b)
                return constant * alpha * Math.Pow((x - a) / (b - a), n1 - 1);

            if (x < c)
                return constant * (((alpha - 1) * (c - x) / (c - b)) + 1);

            if (x < d)
                return constant * Math.Pow((d - x) / (d - c), n3 - 1);

            return 0;
        }

Usage Example

        public void TrapezoidalDistributionConstructorTest()
        {
            double x = 0.75d;

            double a = 0;
            double b = (1.0d/3.0d);
            double c = (2.0d/3.0d);
            double d = 1.0d;
            double n1 = 2.0d;
            double n3 = 2.0d;

            var trapDist = new TrapezoidalDistribution(a, b, c, d, n1, n3);
            double mean = trapDist.Mean; //0.62499999999999989
            double variance = trapDist.Variance; //0.37103174603174593
            double pdf = trapDist.ProbabilityDensityFunction(x); //1.1249999999999998
            double cdf = trapDist.DistributionFunction(x); //1.28125
            string tostr = trapDist.ToString("N2", CultureInfo.InvariantCulture);

            Assert.AreEqual(mean, 0.625d, 0.00000001);
            Assert.AreEqual(variance, 0.37103175d, 0.00000001);
            Assert.AreEqual(pdf, 1.125, 0.000000001, "should match output from dtrapezoid in R");
            Assert.AreEqual(cdf, 1.28125,0.000000001);
            Assert.AreEqual(tostr, "Trapezoidal(x; a = 0.00, b = 0.33, c = 0.67, d = 1.00, n1 = 2.00, n3 = 2.00, α = 1.00)");
            //Verified using R package 'trapezoid'
        }
All Usage Examples Of Accord.Statistics.Distributions.Univariate.TrapezoidalDistribution::ProbabilityDensityFunction