[TestCase(0.9, 1.0, 0.0, 1.0, double.PositiveInfinity, 0.6123, 0.3328656172)] // Mean shifted Laplace public void ValidateCDF(double location, double scale, double skew, double p, double q, double x, double pr) { var n = new SkewedGeneralizedT(location, scale, skew, p, q); var cpr = n.CumulativeDistribution(x); AssertHelpers.AlmostEqualRelative(pr, cpr, 8); }
public void CanSampleSequence() { var n = new SkewedGeneralizedT(); var ied = n.Samples(); GC.KeepAlive(ied.Take(5).ToArray()); }
[TestCase(0.9, 1.0, 0.0, 1.0, double.PositiveInfinity, 0.6123, -0.7534428322)] // Mean shifted Laplace public void ValidateDensityLn(double location, double scale, double skew, double p, double q, double x, double d) { var n = new SkewedGeneralizedT(location, scale, skew, p, q); var density = n.DensityLn(x); AssertHelpers.AlmostEqualRelative(d, density, 8); }
public void ValidateNormalDensityEquivalence(double location, double scale, double x) { var sgt = new SkewedGeneralizedT(location, scale, 0, 2, double.PositiveInfinity); var n = new Normal(location, scale); AssertHelpers.AlmostEqualRelative(n.Density(x), sgt.Density(x), 8); AssertHelpers.AlmostEqualRelative(n.DensityLn(x), sgt.DensityLn(x), 8); }
[TestCase(0.9, 1.0, 0.0, 1.0, double.PositiveInfinity, 0.6123, 1.079871174)] // Mean shifted Laplace public void ValidateInvCDF(double location, double scale, double skew, double p, double q, double quantile, double x) { var n = new SkewedGeneralizedT(location, scale, skew, p, q); var xq = n.InverseCumulativeDistribution(quantile); AssertHelpers.AlmostEqualRelative(x, xq, 8); AssertHelpers.AlmostEqualRelative(quantile, n.CumulativeDistribution(xq), 8); }
[TestCase(0.0, 1.0, 0.0, double.PositiveInfinity, 1.0)] // Continuous Uniform public void CanCreateSkewedGeneralizedT(double location, double scale, double skew, double p, double q) { var n = new SkewedGeneralizedT(location, scale, skew, p, q); Assert.AreEqual(location, n.Location); Assert.AreEqual(scale, n.Scale); Assert.AreEqual(skew, n.Skew); Assert.AreEqual(p, n.P); Assert.AreEqual(q, n.Q); }
public void CanCreateStandardSkewedGeneralizedT() { var n = new SkewedGeneralizedT(); Assert.AreEqual(0.0, n.Location); Assert.AreEqual(1.0, n.Scale); Assert.AreEqual(0.0, n.Skew); Assert.AreEqual(2.0, n.P); Assert.AreEqual(double.PositiveInfinity, n.Q); }
public void ValidateLaplaceDensityEquivalence(double location, double scale, double x) { var n = new SkewedGeneralizedT(location, scale, 0, 1, double.PositiveInfinity); var b = scale / Math.Sqrt(2.0); var l = new Laplace(location, b); AssertHelpers.AlmostEqualRelative(l.Density(x), n.Density(x), 8); AssertHelpers.AlmostEqualRelative(l.DensityLn(x), n.DensityLn(x), 8); }
public void ValidateSkewnessOfSkewGeneralizedTDistribution(double skew) { var sn = new SkewedGeneralizedT(0.0, 1.0, skew, 3.0, 4.0); if (skew > 0) { Assert.IsTrue(sn.Skewness > 0.0); } else if (skew < 0) { Assert.IsTrue(sn.Skewness < 0.0); } else { Assert.AreEqual(skew, sn.Skewness); } }
public void ValidateSkewnessOfNormalDistribution(double skew) { var sn = new SkewedGeneralizedT(0.0, 1.0, skew, 2.0, double.PositiveInfinity); if (skew > 0) { Assert.IsTrue(sn.Skewness > 0.0); } else if (skew < 0) { Assert.IsTrue(sn.Skewness < 0.0); } else { Assert.AreEqual(skew, sn.Skewness); } }
public void ValidateModeOfSkewedGeneralizedTDistribution(double location, double scale, double skew, double p, double q, double x) { var sn = new SkewedGeneralizedT(location, scale, skew, 2, double.PositiveInfinity); var n = new Normal(location, scale); var sm = sn.Mode; var m = n.Mode; if (skew < 0) { Assert.IsTrue(sm > m); } else { Assert.IsTrue(sm < m); } }
public void ValidateSkewedNormalDistribution(double location, double scale, double skew, double x) { var sn = new SkewedGeneralizedT(location, scale, skew, 2, double.PositiveInfinity); var n = new Normal(location, scale); var sp = sn.CumulativeDistribution(x); var p = n.CumulativeDistribution(x); if (skew > 0) { Assert.IsTrue(sp > p); } else { Assert.IsTrue(sp < p); } }
public void CanSample() { var n = new SkewedGeneralizedT(); n.Sample(); }
public void CanSampleSequenceStatic() { var ied = SkewedGeneralizedT.Samples(0.0, 1.0, 0.3, 2.2, 5.6); GC.KeepAlive(ied.Take(5).ToArray()); }
public void CanSampleStatic() { SkewedGeneralizedT.Sample(0.0, 1.0, 0.3, 2.2, 5.6); }