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

DistributionFunction() public method

Gets the cumulative distribution function (cdf) for this distribution evaluated at point k.
The Cumulative Distribution Function (CDF) describes the cumulative probability that a given value or any value smaller than it will occur.
public DistributionFunction ( double w ) : double
w double A single point in the distribution range.
return double
        public override double DistributionFunction(double w)
        {
            if (table != null) // Samples < 12
            {
                for (int i = 0; i < table.Length; i++)
                    if (w <= table[i])
                        return i / (double)table.Length;

                return 1;
            }

            else
            {
                // Large sample Normal distribution approximation
                double wc = w + 0.5; // continuity correction
                double z = (wc - Mean) / StandardDeviation;
                double p = NormalDistribution.Standard.DistributionFunction(z);
                return p;
            }
        }

Usage Example

        public void ConstructorTest()
        {
            double[] ranks = { 1, 2, 3, 4, 5.5, 5.5, 7, 8, 9, 10, 11, 12 };

            var W = new WilcoxonDistribution(ranks);

            double mean = W.Mean;     // 39.0
            double median = W.Median; // 38.5
            double var = W.Variance;  // 162.5

            double cdf = W.DistributionFunction(w: 42); // 0.60817384423279575
            double pdf = W.ProbabilityDensityFunction(w: 42); // 0.38418508862319295
            double lpdf = W.LogProbabilityDensityFunction(w: 42); // 0.38418508862319295

            double ccdf = W.ComplementaryDistributionFunction(x: 42); // 0.39182615576720425
            double icdf = W.InverseDistributionFunction(p: cdf); // 42
            double icdf2 = W.InverseDistributionFunction(p: 0.5); // 42

            double hf = W.HazardFunction(x: 42); // 0.98049883339449373
            double chf = W.CumulativeHazardFunction(x: 42); // 0.936937017743799

            string str = W.ToString(); // "W+(x; R)"

            Assert.AreEqual(39.0, mean);
            Assert.AreEqual(38.5, median, 1e-6);
            Assert.AreEqual(162.5, var);
            Assert.AreEqual(0.936937017743799, chf);
            Assert.AreEqual(0.60817384423279575, cdf);
            Assert.AreEqual(0.38418508862319295, pdf);
            Assert.AreEqual(-0.95663084089698047, lpdf);
            Assert.AreEqual(0.98049883339449373, hf);
            Assert.AreEqual(0.39182615576720425, ccdf);
            Assert.AreEqual(42, icdf, 1e-6);
            Assert.AreEqual("W+(x; R)", str);
        }
All Usage Examples Of Accord.Statistics.Distributions.Univariate.WilcoxonDistribution::DistributionFunction