Matriser: Minste kvadraters metode

Minste kvadraters metode bruker vi for å finne en funksjon som passer best mulig til datapunktene våre.

Fremgangsmåte:

Steg 1: Bestem deg for hvilken funksjon du vil bruke, f.eks.
Lineær funksjon: $y = ax + b$
Kvadratisk funksjon: $y = a x^2 + bx + c$

Steg 2: Hvert datapunkt $(x_i,y_i)$ vil ha en liten feil $\epsilon_i$ når du putter dem inn i funksjonen, f.eks:
– Lineære funksjon: $y_i = ax_i + b + \epsilon_i$
– Kvadratisk funksjon: $y_i = ax_i^2 + bx_i + c + \epsilon_i$

Steg 3: Skriv ligningene på vektorform: $\vec{y} = M\vec{a} + \vec{\epsilon}$ der $\vec{a}$ inneholder parameterne du trenger for funksjonen

Steg 4: Regn ut $M^T \vec{y}$ og $M_TM$ ved hjelp av matrisemultiplikasjon

Steg 5: Løs ligningssettet $M^T\vec{y} = M_TM\vec{a}$ for å finne $\vec{a}$

Steg 6: Sett verdiene for $\vec{a}$ inn i funksjonen

+ Lineær regresjon

Dersom du har et datasett $(x_i,y_i)$ og ønsker å finne en rett linje $y = ax + b$ som passer best mulig med datapunktene, kan du bruke lineær regresjon.

Hvis vi setter datapunktene inn i ligningen for en rett linje $y = ax + b$, vil hver ligning få en liten feil $\epsilon_i$:

y_1 = a x_1 + b + \epsilon_1 \\
y_2 = a x_2 + b + \epsilon_2 \\
\vdots \\
y_n = a x_n + b + \epsilon_n

Vi kan skrive ligningene på matriseform:

\underbrace{\left( \begin{array}{c} y_1 \\ y_2 \\ \vdots \\ y_n \end{array} \right)}_{=\vec{y}}
= \underbrace{\left( \begin{array}{cc} x_1 & 1 \\ x_2 & 1 \\ \vdots \\ x_n & 1 \end{array} \right)}_{= M}
\underbrace{\left( \begin{array}{c} a \\ b \end{array} \right) }_{=\vec{a}}
+ \underbrace{\left( \begin{array}{c} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{array} \right)}_{=\vec{\epsilon}} 
\quad \Rightarrow \quad \vec{y} = M \vec{a} + \vec{\epsilon}

For å få minst mulig feil, må $M^T \epsilon = 0$.

+ Hvorfor må $M^T \epsilon = 0$?

For å få minst mulig feil, må $\vec{\epsilon}$ være kortest mulig.

Se for deg at kolonnene i $M$ spenner ut et $n$-dimensjonelt plan. Den korteste veien mellom punktet $\epsilon$ og dette planet, er når $\vec{\epsilon}$ står vinkelrett på planet, dvs. skalarproduktet mellom hver kolonne i $M$ og $\vec{\epsilon}$ er null:

