obspy.signal.regression.linear_regression

linear_regression(xdata, ydata, weights=None, p0=None, intercept_origin=True, **kwargs)[source]

Use linear least squares to fit a function, f, to data. This method is a generalized version of scipy.optimize.minpack.curve_fit(); allowing for Ordinary Least Square and Weighted Least Square regressions:

  • OLS through origin: linear_regression(xdata, ydata)
  • OLS with any intercept: linear_regression(xdata, ydata, intercept_origin=False)
  • WLS through origin: linear_regression(xdata, ydata, weights)
  • WLS with any intercept: linear_regression(xdata, ydata, weights, intercept_origin=False)

If the expected values of slope (and intercept) are different from 0.0, provide the p0 value(s).

Parameters:
  • xdata The independent variable where the data is measured.
  • ydata The dependent data - nominally f(xdata, ...)
  • weights If not None, the uncertainties in the ydata array. These are used as weights in the least-squares problem. If None, the uncertainties are assumed to be 1. In SciPy vocabulary, our weights are 1/sigma.
  • p0 Initial guess for the parameters. If None, then the initial values will all be 0 (Different from SciPy where all are 1)
  • intercept_origin If True: solves y=a*x (default); if False: solves y=a*x+b.

Extra keword arguments will be passed to scipy.optimize.minpack.curve_fit().

Return type:tuple
Returns:(slope, std_slope) if intercept_origin is True; (slope, intercept, std_slope, std_intercept) if False.