Accord.Statistics.Distributions.Univariate.MannWhitneyDistribution.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 x ) : double
x double A single point in the distribution range.
return double
        public override double DistributionFunction(double x)
        {
            if (!smallSample)
            {
                // Normal approximation
                double z = ((x + 0.5) - Mean) / Math.Sqrt(Variance);

                double p = NormalDistribution.Standard.DistributionFunction(Math.Abs(z));

                return p;
            }
            else
            {
                // For small samples (< 30) and if there are not very large
                // differences in samples sizes, this distribution is exact.

                for (int i = 0; i < table.Length; i++)
                    if (x <= table[i])
                        return i / (double)table.Length;

                return 1;
            }
        }

Usage Example

コード例 #1
0
        public void ConstructorTest()
        {
            double[] ranks = { 1, 2, 3, 4, 5 };

            var mannWhitney = new MannWhitneyDistribution(ranks, n1: 2, n2: 3);

            double mean = mannWhitney.Mean;     // 2.7870954605658511
            double median = mannWhitney.Median; // 1.5219615583481305
            double var = mannWhitney.Variance;  // 18.28163603621158

            double cdf = mannWhitney.DistributionFunction(x: 4); // 0.6
            double pdf = mannWhitney.ProbabilityDensityFunction(x: 4); // 0.2
            double lpdf = mannWhitney.LogProbabilityDensityFunction(x: 4); // -1.6094379124341005

            double ccdf = mannWhitney.ComplementaryDistributionFunction(x: 4); // 0.4
            double icdf = mannWhitney.InverseDistributionFunction(p: cdf); // 3.6666666666666661

            double hf = mannWhitney.HazardFunction(x: 4); // 0.5
            double chf = mannWhitney.CumulativeHazardFunction(x: 4); // 0.916290731874155

            string str = mannWhitney.ToString(); // MannWhitney(u; n1 = 2, n2 = 3)

            Assert.AreEqual(3.0, mean);
            Assert.AreEqual(3.0000006357828775, median);
            Assert.AreEqual(3.0, var);
            Assert.AreEqual(0.916290731874155, chf);
            Assert.AreEqual(0.6, cdf);
            Assert.AreEqual(0.2, pdf);
            Assert.AreEqual(-1.6094379124341005, lpdf);
            Assert.AreEqual(0.5, hf);
            Assert.AreEqual(0.4, ccdf);
            Assert.AreEqual(3.6666666666666661, icdf);
            Assert.AreEqual("MannWhitney(u; n1 = 2, n2 = 3)", str);
        }
All Usage Examples Of Accord.Statistics.Distributions.Univariate.MannWhitneyDistribution::DistributionFunction