Browse Source

Merge pull request #68 from ArtyomBaranovskiy/statistics-kurtosis

Statistics: DescriptiveStatistics Kurtosis fix, I18N test fix
v2
Christoph Ruegg 14 years ago
parent
commit
c86f777b80
  1. 10019
      data/NIST/Meixner.dat
  2. 6
      src/Numerics/Statistics/DescriptiveStatistics.cs
  3. 3
      src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs
  4. 6
      src/UnitTests/StatisticsTests/StatTestData.cs
  5. 4
      src/UnitTests/UnitTests.csproj

10019
data/NIST/Meixner.dat

File diff suppressed because it is too large

6
src/Numerics/Statistics/DescriptiveStatistics.cs

@ -357,10 +357,8 @@ namespace MathNet.Numerics.Statistics
if (n > 3)
{
Kurtosis = (((double)n * (n + 1))
/ ((n - 1) * (n - 2) * (n - 3))
* (kurtosis / (Variance * Variance)))
- ((3.0 * (n - 1) * (n - 1)) / ((n - 2) * (n - 3)));
Kurtosis = ((double)n * n - 1) / ((n - 2) * (n - 3))
* (n * kurtosis / (variance * variance) - 3 + 6.0 / (n + 1));
}
}
}

3
src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs

@ -66,6 +66,8 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
_data.Add("numacc3", numacc3);
var numacc4 = new StatTestData("./data/NIST/NumAcc4.dat");
_data.Add("numacc4", numacc4);
var meixner = new StatTestData("./data/NIST/Meixner.dat");
_data.Add("meixner", meixner);
}
/// <summary>
@ -102,6 +104,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
[TestCase("numacc2", 13, 0, -2.003003003003, 1.2, 1.1, 1.3, 1001)]
[TestCase("numacc3", 9, 0, -2.003003003003, 1000000.2, 1000000.1, 1000000.3, 1001)]
[TestCase("numacc4", 8, 0, -2.00300300299913, 10000000.2, 10000000.1, 10000000.3, 1001)]
[TestCase("meixner", 8, -0.016649617280859657, 0.8171318629552635, -0.002042931016531602, -4.825626912281697, 5.3018298664184913, 10000)]
public void IEnumerableDouble(string dataSet, int digits, double skewness, double kurtosis, double median, double min, double max, int count)
{
var data = _data[dataSet];

6
src/UnitTests/StatisticsTests/StatTestData.cs

@ -24,6 +24,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
using System.Globalization;
namespace MathNet.Numerics.UnitTests.StatisticsTests
{
using System.Collections.Generic;
@ -87,7 +89,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
line = line.Trim();
if (!line.Equals(string.Empty))
{
list.Add(double.Parse(line));
list.Add(double.Parse(line, CultureInfo.InvariantCulture));
}
line = reader.ReadLine();
@ -117,7 +119,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
return 0;
}
return double.Parse(str.Substring(start + 1).Trim());
return double.Parse(str.Substring(start + 1).Trim(), CultureInfo.InvariantCulture);
}
}
}

4
src/UnitTests/UnitTests.csproj

@ -1065,6 +1065,10 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="App.config" />
<None Include="..\..\data\NIST\Meixner.dat">
<Link>data\NIST\Meixner.dat</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>

Loading…
Cancel
Save