Accord.Statistics.Distributions.Univariate.SkewNormalDistribution.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)
        {
            double z = (x - ksi) / omega;

            double a = Accord.Math.Normal.Derivative(z);
            double b = Accord.Math.Normal.Function(alpha * z);

            return (2 / omega) * a * b;
        }

Usage Example

        public void ConstructorTest1()
        {
            // Create a Skew normal distribution with location 2, scale 3 and shape 4.2
            var skewNormal = new SkewNormalDistribution(location: 2, scale: 3, shape: 4.2);

            double mean = skewNormal.Mean;     // 4.3285611780515953
            double median = skewNormal.Median; // 4.0230040653062265
            double var = skewNormal.Variance;  // 3.5778028400709641
            double mode = skewNormal.Mode;     // 3.220622226764422

            double cdf = skewNormal.DistributionFunction(x: 1.4); // 0.020166854942526125
            double pdf = skewNormal.ProbabilityDensityFunction(x: 1.4); // 0.052257431834162059
            double lpdf = skewNormal.LogProbabilityDensityFunction(x: 1.4); // -2.9515731621912877

            double ccdf = skewNormal.ComplementaryDistributionFunction(x: 1.4); // 0.97983314505747388
            double icdf = skewNormal.InverseDistributionFunction(p: cdf); // 1.3999998597203041

            double hf = skewNormal.HazardFunction(x: 1.4); // 0.053332990517581239
            double chf = skewNormal.CumulativeHazardFunction(x: 1.4); // 0.020372981958858238

            string str = skewNormal.ToString(CultureInfo.InvariantCulture); // Sn(x; ξ = 2, ω = 3, α = 4.2)

            Assert.AreEqual(4.3285611780515953, mean);
            Assert.AreEqual(4.0230040653062265, median);
            Assert.AreEqual(3.2206222267273086, mode);
            Assert.AreEqual(3.5778028400709641, var);
            Assert.AreEqual(0.020372981958858238, chf);
            Assert.AreEqual(0.020166854942526125, cdf);
            Assert.AreEqual(0.052257431834161927, pdf);
            Assert.AreEqual(-2.9515731621912908, lpdf);
            Assert.AreEqual(0.053332990517581107, hf);
            Assert.AreEqual(0.97983314505747388, ccdf);
            Assert.AreEqual(1.3999998597203041, icdf);
            Assert.AreEqual("Sn(x; ξ = 2, ω = 3, α = 4.2)", str);
        }