Minstakvadratmetoden

Från Wikipedia
(Omdirigerad från Minsta kvadrat-metoden)
Hoppa till: navigering, sök
En rät linje som en approximativ beskrivning av en datamängd

Minstakvadratmetoden (även minsta-kvadrat-metoden eller minsta kvadrat-metoden) används bland annat 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.

Minstakvadratmetoden har en linjär och en icke-linjär variant beroende på om residualerna (”felen”) är linjära eller inte med avseende på alla obekanta. Den linjära varianten tillämpas inom regressionsanalys och har en sluten form. Den icke-linjära bygger vanligen på iterativa metoder. Vid varje iteration approximeras lösningen med en linjär lösning, varför de grundläggande beräkningarna är snarlika i båda fallen.

Anpassning av en funktion till observerade data[redigera | redigera wikitext]

En vanlig modell för att representera en mätserie

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

i form av en funktion, är en linjärkombination av k kända (valda) funktioner

f(t) = c_1 f_1(t) + c_2 f_2(t),..., c_k f_k(t)

där koefficienterna c1, c2,..., ck skall bestämmas för att i minstakvadratmetodens mening bäst anpassa kurvan f till mätserien, vilket innebär att summan

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

skall minimeras.

För en lösning konstrueras först den så kallade designmatrisen

A = \begin{bmatrix}
f_1(x_1) & f_2(x_1) &...\quad f_k(x_1) \\
f_1(x_2) & f_2(x_2) &...\quad f_k(x_2) \\
\quad \cdots \\
f_1(x_n) & f_2(x_n) &...\quad f_k(x_n) \\
\end{bmatrix}

Med


\mathbf c =\begin{bmatrix}
c_1 \\
c_2\\
\vdots \\
c_k\\
\end{bmatrix}
,\quad
\mathbf y = \begin{bmatrix}
y_1 \\
y_2\\
\vdots \\
y_n\\
\end{bmatrix}

kan ett linjärt ekvationssystem (vanligen överbestämt, normalt är n betydligt större än k) i k obekanta skrivas

A\cdot \mathbf c = \mathbf y

Att lösa detta ekvationssystem i minstakvadratmetodens mening är ekvivalent med att lösa normalekvationen

A^T A\, \mathbf c = A^T\, \mathbf y

där A^T är transponatet till A.

Om A och y har samma antal rader och om kolumnvektorerna i A är linjärt oberoende, har normalekvationen en entydig lösning \mathbf c_{min} för vilken gäller

\| A\mathbf c - \mathbf y\|^2 \geq \| A\mathbf c_{min} - \mathbf y\|^2

det vill säga \mathbf c_{min} är minimumpunkten till funktionen

\mathbf c \rightarrow \|A\mathbf c - \mathbf y\|^2

Det kvadratiska medelfelet beräknas som

\epsilon = \| A\mathbf c_{min} - \mathbf y \|/\sqrt n

Anpassning av polynom[redigera | redigera wikitext]

För att anpassa ett polynom av grad k

 \sum_{i=0}^k c_i x^i

till datamängden

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

sätts polynomets monom (med alla ci = 1) med beräknade värden in som rader i designmatrisen

A = \begin{bmatrix}x_1^k & \cdots & x_1^3 & x_1^2 & x_1 & 1 \\ x_2^k & \cdots & x_2^3 & x_2^2 & x_2 & 1 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ x_n^k & \cdots & x_n^3 & x_n^2 & x_n & 1\end{bmatrix}

De sökta koefficienterna c och alla y-värden bildar kolumnvektorerna

\mathbf{c}=\begin{bmatrix}c_k \\ c_{k-1} \\ \vdots \\ c_{0} \end{bmatrix},\quad 
\mathbf{y}=\begin{bmatrix}y_n \\ y_{n-1} \\ \vdots \\ y_{1} \end{bmatrix}

Därefter löses vanligen normalekvationen

A^TA \cdot \mathbf{c} =A^T\cdot\mathbf{y}

Val av polynomets grad[redigera | redigera wikitext]

Givet värdet av datamängdens storlek, n, hur skall det approximerande polynomets grad k väljas? Grundantagandet är[1] att k < n, eller åtminstone att datamängden med tillräcklig noggrannhet kan approximeras av ett sådant polynom. Om k > n är det knappast möjligt att få en god approximation. Är k = n - 1 är lösningen exakt, men även i detta fall förloras en önskvärd egenskap hos polynomet, nämligen förmågan att filtrera bort detaljer orsakade av mätfel och andra störningar (till exempel numeriska fel).

Exempel[redigera | redigera wikitext]

Anpassning av en rät linje[redigera | redigera wikitext]

Vilken rät linje

y = c_1 x + c_0

