### 2.13 Function LinearRegression

Function File: LinearRegression (F, y)
Function File: LinearRegression (F, y, w)
Function File: [p, e_var, r, p_var, fit_var] = LinearRegression (…)

  general linear regression

  determine the parameters p_j (j=1,2,...,m) such that the function f(x) = sum_(j=1,...,m) p_j*f_j(x) is the best fit to the given values y_i by f(x_i) for i=1,...,n, i.e. minimize sum_(i=1,...,n)(y_i-sum_(j=1,...,m) p_j*f_j(x_i))^2 with respect to p_j

  parameters:

  - F is an n*m matrix with the values of the basis functions at the support points. In column j give the values of f_j at the points x_i (i=1,2,...,n)
  - y is a column vector of length n with the given values
  - w is a column vector of length n with the weights of the data points. 1/w_i is expected to be proportional to the estimated uncertainty in the y values. Then the weighted expression sum_(i=1,...,n)(w_i^2*(y_i-f(x_i))^2) is minimized.

  return values:

  - p is the vector of length m with the estimated values of the parameters
  - e_var is the vector of estimated variances of the provided y values. If weights are provided, then the product e_var_i * w^2_i is assumed to be constant.
  - r is the weighted norm of the residual
  - p_var is the vector of estimated variances of the parameters p_j
  - fit_var is the vector of the estimated variances of the fitted function values f(x_i)

  To estimate the variance of the difference between future y values and fitted y values use the sum of e_var and fit_var

  Caution: do NOT request fit_var for large data sets, as a n by n matrix is generated

See also (octave)ols, (octave)gls, (octave)regress, leasqr, nonlin_curvefit, (octave)polyfit, wpolyfit, pronyfit.