From 9482a7518c50452edbf4d80d970f8e8c1ca4e942 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Mon, 30 Dec 2013 12:07:13 +0100 Subject: [PATCH] Statistics: s/InverseCDF/EmpiricalInvCDF/ --- src/Numerics/Statistics/QuantileDefinition.cs | 4 ++-- src/Numerics/Statistics/Statistics.cs | 16 +++++++-------- .../StatisticsTests/StatisticsTests.cs | 20 +++++++++---------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Numerics/Statistics/QuantileDefinition.cs b/src/Numerics/Statistics/QuantileDefinition.cs index 6e7deeb7..71ecd70e 100644 --- a/src/Numerics/Statistics/QuantileDefinition.cs +++ b/src/Numerics/Statistics/QuantileDefinition.cs @@ -32,8 +32,8 @@ namespace MathNet.Numerics.Statistics { public enum QuantileDefinition { - R1 = 1, SAS3 = 1, InverseCDF = 1, - R2 = 2, SAS5 = 2, InverseCDFAverage = 2, + R1 = 1, SAS3 = 1, EmpiricalInvCDF = 1, + R2 = 2, SAS5 = 2, EmpiricalInvCDFAverage = 2, R3 = 3, SAS2 = 3, Nearest = 3, R4 = 4, SAS1 = 4, California = 4, R5 = 5, Hydrology = 5, Hazen = 5, diff --git a/src/Numerics/Statistics/Statistics.cs b/src/Numerics/Statistics/Statistics.cs index d752ff5b..29851b4b 100644 --- a/src/Numerics/Statistics/Statistics.cs +++ b/src/Numerics/Statistics/Statistics.cs @@ -725,10 +725,10 @@ namespace MathNet.Numerics.Statistics /// /// The data sample sequence. /// Quantile selector, between 0.0 and 1.0 (inclusive). - public static double InverseCDF(this IEnumerable data, double tau) + public static double EmpiricalInvCDF(this IEnumerable data, double tau) { var array = data.ToArray(); - return ArrayStatistics.QuantileCustomInplace(array, tau, QuantileDefinition.InverseCDF); + return ArrayStatistics.QuantileCustomInplace(array, tau, QuantileDefinition.EmpiricalInvCDF); } /// @@ -736,29 +736,29 @@ namespace MathNet.Numerics.Statistics /// /// The data sample sequence. /// Quantile selector, between 0.0 and 1.0 (inclusive). - public static double InverseCDF(this IEnumerable data, double tau) + public static double EmpiricalInvCDF(this IEnumerable data, double tau) { - return InverseCDF(data.Where(d => d.HasValue).Select(d => d.Value), tau); + return EmpiricalInvCDF(data.Where(d => d.HasValue).Select(d => d.Value), tau); } /// /// Estimates the empirical inverse CDF at tau from the provided samples. /// /// The data sample sequence. - public static Func InverseCDFFunc(this IEnumerable data) + public static Func EmpiricalInvCDFFunc(this IEnumerable data) { var array = data.ToArray(); Array.Sort(array); - return tau => SortedArrayStatistics.QuantileCustom(array, tau, QuantileDefinition.InverseCDF); + return tau => SortedArrayStatistics.QuantileCustom(array, tau, QuantileDefinition.EmpiricalInvCDF); } /// /// Estimates the empirical inverse CDF at tau from the provided samples. /// /// The data sample sequence. - public static Func InverseCDFFunc(this IEnumerable data) + public static Func EmpiricalInvCDFFunc(this IEnumerable data) { - return InverseCDFFunc(data.Where(d => d.HasValue).Select(d => d.Value)); + return EmpiricalInvCDFFunc(data.Where(d => d.HasValue).Select(d => d.Value)); } } } diff --git a/src/UnitTests/StatisticsTests/StatisticsTests.cs b/src/UnitTests/StatisticsTests/StatisticsTests.cs index 16837ca8..8d7d4492 100644 --- a/src/UnitTests/StatisticsTests/StatisticsTests.cs +++ b/src/UnitTests/StatisticsTests/StatisticsTests.cs @@ -305,23 +305,23 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests [TestCase(0.99d, 10d)] [TestCase(0.52d, 1d)] [TestCase(0.325d, 0d)] - public void QuantileR1InverseCDFOnShortSequence(double tau, double expected) + public void QuantileR1EmpiricalInvCDFOnShortSequence(double tau, double expected) { // R: quantile(c(-1,5,0,-3,10,-0.5,4,0.2,1,6),probs=c(0,1,0.5,0.2,0.7,0.01,0.99,0.52,0.325),type=1) // Mathematica: Quantile[{-1,5,0,-3,10,-1/2,4,1/5,1,6},{0,1,1/2,1/5,7/10,1/100,99/100,13/25,13/40},{{0,0},{1,0}}] var samples = new[] {-1, 5, 0, -3, 10, -0.5, 4, 0.2, 1, 6}; - Assert.AreEqual(expected, Statistics.InverseCDF(samples, tau), 1e-14); - Assert.AreEqual(expected, Statistics.InverseCDFFunc(samples)(tau), 1e-14); - Assert.AreEqual(expected, Statistics.QuantileCustom(samples, tau, QuantileDefinition.InverseCDF), 1e-14); - Assert.AreEqual(expected, Statistics.QuantileCustomFunc(samples, QuantileDefinition.InverseCDF)(tau), 1e-14); + Assert.AreEqual(expected, Statistics.EmpiricalInvCDF(samples, tau), 1e-14); + Assert.AreEqual(expected, Statistics.EmpiricalInvCDFFunc(samples)(tau), 1e-14); + Assert.AreEqual(expected, Statistics.QuantileCustom(samples, tau, QuantileDefinition.EmpiricalInvCDF), 1e-14); + Assert.AreEqual(expected, Statistics.QuantileCustomFunc(samples, QuantileDefinition.EmpiricalInvCDF)(tau), 1e-14); - Assert.AreEqual(expected, ArrayStatistics.QuantileCustomInplace(samples, tau, QuantileDefinition.InverseCDF), 1e-14); + Assert.AreEqual(expected, ArrayStatistics.QuantileCustomInplace(samples, tau, QuantileDefinition.EmpiricalInvCDF), 1e-14); Assert.AreEqual(expected, ArrayStatistics.QuantileCustomInplace(samples, tau, 0d, 0d, 1d, 0d), 1e-14); Array.Sort(samples); - Assert.AreEqual(expected, SortedArrayStatistics.QuantileCustom(samples, tau, QuantileDefinition.InverseCDF), 1e-14); + Assert.AreEqual(expected, SortedArrayStatistics.QuantileCustom(samples, tau, QuantileDefinition.EmpiricalInvCDF), 1e-14); Assert.AreEqual(expected, SortedArrayStatistics.QuantileCustom(samples, tau, 0d, 0d, 1d, 0d), 1e-14); } @@ -334,7 +334,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests [TestCase(0.99d, 10d)] [TestCase(0.52d, 1d)] [TestCase(0.325d, 0d)] - public void QuantileR2InverseCDFAverageOnShortSequence(double tau, double expected) + public void QuantileR2EmpiricalInvCDFAverageOnShortSequence(double tau, double expected) { // R: quantile(c(-1,5,0,-3,10,-0.5,4,0.2,1,6),probs=c(0,1,0.5,0.2,0.7,0.01,0.99,0.52,0.325),type=2) // Mathematica: Not Supported @@ -344,10 +344,10 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests Assert.AreEqual(expected, Statistics.QuantileCustom(samples, tau, QuantileDefinition.R2), 1e-14); Assert.AreEqual(expected, Statistics.QuantileCustomFunc(samples, QuantileDefinition.R2)(tau), 1e-14); - Assert.AreEqual(expected, ArrayStatistics.QuantileCustomInplace(samples, tau, QuantileDefinition.InverseCDFAverage), 1e-14); + Assert.AreEqual(expected, ArrayStatistics.QuantileCustomInplace(samples, tau, QuantileDefinition.EmpiricalInvCDFAverage), 1e-14); Array.Sort(samples); - Assert.AreEqual(expected, SortedArrayStatistics.QuantileCustom(samples, tau, QuantileDefinition.InverseCDFAverage), 1e-14); + Assert.AreEqual(expected, SortedArrayStatistics.QuantileCustom(samples, tau, QuantileDefinition.EmpiricalInvCDFAverage), 1e-14); } [TestCase(0d, -3d)]