\begin{array}{rl}
& \left\{
\begin{array}{c}
\vec{m_1} \cdot \vec{\epsilon} = 0 \\
\vec{m_2} \cdot \vec{\epsilon} = 0
\end{array}
\right. \\ \Rightarrow \quad & \left\{ \begin{array}{l}
x_1 \epsilon_1 + x_2 \epsilon_2 + \cdots + x_n \epsilon_n = 0 \\
1 \cdot \epsilon_1 + 1 \cdot \epsilon_2 + \cdots + 1 \cdot \epsilon_n = 0 
\end{array} \right. \\ \Rightarrow \quad & 
\left( \begin{array}{cccc} x_1 & x_2 & \cdots & x_n \\ 1 & 1 & \cdots & 1 \end{array} \right) 
\left( \begin{array}{c} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{array} \right) 
= \left( \begin{array}{c} 0 \\ 0 \end{array} \right)
\\
\Rightarrow & M^T \vec{\epsilon} = 0
\end{array}

Og derfor må $M^T \epsilon = 0$. PS: Husk at $M^T$ er en transponerte matrisen til $M$.

Multipliserer begge sider av $\vec{y} = M\vec{a} + \epsilon$ med $M^T$:

M^T \vec{y} = M^TM \vec{a}

Siden vi har alle datapunktene, vet vi hva $M$ og $\vec{y}$ er. Det kan vi bruke til å finne $\vec{a}$. Og, vips, har vi alt vi trenger for å finne linjen som passer best til datasettet.

+ Eksempel 1: Lineær regresjon

Regresjon brukes ofte på store datasett, men nå vil vi illustrere lineær regresjon på et lite datasett.

$x$$y$
24
35
47

+ Kort video

Steg 1: Vi skal bruke lineær regresjon, dvs. vi vil finne $a$ og $b$ slik at linjen $y = ax + b$ passer best mulig til datasettet vårt.

Steg 2: Hvert datapunkt har en liten feil $\epsilon_i$ når vi putter dem inn i funksjonen:

4 = 2a + b + \epsilon_1 \\
5 = 3a + b + \epsilon_2 \\
7 = 4a + b + \epsilon_3

Steg 3: Skriver ligningssettet på matriseform:

\underbrace{\left( \begin{array}{c} 4 \\ 5 \\ 7 \end{array} \right)}_{=\vec{y}}
= \underbrace{\left( \begin{array}{cc} 2 & 1 \\ 3 & 1 \\ 4 & 1 \end{array} \right)}_{= M}
\underbrace{\left( \begin{array}{c} a \\ b \end{array} \right) }_{=\vec{a}}
+ \underbrace{\left( \begin{array}{c} \epsilon_1 \\ \epsilon_2 \\ \epsilon_3 \end{array} \right)}_{=\vec{\epsilon}} 
\quad \Rightarrow \quad \vec{y} = M \vec{a} + \vec{\epsilon}

Steg 4: Regner ut $M^T\vec{y}$ og $M^TM$ ved hjelp av matrisemultiplikasjon:

M^T \vec{y} = \left( \begin{array}{ccc} 2 & 3 & 4 \\ 1 & 1 & 1 \end{array} \right) \left( \begin{array}{c} 4 \\ 5 \\ 7 \end{array} \right) = \left( \begin{array}{c} 51 \\ 16 \end{array} \right) \\
M^T M = \left( \begin{array}{ccc} 2 & 3 & 4 \\ 1 & 1 & 1 \end{array} \right) \left( \begin{array}{cc} 2 & 1 \\ 3 & 1 \\ 4 & 1 \end{array} \right) = \left( \begin{array}{c} 29 & 9 \\ 9 & 3 \end{array} \right)

Steg 5: Løser $M^T\vec{y} = M_TM\vec{a}$ for å finne $\vec{a}$:

\underbrace{\left( \begin{array}{c} 29 & 9 \\ 9 & 3 \end{array} \right)}_{=M^TM}
\underbrace{\left( \begin{array}{c} a \\ b \end{array} \right)}_{=\vec{a}}
= \underbrace{\left( \begin{array}{c} 51 \\ 16 \end{array} \right)}_{=M^T\vec{y}}

Her kan vi bruke radoperasjoner, Cramers regel eller den inverse matrisen. Hvis vi velger Cramers regel:

a = \frac{\left| \begin{array}{cc} \textcolor{red}{51} & 9 \\ \textcolor{red}{16} & 3 \end{array} \right|}{\left| \begin{array}{cc} 29 & 9 \\ 9 & 3 \end{array} \right|}
= \frac{51 \cdot 3 - 9 \cdot 16}{29 \cdot 3 - 9 \cdot 9}
= \frac{3}{2} \\
b = \frac{\left| \begin{array}{cc} 29 & \textcolor{red}{51} \\ 9 & \textcolor{red}{16} \end{array} \right|}{\left| \begin{array}{cc} 29 & 9 \\ 9 & 3 \end{array} \right|}
= \frac{29 \cdot 16 - 51 \cdot 9}{29 \cdot 3 - 9 \cdot 9}
= \frac{5}{6} 

Steg 6: Nå kan vi sette $a = \frac{3}{2}$ og $b = \frac{5}{6}$ inn i den lineære funksjonen:

y = \frac{3}{2} x + \frac{5}{6}

Og, vips, har vi den lineære ligningen som passer best med datapunktene.

+ Eksempel 2: Lineær regresjon

Vi skal nå illustrere lineær regresjon på et lite datasett:

$x$$y$
15
24
35
49
512

Steg 1: Vi skal bruke lineær regresjon, dvs. vi vil finne $a$ og $b$ slik at linjen $y = ax + b$ passer best mulig til datasettet vårt.

Steg 2: Hvert datapunkt har en liten feil $\epsilon_i$ når vi putter dem inn i funksjonen:

5 = 1a + b + \epsilon_1 \\
4 = 2a + b + \epsilon_2 \\
5 = 3a + b + \epsilon_3 \\
9 = 4a + b + \epsilon_4 \\
12 = 5a + b + \epsilon_5 

Steg 3: Skriver ligningssettet på matriseform:

\underbrace{\left( \begin{array}{c} 5 \\ 4 \\ 5 \\ 9 \\ 12 \end{array} \right)}_{=\vec{y}}
= \underbrace{\left( \begin{array}{cc} 1 & 1 \\ 2 & 1 \\ 3 & 1 \\ 4 & 1 \\ 5 & 1\end{array} \right)}_{= M}
\underbrace{\left( \begin{array}{c} a \\ b \end{array} \right) }_{=\vec{a}}
+ \underbrace{\left( \begin{array}{c} \epsilon_1 \\ \epsilon_2 \\ \epsilon_3 \\ \epsilon_4 \\ \epsilon_5 \end{array} \right)}_{=\vec{\epsilon}} 
\quad \Rightarrow \quad \vec{y} = M \vec{a} + \vec{\epsilon}

Steg 4: Regner ut $M^T\vec{y}$ og $M^TM$ ved hjelp av matrisemultiplikasjon:

M^T \vec{y} = \left( \begin{array}{ccc} 1 &2 & 3 & 4 & 5 \\ 1 & 1 & 1 & 1 & 1 \end{array} \right) \left( \begin{array}{c} 5 \\ 4 \\ 5 \\ 9 \\ 12 \end{array} \right) = \left( \begin{array}{c} 124 \\ 35 \end{array} \right) \\
M^T M = \left( \begin{array}{ccc} 1 & 2 & 3 & 4 & 5 \\ 1& 1& 1 & 1 & 1 \end{array} \right) \left( \begin{array}{cc} 1 & 1 \\2 & 1 \\ 3 & 1 \\ 4 & 1 \\ 5 & 1\end{array} \right) = \left( \begin{array}{c} 55 & 15 \\ 15 & 5 \end{array} \right)

Steg 5: Løser $M^T\vec{y} = M_TM\vec{a}$ for å finne $\vec{a}$:

\underbrace{\left( \begin{array}{c} 55 & 15 \\ 15 & 5 \end{array} \right)}_{=M^TM}
\underbrace{\left( \begin{array}{c} a \\ b \end{array} \right)}_{=\vec{a}}
= \underbrace{\left( \begin{array}{c} 124 \\ 35 \end{array} \right)}_{=M^T\vec{y}}

Her kan vi bruke radoperasjoner, Cramers regel eller den inverse matrisen. Hvis vi velger Cramers regel:

a = \frac{\left| \begin{array}{cc} \textcolor{red}{124} & 15 \\ \textcolor{red}{35} & 5 \end{array} \right|}{\left| \begin{array}{cc} 55 & 15 \\ 15 & 5 \end{array} \right|}
= \frac{124 \cdot 5 - 15 \cdot 35}{55 \cdot 5 - 15 \cdot 15}
= 1.9 \\
b = \frac{\left| \begin{array}{cc} 55 & \textcolor{red}{124} \\ 15 & \textcolor{red}{35} \end{array} \right|}{\left| \begin{array}{cc} 55 & 15 \\ 15 & 5 \end{array} \right|}
= \frac{55 \cdot 35 - 124 \cdot 15}{55 \cdot 5 - 15 \cdot 15}
= 1.3

Steg 6: Nå kan vi sette $a = 1.9$ og $b = 1.3$ inn i den lineære funksjonen:

y = 1.9 x + 1.3

Og, vips, har vi den lineære ligningen som passer best med datapunktene.

+ Eksempel 3: Kvadratisk regresjon

Vi skal nå illustrere kvadratisk regresjon på et lite datasett:

$x$$y$
15
24
35
49
512

Steg 1: Vi skal bruke kvadratisk regresjon, dvs. vi vil finne $a$, $b$ og $c$ slik at linjen $y = ax^2 + by + c$ passer best mulig til datasettet vårt.

Steg 2: Hvert datapunkt har en liten feil $\epsilon_i$ når vi putter dem inn i funksjonen:

5 = 1^2a + 1b + c + \epsilon_1 \\
4 = 2^2a + 2b + c + \epsilon_2 \\
5 = 3^2a + 3b + c + \epsilon_3 \\
9 = 4^2a + 4b + c + \epsilon_4 \\
12 = 5^2a + 5b + c + \epsilon_5 

Steg 3: Skriver ligningssettet på matriseform:

\underbrace{\left( \begin{array}{c} 5 \\ 4 \\ 5 \\ 9 \\ 12 \end{array} \right)}_{=\vec{y}}
= \underbrace{\left( \begin{array}{cc} 1^2 & 1 & 1 \\ 2^2 & 2 & 1 \\ 3^2 & 3 & 1 \\ 4^2 & 4 & 1 \\ 5^2 & 5 & 1\end{array} \right)}_{= M}
\underbrace{\left( \begin{array}{c} a \\ b \\ c\end{array} \right) }_{=\vec{a}}
+ \underbrace{\left( \begin{array}{c} \epsilon_1 \\ \epsilon_2 \\ \epsilon_3 \\ \epsilon_4 \\ \epsilon_5 \end{array} \right)}_{=\vec{\epsilon}} 
\quad \Rightarrow \quad \vec{y} = M \vec{a} + \vec{\epsilon}

Steg 4: Regner ut $M^T\vec{y}$ og $M^TM$ ved hjelp av matrisemultiplikasjon:

M^T \vec{y} = \left( \begin{array}{ccc} 1^2 & 2^2 & 3^2 & 4^2 & 5^2 \\ 1 &2 & 3 & 4 & 5 \\ 1 & 1 & 1 & 1 & 1 \end{array} \right) \left( \begin{array}{c} 5 \\ 4 \\ 5 \\ 9 \\ 12 \end{array} \right) = \left( \begin{array}{c} 510 \\ 124 \\ 35 \end{array} \right) \\
M^T M = \left( \begin{array}{ccc} 1^2 & 2^2 & 3^2 & 4^2 & 5^2 \\ 1 & 2 & 3 & 4 & 5 \\ 1& 1& 1 & 1 & 1 \end{array} \right) \left( \begin{array}{cc} 1^1 & 1 & 1 \\ 2^2 & 2 & 1 \\ 3^2 & 3 & 1 \\ 4^2 & 4 & 1 \\ 5^2 & 5 & 1\end{array} \right) = \left( \begin{array}{c} 979 & 225 & 55 \\ 225 & 55 & 15 \\ 55 & 15 & 5 \end{array} \right)

Steg 5: Løser $M^T\vec{y} = M_TM\vec{a}$ for å finne $\vec{a}$:

\underbrace{\left( \begin{array}{c} 979 & 225 & 55 \\ 225 & 55 & 15 \\ 55 & 15 & 5 \end{array} \right)}_{=M^TM}
\underbrace{\left( \begin{array}{c} a \\ b \\ c \end{array} \right)}_{=\vec{a}}
= \underbrace{\left( \begin{array}{c} 510 \\ 124 \\ 35 \end{array} \right)}_{=M^T\vec{y}}

Her kan vi bruke radoperasjoner, Cramers regel eller den inverse matrisen. Uansett hvilken metode vi velger, skal vi få:

a \approx 0.7857 \\
b \approx -2.8143 \\
c \approx 6.800

Steg 6: Nå kan vi sette $a$, $b$ og $c$ inn i den kvadratiske funksjonen:

y \approx 0.7857x^2 - 2.8143x + 6.800

Og, vips, har vi den lineære ligningen som passer best med datapunktene.

+ Eksempel 4: Eksponentiell regresjon

Vi skal nå illustrere eksponentiell regresjon på et lite datasett:

Uke etter uke 6 i 2021, $t$Antall smittede av covid-19, $s$
01734
12029
23101
34184
45655
56565

Steg 1: Vi skal bruke eksponentiell regresjon, dvs. vi vil finne $a$ og $b$ slik at linjen $s = be^{at}$ passer best mulig til datasettet vårt.

For å kunne bruke lineær regresjon, må vi funksjonen vår være et polynom. Derfor må vi omforme ligningen vår ved å bruke logaritmereglene:

\begin{array}{lrcl}
& s & = & ke^{at} \\
\Rightarrow \quad & \ln(s) & = &  \ln(ke^{at}) \\
\Rightarrow \quad & \ln(s) & = & \ln(k) + \ln(e^{at}) \\
\Rightarrow \quad & \ln(s) & = & \ln(k) + at
\end{array}

Hvis vi nå seter $y = \ln(s)$ og $b = \ln(k)$, har vi en lineær funksjon:

 y = b + at

Steg 2: Hvert datapunkt har en liten feil $\epsilon_i$ når vi putter dem inn i funksjonen:

\ln(1734) = 0a + b + \epsilon_0 \\
\ln(2029) = 1a + b + \epsilon_1 \\
\ln(3101) = 2a + b + \epsilon_2 \\
\ln(4184) = 3a + b + \epsilon_3 \\
\ln(5655) = 4a + b + \epsilon_4 \\
\ln(6565) = 5a + b + \epsilon_5

Steg 3: Skriver ligningssettet på matriseform:

\underbrace{\left( \begin{array}{c} \ln(1734) \\ \ln(2029) \\ \ln(3101) \\ \ln(4184) \\ \ln(5655) \\ \ln(6565) \end{array} \right)}_{=\vec{y}}
= \underbrace{\left( \begin{array}{cc} 0 & 1 \\ 1 & 1 \\ 2 & 1 \\ 3 & 1 \\ 4 & 1 \\ 5 & 1\end{array} \right)}_{= M}
\underbrace{\left( \begin{array}{c} a \\ b \end{array} \right) }_{=\vec{a}}
+ \underbrace{\left( \begin{array}{c} \epsilon_0 \\ \epsilon_1 \\ \epsilon_2 \\ \epsilon_3 \\ \epsilon_4 \\ \epsilon_5 \end{array} \right)}_{=\vec{\epsilon}} 
\quad \Rightarrow \quad \vec{y} = M \vec{a} + \vec{\epsilon}

Steg 4: Regner ut $M^T\vec{y}$ og $M^TM$ ved hjelp av matrisemultiplikasjon:

M^T \vec{y} = \left( \begin{array}{ccc} 0 & 1 &2 & 3 & 4 & 5 \\ 1 & 1 & 1 & 1 & 1 & 1 \end{array} \right) \left( \begin{array}{c} \ln(1734) \\ \ln(2029) \\ \ln(3101) \\ \ln(4184) \\ \ln(5655) \\ \ln(6565) \end{array} \right) \approx \left( \begin{array}{c} 127.22 \\ 48.88 \end{array} \right) \\
M^T M = \left( \begin{array}{ccc} 0 & 1 & 2 & 3 & 4 & 5 \\ 1 & 1& 1& 1 & 1 & 1 \end{array} \right) \left( \begin{array}{cc} 0 & 1 \\1 & 1 \\2 & 1 \\ 3 & 1 \\ 4 & 1 \\ 5 & 1\end{array} \right) = \left( \begin{array}{c} 55 & 15 \\ 15 & 6 \end{array} \right)

Steg 5: Løser $M^T\vec{y} = M_TM\vec{a}$ for å finne $\vec{a}$:

\underbrace{\left( \begin{array}{c} 55 & 15 \\ 15 & 6 \end{array} \right)}_{=M^TM}
\underbrace{\left( \begin{array}{c} a \\ b \end{array} \right)}_{=\vec{a}}
= \underbrace{\left( \begin{array}{c} 127.22 \\ 48.88 \end{array} \right)}_{=M^T\vec{y}}

Her kan vi bruke radoperasjoner, Cramers regel eller den inverse matrisen. Hvis vi velger Cramers regel:

a = \frac{\left| \begin{array}{cc} \textcolor{red}{127.22} & 15 \\ \textcolor{red}{48.88} & 6 \end{array} \right|}{\left| \begin{array}{cc} 55 & 15 \\ 15 & 6 \end{array} \right|}
= \frac{127.22 \cdot 6 - 15 \cdot 48.88}{55 \cdot 6 - 15 \cdot 15}
\approx 0.287 \\
b = \frac{\left| \begin{array}{cc} 55 & \textcolor{red}{127.22} \\ 15 & \textcolor{red}{48.88} \end{array} \right|}{\left| \begin{array}{cc} 55 & 15 \\ 15 & 6 \end{array} \right|}
= \frac{55 \cdot 48.88 - 127.22 \cdot 15}{55 \cdot 6 - 15 \cdot 15}
\approx 7.430

Steg 6: Nå kan vi sette $a = 0.287$ og $b = 7.430$ inn i den lineære funksjonen:

y = 0.287 t + 7.430

Siden $y = \ln(s)$, har vi at $s = e^y$:

s = e^{0.287t + 7.430} = e^{0.287t} \cdot e^{7.430} = 1686e^{0.287t}

Og, vips, har vi den eksponentielle ligningen som passer best med datapunktene.

← Matematikk

↓ Oppgaver

→ Miniorer og kofaktorer