# LinearModelTest_LinearModelHarrisonMcCabe¶

LinearModelTest_LinearModelHarrisonMcCabe(*args)

Test the homoskedasticity of the linear regression model residuals.

Available usages:

LinearModelTest.LinearModelHarrisonMcCabe(firstSample, secondSample)

LinearModelTest.LinearModelHarrisonMcCabe(firstSample, secondSample, linearModel)

LinearModelTest.LinearModelHarrisonMcCabe(firstSample, secondSample, level, breakPoint, simulationSize)

LinearModelTest.LinearModelHarrisonMcCabe(firstSample, secondSample, linearModel, level, breakPoint, simulationSize)

Parameters: firstSample : 2-d sequence of float First tested sample, of dimension 1. secondSample : 2-d sequence of float Second tested sample, of dimension 1. linearModel : LinearModel A linear model. If not provided, it is built using the given samples. level : positive float Threshold p-value of the test (= first kind risk), it must be , equal to 0.05 by default. breakPoint : positive float Percentage of data to be taken as breakPoint in the variances. It must be , equal to 0.5 by default. simulationSize : positive int Size of the sample used to compute the p-value. Default is 1000. testResult : TestResult Structure containing the result of the test.

Notes

The LinearModelTest class is used through its static methods in order to evaluate the quality of the linear regression model between two samples (see LinearModel). The linear regression model between the scalar variable and the -dimensional one is as follows:

where is the residual.

The Harrison-McCabe test checks the heteroskedasticity of the residuals. The breakpoint in the variances is set by default to the half of the sample. The p-value is estimed using simulation. If the binary quality measure is false, then the homoskedasticity hypothesis can be rejected with respect to the given level.

Examples

>>> import openturns as ot
>>> ot.RandomGenerator.SetSeed(0)
>>> distribution = ot.Normal()
>>> sample = distribution.getSample(30)
>>> func = ot.SymbolicFunction('x', '2 * x + 1')
>>> firstSample = sample
>>> secondSample = func(sample) + ot.Normal().getSample(30)
>>> test_result = ot.LinearModelTest.LinearModelHarrisonMcCabe(firstSample, secondSample)
>>> print(test_result)
class=TestResult name=Unnamed type=HarrisonMcCabe binaryQualityMeasure=true p-value threshold=0.05 p-value=0.142 description=[]