Accord.Statistics.Distributions.Univariate.GeneralizedNormalDistribution.DistributionFunction C# (CSharp) Method

DistributionFunction() public method

Gets the cumulative distribution function (cdf) for the Generalized Normal distribution evaluated at point x.

The Cumulative Distribution Function (CDF) describes the cumulative probability that a given value or any value smaller than it will occur.

public DistributionFunction ( double x ) : double
x double /// A single point in the distribution range.
return double
        public override double DistributionFunction(double x)
        {
            if (Double.IsNegativeInfinity(x))
                return 0;

            if (Double.IsPositiveInfinity(x))
                return 1;

            double z = x - mean;
            double w = Math.Abs(z) / alpha;

            double u = Math.Pow(w, beta);
            double b = Gamma.LowerIncomplete(1.0 / beta, u);

            // The regularized Gamma function P is defined as the incomplete 
            // Gamma function divided by the Gamma function itself. This is 
            // exactly part of the formula indicated on Wikipedia's page on 
            // the Generalized Normal Distribution, in the CDF's section.

            double r = 0.5 + 0.5 * Math.Sign(z) * b;

            return r;
        }

Usage Example

コード例 #1
0
        public void ConstructorTest1()
        {
            var normal = new GeneralizedNormalDistribution(location: 1, scale: 5, shape: 0.42);

            double mean = normal.Mean;     // 1
            double median = normal.Median; // 1
            double mode = normal.Mode;     // 1
            double var = normal.Variance;  // 19200.781700666659

            double cdf = normal.DistributionFunction(x: 1.4); // 0.50877105447218995
            double pdf = normal.ProbabilityDensityFunction(x: 1.4); // 0.024215092283124507
            double lpdf = normal.LogProbabilityDensityFunction(x: 1.4); // -3.7207791921441378

            double ccdf = normal.ComplementaryDistributionFunction(x: 1.4); // 0.49122894552781005
            double icdf = normal.InverseDistributionFunction(p: cdf); // 1.4000000149740104

            double hf = normal.HazardFunction(x: 1.4); // 0.049294921448706883
            double chf = normal.CumulativeHazardFunction(x: 1.4); // 0.71084497569360638

            string str = normal.ToString(CultureInfo.InvariantCulture); // GGD(x; μ = 1, α = 5, β = 0.42)

            Assert.AreEqual(1, mean);
            Assert.AreEqual(1, median);
            Assert.AreEqual(1, mode);
            Assert.AreEqual(19200.781700666659, var);
            Assert.AreEqual(0.71084497569360638, chf);
            Assert.AreEqual(0.50877105447218995, cdf);
            Assert.AreEqual(0.024215092283124507, pdf);
            Assert.AreEqual(-3.7207791921441378, lpdf);
            Assert.AreEqual(0.049294921448706883, hf);
            Assert.AreEqual(0.49122894552781005, ccdf);
            Assert.AreEqual(1.4000000149740104, icdf);
            Assert.AreEqual("GGD(x; μ = 1, α = 5, β = 0.42)", str);
        }
All Usage Examples Of Accord.Statistics.Distributions.Univariate.GeneralizedNormalDistribution::DistributionFunction