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:

x1k ... x13 x12 x1 1
x2k ... x23 x22 x2 1
... ... ... ... ... 1
xnk ... xn3 xn2 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 = c_1x^k+c_2x^{(k-1)}+\dots+c_{(k-1)}x+c_k