scipy.stats.linregress(x, y=None)[source]

Calculate a regression line

This computes a least-squares regression for two sets of measurements.


x, y : array_like

two sets of measurements. Both arrays should have the same length. If only x is given (and y=None), then it must be a two-dimensional array where one dimension has length 2. The two sets of measurements are then found by splitting the array along the length-2 dimension.


slope : float

slope of the regression line

intercept : float

intercept of the regression line

rvalue : float

correlation coefficient

pvalue : float

two-sided p-value for a hypothesis test whose null hypothesis is that the slope is zero.

stderr : float

Standard error of the estimate


>>> from scipy import stats
>>> x = np.random.random(10)
>>> y = np.random.random(10)
>>> slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)

# To get coefficient of determination (r_squared)

>>> print("r-squared:", r_value**2)
r-squared: 0.15286643777