BartlettTest Class

Represents Bartlett's test that a set of samples have the same variance.

Definition

Namespace: Numerics.NET.Statistics.Tests
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.7
C#
public sealed class BartlettTest : MultiSampleTest<double>
Inheritance
Object  →  HypothesisTest  →  MultiSampleTest<Double>  →  BartlettTest

Remarks

Bartlett's test is used to test the null hypothesis that multiple samples have the same variance. This property is called homogeneity of variance. The test is based on the assumption that the samples are normally distributed. It is sensitive to violations of this assumption.

The test statistic for Bartlett's test is a chi-square statistic. The distribution of this test statistic under the null hypothesis follows a chi-square distribution with degrees of freedom equal to the number of samples minus one.

Bartlett's test is commonly used in statistical procedures such as Analysis of Variance (ANOVA), which assume that variances are the same across groups. However, it cannot adequately distinguish between violation of homogeneity of variances and violation of the normality assumption. In such cases, Levene's test gives more meaningful results.

Example

The following example demonstrates how to perform Bartlett's test using different constructors and how to use its properties and methods.

C#
using Numerics.NET;
using Numerics.NET.Statistics.Tests;
using Numerics.NET.DataAnalysis;

// Example using the default constructor
Vector<double> data1 = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];
Vector<double> data2 = [ 2.0, 3.0, 4.0, 6.0, 8.0 ];
Vector<double>[] samples = [ data1, data2 ];
BartlettTest test1 = new BartlettTest(samples);
double statistic1 = test1.CalculateStatistic();
double pValue1 = test1.GetPValue(HypothesisType.OneTailedUpper);
Console.WriteLine($"Statistic: {statistic1}, P-Value: {pValue1}");

// Example using the Vector and grouping constructor
Vector<double> data2 = [ 1.0, 2.0, 3.0, 4.0, 5.0, 2.0, 3.0, 4.0, 6.0, 8.0 ];
Vector<int> groups = [ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2 ];
var grouping = groups.AsCategorical();
BartlettTest test2 = new BartlettTest(data2, grouping);
double statistic2 = test2.CalculateStatistic();
double pValue2 = test2.GetPValue(HypothesisType.OneTailedUpper);
Console.WriteLine($"Statistic: {statistic2}, P-Value: {pValue2}");

Constructors

BartlettTest() Constructs a new BartlettTest.
BartlettTest(IDataFrame) Constructs a new BartlettTest for the specified vector.
BartlettTest(Vector<Double>[]) Constructs a new BartlettTest for the specified vector array.
BartlettTest(Vector<Double>, IGrouping) Constructs a new BartlettTest for the specified vector.

Properties

DegreesOfFreedom Gets the degrees of freedom for this chi-square distribution.
Distribution Gets the probability distribution used in the hypothesis test.
(Inherited from HypothesisTest)
Grouping Gets the grouping that divides Sample into groups.
(Inherited from MultiSampleTest<T>)
HypothesisType Gets or sets whether the test is one or two-tailed.
(Inherited from HypothesisTest)
Name Gets the name of the hypothesis test.
(Overrides HypothesisTest.Name)
PValue Gets the probability that the test statistic would take on the calculated value under the alternate hypothesis.
(Inherited from HypothesisTest)
Sample Gets the vector that contains the sample data.
(Inherited from MultiSampleTest<T>)
Samples Gets the collection of samples for the test.
(Inherited from MultiSampleTest<T>)
SignificanceLevel Gets the significance level used to test the null hypothesis.
(Inherited from HypothesisTest)
Statistic Gets the value of the test statistic.
(Inherited from HypothesisTest)

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
GetConfidenceInterval() Returns the confidence interval for the test parameter for the default confidence level.
(Inherited from HypothesisTest)
GetConfidenceInterval(Double) Returns the confidence interval for the test parameter for the specified confidence level.
(Inherited from HypothesisTest)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetLowerCriticalValue() Gets the lower critical value for the hypothesis test's current significance level.
(Inherited from HypothesisTest)
GetLowerCriticalValue(Double) Gets the lower critical value for the hypothesis test at the specified significance level.
(Inherited from HypothesisTest)
GetPValue Gets the probability that the test statistic would take on the calculated value under the specified alternate hypothesis.
(Inherited from HypothesisTest)
GetTypeGets the Type of the current instance.
(Inherited from Object)
GetUpperCriticalValue() Gets the upper critical value for the test statistic at the hypothesis test's current significance level.
(Inherited from HypothesisTest)
GetUpperCriticalValue(Double) Gets the upper critical value for the test statistic at the specified significance level.
(Inherited from HypothesisTest)
Reject() Returns whether the null hypothesis is rejected using the default significance level.
(Inherited from HypothesisTest)
Reject(Double) Returns whether the null hypothesis is rejected using the specified significance level.
(Inherited from HypothesisTest)
Summarize() Returns a string containing a human-readable summary of the object.
(Inherited from HypothesisTest)
Summarize(SummaryOptions) Returns a string containing a human-readable summary of the object using the specified options.
(Inherited from HypothesisTest)
ToStringReturns a string that represents the current object.
(Inherited from HypothesisTest)

See Also