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) if (n > 3)
{ {
Kurtosis = (((double)n * (n + 1)) Kurtosis = ((double)n * n - 1) / ((n - 2) * (n - 3))
/ ((n - 1) * (n - 2) * (n - 3)) * (n * kurtosis / (variance * variance) - 3 + 6.0 / (n + 1));
* (kurtosis / (Variance * Variance)))
- ((3.0 * (n - 1) * (n - 1)) / ((n - 2) * (n - 3)));
} }
} }
} }

3
src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs

@ -66,6 +66,8 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
_data.Add("numacc3", numacc3); _data.Add("numacc3", numacc3);
var numacc4 = new StatTestData("./data/NIST/NumAcc4.dat"); var numacc4 = new StatTestData("./data/NIST/NumAcc4.dat");
_data.Add("numacc4", numacc4); _data.Add("numacc4", numacc4);
var meixner = new StatTestData("./data/NIST/Meixner.dat");
_data.Add("meixner", meixner);
} }
/// <summary> /// <summary>
@ -102,6 +104,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
[TestCase("numacc2", 13, 0, -2.003003003003, 1.2, 1.1, 1.3, 1001)] [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("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("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) public void IEnumerableDouble(string dataSet, int digits, double skewness, double kurtosis, double median, double min, double max, int count)
{ {
var data = _data[dataSet]; var data = _data[dataSet];

6
src/UnitTests/StatisticsTests/StatTestData.cs

@ -24,6 +24,8 @@
// OTHER DEALINGS IN THE SOFTWARE. // OTHER DEALINGS IN THE SOFTWARE.
// </copyright> // </copyright>
using System.Globalization;
namespace MathNet.Numerics.UnitTests.StatisticsTests namespace MathNet.Numerics.UnitTests.StatisticsTests
{ {
using System.Collections.Generic; using System.Collections.Generic;
@ -87,7 +89,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
line = line.Trim(); line = line.Trim();
if (!line.Equals(string.Empty)) if (!line.Equals(string.Empty))
{ {
list.Add(double.Parse(line)); list.Add(double.Parse(line, CultureInfo.InvariantCulture));
} }
line = reader.ReadLine(); line = reader.ReadLine();
@ -117,7 +119,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests
return 0; 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> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Include="App.config" /> <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="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>

Loading…
Cancel
Save