Test the quality of the linear regression model Test.

Based on the adjusted R^2 indicator.

Available usages:

LinearModelTest.LinearModelAdjustedRSquared(firstSample, secondSample)

LinearModelTest.LinearModelAdjustedRSquared(firstSample, secondSample, level)

LinearModelTest.LinearModelAdjustedRSquared(firstSample, secondSample, linearModel)

LinearModelTest.LinearModelAdjustedRSquared(firstSample, secondSample, linearModel, level)


fisrtSample : 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 < 1

Threshold p-value of the test (= 1 - first type risk), it must be < 1, equal to 0.95 by default.


testResult : TestResult

Structure containing the result of the test.


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 Y and the n-dimensional one \vect{X} = (X_i)_{i \leq n} is as follows:

\tilde{Y} = a_0 + \sum_{i=1}^n a_i X_i + \epsilon

where \epsilon is the residual, supposed to follow the standard Normal distribution.

The LinearModelAdjustedRSquared test checks the quality of the linear regression model. It evaluates the indicator R^2 adjusted (regression variance analysis) and compares it to a level.


>>> import openturns as ot
>>> ot.RandomGenerator.SetSeed(0)
>>> distribution = ot.Normal()
>>> sample = distribution.getSample(30)
>>> func = ot.NumericalMathFunction('x', '2 * x + 1')
>>> firstSample = sample
>>> secondSample = func(sample) + ot.Normal().getSample(30)
>>> test_result = ot.LinearModelTest.LinearModelAdjustedRSquared(firstSample, secondSample)
>>> print(test_result)
class=TestResult name=Unnamed type=AdjustedRSquared binaryQualityMeasure=false p-value threshold=0.95 p-value=0.815998 description=[]