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
コード例 #1
0
        public void ConstructorTest2()
        {
            var distribution = new NoncentralTDistribution(
                degreesOfFreedom: 4, noncentrality: 2.42);

            double mean = distribution.Mean;     // 3.0330202123035104
            double median = distribution.Median; // 2.6034842414893795
            double var = distribution.Variance;  // 4.5135883917583683

            double cdf = distribution.DistributionFunction(x: 1.4); // 0.15955740661144721
            double pdf = distribution.ProbabilityDensityFunction(x: 1.4); // 0.23552141805184526
            double lpdf = distribution.LogProbabilityDensityFunction(x: 1.4); // -1.4459534225195116

            double ccdf = distribution.ComplementaryDistributionFunction(x: 1.4); // 0.84044259338855276
            double icdf = distribution.InverseDistributionFunction(p: cdf); // 1.4000000000123853

            double hf = distribution.HazardFunction(x: 1.4); // 0.28023498559521387
            double chf = distribution.CumulativeHazardFunction(x: 1.4); // 0.17382662901507062

            string str = distribution.ToString(CultureInfo.InvariantCulture); // T(x; df = 4, μ = 2.42)

            Assert.AreEqual(3.0330202123035104, mean);
            Assert.AreEqual(2.6034842414893795, median);
            Assert.AreEqual(4.5135883917583683, var);
            Assert.AreEqual(0.17382662901507062, chf);
            Assert.AreEqual(0.15955740661144721, cdf);
            Assert.AreEqual(0.23552141805184526, pdf);
            Assert.AreEqual(-1.4459534225195116, lpdf);
            Assert.AreEqual(0.28023498559521387, hf);
            Assert.AreEqual(0.84044259338855276, ccdf);
            Assert.AreEqual(1.4000000000123853, icdf);
            Assert.AreEqual("T(x; df = 4, μ = 2.42)", str);
        }
コード例 #2
0
        public void ConstructorTest2()
        {
            var distribution = new NoncentralTDistribution(
                degreesOfFreedom: 4, noncentrality: 2.42);

            double mean = distribution.Mean;     // 3.0330202123035104
            double median = distribution.Median; // 2.6034842414893795
            double var = distribution.Variance;  // 4.5135883917583683
            double mode = distribution.Mode;     // 2.0940683409246641

            double cdf = distribution.DistributionFunction(x: 1.4); // 0.15955740661144721
            double pdf = distribution.ProbabilityDensityFunction(x: 1.4); // 0.23552141805184526
            double lpdf = distribution.LogProbabilityDensityFunction(x: 1.4); // -1.4459534225195116

            double ccdf = distribution.ComplementaryDistributionFunction(x: 1.4); // 0.84044259338855276
            double icdf = distribution.InverseDistributionFunction(p: cdf); // 1.4000000000123853

            double hf = distribution.HazardFunction(x: 1.4); // 0.28023498559521387
            double chf = distribution.CumulativeHazardFunction(x: 1.4); // 0.17382662901507062

            string str = distribution.ToString(CultureInfo.InvariantCulture); // T(x; df = 4, μ = 2.42)

            Assert.AreEqual(3.0330202123035104, mean);
            Assert.AreEqual(2.6034842414893795, median);
            Assert.AreEqual(4.5135883917583683, var);
            Assert.AreEqual(2.0940683409246641, mode);
            Assert.AreEqual(0.17382662901507062, chf);
            Assert.AreEqual(0.15955740661144721, cdf);
            Assert.AreEqual(0.23552141805184526, pdf);
            Assert.AreEqual(-1.4459534225195116, lpdf);
            Assert.AreEqual(0.28023498559521387, hf);
            Assert.AreEqual(0.84044259338855276, ccdf);
            Assert.AreEqual(1.4000000000123853, icdf);
            Assert.AreEqual("T(x; df = 4, μ = 2.42)", str);

            var range1 = distribution.GetRange(0.95);
            var range2 = distribution.GetRange(0.99);
            var range3 = distribution.GetRange(0.01);

            Assert.AreEqual(0.7641009341279591, range1.Min);
            Assert.AreEqual(6.6668131011180742, range1.Max);
            Assert.AreEqual(0.098229727233034247, range2.Min);
            Assert.AreEqual(10.541194525031729, range2.Max);
            Assert.AreEqual(0.09822972723303551, range3.Min);
            Assert.AreEqual(10.541194525031729, range3.Max);
        }
コード例 #3
0
        public void ProbabilityFunctionTest()
        {
            double[,] table = 
            {
                //   x    d     df      expected
                {  3.00,  0.0,  1,    0.03183098861      },
                {  3.00,  0.0,  2,    0.02741012223      },
                {  3.00,  0.0,  3,    0.02297203730      },
                {  3.00,  0.5,  1,    0.05359565579      },
                {  3.00,  0.5,  2,    0.05226515196      },
                {  3.00,  0.5,  3,    0.04788249161      },
                {  3.00,  7.0, 15,    0.0009236578208725 },
                { 15.00,  7.0, 15,    0.0013850587855    },
                { 15.00,  7.0, 25,    0.00018206084230   },
                {  0.00,  7.0, 25,    0.0000000000090438 },
                {  0.00,  2.0,  1,    0.0430785586036    },
                {  0.00,  2.0,  2,    0.047848248255205  },
                {  0.00,  2.0,  3,    0.0497428348122    },
                {  0.00,  4.0,  1,    0.000106781070     },
                {  0.00,  4.0,  2,    0.000118603949     },
            };

            for (int i = 0; i < table.GetLength(0); i++)
            {
                double x = table[i, 0];
                double delta = table[i, 1];
                double df = table[i, 2];

                var target = new NoncentralTDistribution(df, delta);

                double expected = table[i, 3];
                double actual = target.ProbabilityDensityFunction(x);

               Assert.AreEqual(expected, actual, 1e-10);
            }
        }