Minstakvadratmetoden

Från Wikipedia
Hoppa till: navigering, sök

Minstakvadratmetoden (även minsta-kvadrat-metoden eller minsta kvadrat-metoden) används vid regressionsanalys för att minimera felet i en funktion som ska anpassas utifrån observerade värden. Exempel på tillämpningar är:

  • Utifrån gjorda folkräkningar vill man förutsäga befolkningsökningen i ett område genom göra folkmängden till en funktion av tiden.
  • Inom hydrologi vill man beräkna hur stort skyfall som inträffar en gång var hundrade år, till exempel för att kunna dimensionera en mindre damm (se även frekvensanalys). I detta fall görs regnmängden till en funktion av återkomsttiden.

Observerad data är

(x_1, y_1), (x_2, y_2), \cdots, (x_n, y_n).

Kurvan man söker är

y=f(x, \mathbf{b}),

där b är en koefficientvektor.

Kurvan man söker skall minimera b över

\sum_{i=1}^n [y_i-f(x_i, \mathbf{b})]^2.

För att approximera en rät linje till några punkter tas alla x värden och sätts i en matris (som vi kallar A) enligt:

x1 1
x2 1
... ...
xn 1

och alla y-värden i en kolumn (som vi kallar b) enligt:

y1
y2
...
yn

Värden för k och m i formeln y=kx+m finnes då genom att ta: inv(A^T*A)*A^T*b därA^T är A's transponat (A flippad längs diagonalen) och inv() är matrisinversen. Denna uträkning ger en ny kolumn vars första värde är k-värdet och andra värde är m-värdet.

För att approximera polynom av högre grad körs samma formel igen men de första kolumnerna av A ändras till att vara respektive x-värden upphöjda till den koefficient som önskas enligt:

x1^k ... x1^3 x1^2 x1 1
x2^k ... x2^3 x2^2 x2 1
... ... ... ... ... 1
xn^k ... xn^3 xn^2 xn 1

Värdena i kolumnen som fås av operationen inv(A^T*A)*A^T*b representerar koefficienterna för polynomet. Alltså, om vi kallar denna nya vektor/kolumn för c som ser ut enligt:

c1
c2
...
ck

så kommer det approximerade polynomet se ut: y = c1*x^k+c2*x^(k-1)+...+c(k-1)*x+ck (x(k-1) ska alltså här vara x^(k-1))