Source code for pyqt_fit.py_local_linear

from __future__ import division, absolute_import, print_function
import numpy as np


[docs]def local_linear_1d(bw, xdata, ydata, points, kernel, out): r''' We are trying to find the fitting for points :math:`x` given a gaussian kernel Given the following definitions: .. math:: x_0 &=& x-x_i \begin{array}{rlc|rlc} w_i &=& \mathcal{K}\left(\frac{x_0}{h}\right) & W &=& \sum_i w_i \\ X &=& \sum_i w_i x_0 & X_2 &=& w_i x_0^2 \\ Y &=& \sum_i w_i y_i & Y_2 &=& \sum_i w_i y_i x_0 \end{array} The fitted value is given by: .. math:: f(x) = \frac{X_2 T - X Y_2}{W X_2 - X^2} ''' x0 = points - xdata[:, np.newaxis] x02 = x0 * x0 # wi = kernel(x0 / bw) wi = np.exp(-x02 / (2.0 * bw * bw)) X = np.sum(wi * x0, axis=0) X2 = np.sum(wi * x02, axis=0) wy = wi * ydata[:, np.newaxis] Y = np.sum(wy, axis=0) Y2 = np.sum(wy * x0, axis=0) W = np.sum(wi, axis=0) return None, np.divide(X2 * Y - Y2 * X, W * X2 - X * X, out)