×   HOME JAVA NETPLOT OCTAVE Traži ...
  matematika2
Problem najmanjih kvadrata     Problem najmanjih kvadrata     Metoda najmanjih kvadrata

Linearna regresija

Linearnu regresiju ćemo najbolje objasniti na primjeru. Neka je zadano pet točaka u ravnini

$\displaystyle \begin{tabular}{r\vert lllll}
x& 1 & 3 & 4 & 6 & 7 \hline
y& 1 & 3 & 2 & 4 & 3
\end{tabular}$

kao na slici 6.1.

Slika: Pet točaka u ravnini
Image ls1

Ukoliko bi pravac $ y=kx+l$ prolazio kroz sve zadane točke, onda bi za svaku točku $ (x_1,y_i)$ , $ i=1,2,\ldots, 5$ vrijedilo

$\displaystyle k  x_i+l=y_i.
$

U našem slučaju to daje sustav linearnih jednadžbi

$\displaystyle k+l$ $\displaystyle =1$    
$\displaystyle 3k+l$ $\displaystyle =3$    
$\displaystyle 4k+l$ $\displaystyle =2$    
$\displaystyle 6k+l$ $\displaystyle =4$    
$\displaystyle 7k+l$ $\displaystyle =3.$    

Ovo je sustav s pet jednadžbi i dvije nepoznanice $ k$ i $ l$ . Matrični zapis sustava glasi (vidi [*]M1, poglavlje 2.2)

$\displaystyle \begin{bmatrix}1 & 1 3 & 1 4 & 1 6 & 1 7 & 1
\end{bmatrix...
...atrix}k l
\end{bmatrix}=
\begin{bmatrix}1  3  2  4  3
\end{bmatrix},
$

odnosno $ A\mathbf{x}=\mathbf{b}$ gdje je

$\displaystyle A=\begin{bmatrix}1 & 1 3 & 1 4 & 1 6 & 1 7 & 1
\end{bmatr...
...ad
\mathbf{b}=\mathbf{y}= \begin{bmatrix}1  3  2  4  3
\end{bmatrix}.
$

Ne postoji pravac koji prolazi kroz zadane točke pa zadani sustav očito nije rješiv i postavlja se pitanje što možemo napraviti. Ako bi sustav bio rješiv, onda bi vrijedilo $ A\mathbf{x} - \mathbf{b}=0$ odnosno $ \Vert A\mathbf{x} - \mathbf{b}\Vert=0$ pa je prirodan zahtjev da izraz $ A\mathbf{x} - \mathbf{b}$ bude što bliži nul-stupcu, odnosno da norma $ \Vert A\mathbf{x} - \mathbf{b}\Vert$ bude što manja moguća. Taj zahtjev matematički zapisujemo kao

$\displaystyle \Vert A\mathbf{x} - \mathbf{b}\Vert \to \min.
$

Ako je $ x$ rješenje ovog problema, onda je $ x$ također i rješenje problema

$\displaystyle \Vert A\mathbf{x} - \mathbf{b}\Vert^2 \to \min
$

pa naziv problem najmanjih kvadrata slijedi iz definicije norme vektora.

Postupak za rješavanje problema najmanjih kvadrata je u ovom slučaju jednostavan: rješenje $ \mathbf{x}$ dobit ćemo kao rješenje sustava od dvije jednadžbe i dvije nepoznanice6.1

$\displaystyle A^T A \mathbf{x}=A^T \mathbf{b}.
$

Vrijedi

$\displaystyle A^TA=\begin{bmatrix}111 & 21  21 & 5
\end{bmatrix}, \qquad
A^T \mathbf{b}= \begin{bmatrix}63 13
\end{bmatrix}$

pa rješenje $ x$ dobijemo kao rješenje sustava

$\displaystyle \begin{bmatrix}111 & 21  21 & 5
\end{bmatrix} \begin{bmatrix}k l
\end{bmatrix} = \begin{bmatrix}63 13
\end{bmatrix}.
$

Ovaj sustav možemo lako riješiti Gaussovom eliminacijom (vidi [*]M1, poglavlje 2.4) ili, još jednostavnije, Cramerovim pravilom (vidi [*]M1, poglavlje 2.9.5):

$\displaystyle k=\frac{\begin{vmatrix}63 & 21  13 & 5
\end{vmatrix}}{\begin{vm...
...nd{vmatrix}}{\begin{vmatrix}111 & 21  21 & 5
\end{vmatrix}}=\frac{120}{114}.
$

Geometrijska interpretacija rješenja je sljedeća (vidi sliku 6.2): pravac $ y=kx+l$ "najbolje" prolazi točkama $ (x_i,y_i)$ , $ i=1,2,\ldots, 5$ u smislu da je suma kvadrata udaljenosti između zadanih točaka $ (x_i,y_i)$ i točaka na pravcu $ (x_i,kx_i+l)$ minimalna. Drugim riječima,

$\displaystyle \sum_{i=1}^5 [y_i - (kx_i+l)]^2 \to \min.
$

Slika: Rješenje problema najmanjih kvadrata
Image ls2

Napomena 6.1   Ravninski problem najmanjih kvadrata zove se linearna regresija, a pravac $ y=kx+l$ zove se regresijski pravac.

Rješenje prethodnog problem i slike 6.1 i 6.2 mogu se dobiti pomoću sljedećeg Matlab (Octave) programa

Octave On-line

     


[Octave On-line Home]    [Octave User's Guide]

U Matlabovoj sintaksi A' je transponirana matrica matrice $ A$ , ones(5,1) je vektor dimenzije $ 5\times 1$ sa svim elementima jednakim $ 1$ , dok izraz oblika x=A\b daje rješenje sustava $ Ax=b$ . Štoviše, u slučaju preodređenog sustava kao u našem primjeru, Matlabova naredba xLS=A\b automatski daje rješenje problema najmanjih kvadrata. Zamijenite liniju xLS=(A'*A)\(A'*b) s xLS=A\b i uvjerite se da su rješenja ista!

Zadatak 6.1   Kroz točke

$\displaystyle \begin{tabular}{r\vert lllll}
x & -1 & 1 & 2 & 3 & 5 \hline
y & 1 & 0 & 1 & 2 & 3
\end{tabular}$

provucite najbolji pravac u smislu najmanjih kvadrata. Nacrtajte zadane točke i dobiveni pravac te provjerite rješenje pomoću Matlaba ili programa Octave On-line.

Zadatak 6.2   Prema podacima Državnog zavoda za statistiku6.2 prosječna neto plaća u siječnju navedenih godina bila je sljedeća:

$\displaystyle \begin{tabular}{r\vert lllllll}
siječanj &
2007& 2008& 2009& 20...
...e
plaća (kn) & 4.739& 5.019& 5.307& 5.258& 5.342& 5.463& 5.529
\end{tabular}.
$

Izračunajte i nacrtajte regresijski pravac, predvidite neto plaću za siječanj 2018. i usporedite sa stvarnim iznosom. Za računanje možete koristiti Matlab ili program Octave On-line.


Problem najmanjih kvadrata     Problem najmanjih kvadrata     Metoda najmanjih kvadrata