public void DescriptiveAnalysisConstructorTest3()
{
// Suppose we would like to compute descriptive
// statistics from the following data samples:
double[] data = { 52, 12, 65, 25, 62, 12 };
// Create the analysis
DescriptiveAnalysis analysis = new DescriptiveAnalysis(data);
// Compute
analysis.Compute();
var columnNames = analysis.ColumnNames;
var correlation = analysis.CorrelationMatrix;
var covariance = analysis.CovarianceMatrix;
var deviationScores = analysis.DeviationScores;
var distinct = analysis.Distinct;
var kurtosis = analysis.Kurtosis;
var means = analysis.Means;
var medians = analysis.Medians;
var modes = analysis.Modes;
var ranges = analysis.Ranges;
var samples = analysis.Samples;
var skewness = analysis.Skewness;
var source = analysis.Source;
var standardDeviation = analysis.StandardDeviations;
var standardErrors = analysis.StandardErrors;
var standardScores = analysis.StandardScores;
var sums = analysis.Sums;
var variables = analysis.Variables;
var variances = analysis.Variances;
var confidence = analysis.Confidence;
var quartiles = analysis.Quartiles;
Assert.IsTrue(columnNames.IsEqual(new string[]
{
"Column 0",
}));
Assert.IsTrue(correlation.IsEqual(new double[,] { { 1 } }));
Assert.IsTrue(covariance.IsEqual(new double[,] { { 604.39999999999998 } }));
Assert.IsTrue(deviationScores.IsEqual(new double[,]
{
{ 14.0 },
{ -26.0 },
{ 27.0 },
{ -13.0 },
{ 24.0 },
{ -26.0 }
}));
Assert.IsTrue(distinct.IsEqual(new int[] { 5 }));
Assert.IsTrue(kurtosis.IsEqual(new double[] { -2.7161799571726601 }));
Assert.IsTrue(means.IsEqual(new double[] { 38.0 }));
Assert.IsTrue(medians.IsEqual(new double[] { 38.5 }));
Assert.IsTrue(modes.IsEqual(new double[] { 12.0 }));
Assert.IsTrue(ranges.Apply(p => p.Min).IsEqual(new double[] { 12 }));
Assert.IsTrue(ranges.Apply(p => p.Max).IsEqual(new double[] { 65 }));
Assert.IsTrue(samples == 6);
Assert.IsTrue(skewness.IsEqual(new double[] { -0.022168530787350427 }));
Assert.IsTrue(source.IsEqual(new double[,]
{
{ 52 },
{ 12 },
{ 65 },
{ 25 },
{ 62 },
{ 12 },
}));
Assert.IsTrue(standardDeviation.IsEqual(new double[] { 24.584547992590792 }));
Assert.IsTrue(standardErrors.IsEqual(new double[] { 10.036599689801987 }));
Assert.IsTrue(standardScores.IsEqual(new double[,]
{
{ 0.5694633883128245 },
{ -1.0575748640095313 },
{ 1.09825082031759 },
{ -0.52878743200476563 },
{ 0.97622295139341342 },
{ -1.0575748640095313 },
}));
Assert.IsTrue(sums.IsEqual(new double[] { 228.0 }));
Assert.IsTrue(variables == 1);
Assert.IsTrue(variances.IsEqual(new double[] { 604.39999999999998 }));
Assert.AreEqual(1, confidence.Length);
Assert.AreEqual(18.328626080742229, confidence[0].Min);
Assert.AreEqual(57.671373919257775, confidence[0].Max);
DoubleRange q;
double q2 = Measures.Quartiles(data, out q, alreadySorted: false);
Assert.AreEqual(1, quartiles.Length);
Assert.AreEqual(q.Min, quartiles[0].Min);
Assert.AreEqual(q.Max, quartiles[0].Max);
Assert.AreEqual(12, quartiles[0].Min);
Assert.AreEqual(62, quartiles[0].Max);
}