ger bästa anpassningen till mätserien

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

I detta fall blir designmatrisen

A = \begin{bmatrix}x_1 & 1 \\ x_2 & 1 \\ \vdots & \vdots \\ x_n & 1\end{bmatrix}

och y-värdena och de sökta koefficienterna placeras i

\mathbf{y} = \begin{bmatrix}y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix}, \quad 
\mathbf{c} = \begin{bmatrix}c_1 \\ c_0 \end{bmatrix}

Därefter löses

A^TA \cdot \mathbf{c} =A^T\cdot\mathbf{y}

med avseende på c.

Anpassning av ett andragradspolynom[redigera | redigera wikitext]

Exemplets polynomanpassning
Exemplets dataset och anpassat förstagradspolynom

Givet datapunkterna (1,10), (2,8), (3,11), (4,17), (5,24) söks de koefficienter till andragradspolynomet

y = c_0x^2+c_1 x+c_2

som enligt minstakvadratmetoden är bäst anpassade till observationerna.

Designmatrisen och vektorn för y-värdena är

A = \begin{bmatrix}1 & 1 & 1 \\ 4 & 2 & 1 \\ 9 & 3 & 1 \\ 16 & 4 & 1 \\ 25 & 5 & 1 \end{bmatrix},\quad \mathbf{y} = \begin{bmatrix}10 \\ 8 \\ 11 \\ 17 \\ 24 \end{bmatrix}
A^TA = \begin{bmatrix}979 & 225 & 55 \\ 225 & 55 & 15 \\ 55 & 15 & 5 \end{bmatrix}, \quad A^T\mathbf{y}=\begin{bmatrix}1013\\ 247 \\ 70\end{bmatrix}

Lösningen till ekvationen

 \begin{bmatrix}979 & 225 & 55 \\ 225 & 55 & 15 \\ 55 & 15 & 5 \end{bmatrix}\begin{bmatrix}c_2\\c_1\\c_0\end{bmatrix}=\begin{bmatrix}1013\\ 247 \\ 70\end{bmatrix}

är

\mathbf{c}=\begin{bmatrix}1{,}5 \\ -5{,}3 \\ 13{,}4 \end{bmatrix}

Det anpassade andragradspolynomet är således

y = 1{,}5x^2 -5{,}3x + 13{,}4
Jämförelse mellan observerade och minstakvadratanpassade y-värden.
x uppmätt y anpassat y felet felet i kvadrat
1 10 9,6 -0,4 0,16
2 8 8,8 0,8 0,64
3 11 11,0 0,0 0,00
4 17 16,2 -0,8 0,64
5 24 24,4 0,4 0,16
Summa: 1,60

Av alla möjliga andragradspolynom har inget en summa av felen i kvadrat som understiger 1,6.

Anpassning av ellips[redigera | redigera wikitext]

Kan datapunkterna (-9, 2), (-2, 5), (3, 6), (7, 4), (9, 1), (8, -4), (1, -5), (-4, -5), (-8, -3), (-9, -1) på ett meningsfullt sätt beskrivas av en ellips? Minstakvadratmetoden kan användas för att anpassa en ellips till datamängden. Ekvationen för en ellips är

\frac{x^2}{a^2}+ \frac{y^2}{b^2}=1

där a, b är ellipsaxlarnas längder.

De beräknade värdena för ellipsekvationens termer (med a och b = 1) sätts in i designmatrisens rader och värdena i ellipsekvationens högerled sätts in i kolumnvektorn y:

A = \begin{bmatrix}x_1^2 & y_1^2 \\x_2^2 & y_2^2 \\ \vdots &\vdots \\ x_n^2 &y_n^2\end{bmatrix}\ = \begin{bmatrix}81 & 4 \\4 & 25 \\ \vdots &\vdots \\ 81 &1\end{bmatrix}, \quad \mathbf{y} = \begin{bmatrix}1 \\ 1 \\ \vdots \\ 1 \end{bmatrix}
A^TA = \begin{bmatrix}30630 & 3719 \\ 3719 & 3782\\ \end{bmatrix}, \quad A^T\mathbf{y}=\begin{bmatrix}450\\ 158\end{bmatrix}
Den anpassade ellipsen

Lösningen till normalekvationen

A^TA\begin{bmatrix}c_1\\c_2\end{bmatrix}=A^T\mathbf{y}

är

c_1 = 0.010923
c_2 = 0.031036

och därmed är

a = \sqrt{\frac{1}{c_1}} = 9.5681
b = \sqrt{\frac{1}{c_2}} = 5.6764

Referenser[redigera | redigera wikitext]

  1. ^ A First Cource In Numerical Analysis, Anthony Ralstone Philip Rabinowitz, Second Edition, ISBN 0-07-051158-6