csharpfftfsharpintegrationinterpolationlinear-algebramathdifferentiationmatrixnumericsrandomregressionstatisticsmathnet
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using NUnit.Framework;
|
|
|
|
namespace MathNet.Numerics.UnitTests.GoodnessOfFit
|
|
{
|
|
[TestFixture, Category("Regression")]
|
|
public class RSquaredTest
|
|
{
|
|
/// <summary>
|
|
/// Test the R-squared value of a values with itself
|
|
/// </summary>
|
|
[Test]
|
|
public void WhenCalculatingRSquaredOfLinearDistributionWithItselfThenRSquaredIsOne()
|
|
{
|
|
var data = new List<double>();
|
|
for (int i = 1; i <= 10; i++)
|
|
data.Add(i);
|
|
|
|
Assert.That(Numerics.GoodnessOfFit.RSquared(data, data), Is.EqualTo(1));
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentOutOfRangeException))]
|
|
public void WhenGivenTwoDatasetsOfDifferentSizeThenThrowsArgumentException()
|
|
{
|
|
var observedData = new List<double>()
|
|
{
|
|
23
|
|
,9
|
|
,5
|
|
,7
|
|
,10
|
|
,5
|
|
,4
|
|
,1
|
|
,2
|
|
,1
|
|
};
|
|
|
|
var modelledData = new List<double>()
|
|
{
|
|
8
|
|
,9
|
|
,10
|
|
};
|
|
|
|
Numerics.GoodnessOfFit.RSquared(modelledData, observedData);
|
|
|
|
Assert.Fail("Expected ArgumentException exception wasn't thrown");
|
|
}
|
|
|
|
[Test]
|
|
public void WhenCalculatingRSquaredOfUnevenDistributionWithLInearDistributionThenRSquaredIsCalculated()
|
|
{
|
|
var observedData = new List<double>()
|
|
{
|
|
1, 2.3, 3.1, 4.8, 5.6, 6.3
|
|
};
|
|
|
|
var modelledData = new List<double>()
|
|
{
|
|
2.6, 2.8, 3.1, 4.7, 5.1, 5.3
|
|
};
|
|
|
|
Assert.That(Math.Round(Numerics.GoodnessOfFit.RSquared(modelledData, observedData), 11), Is.EqualTo(Math.Round(0.94878520708673d, 11)));
|
|
}
|
|
}
|
|
}
|
|
|