C.2 Interpolace a regrese
Interpolací rozumíme nahrazení složitější funkční závislosti závislostí jednodušší, tedy aproximace dané funkce jinou vhodnou funkcí. Interpolační aproximací rozumíme interpolaci diskrétní funkce, tj. funkce, dané konečným souborem bodů definičního oboru a jim přiřazených funkčních hodnot (reprezentovaných zpravidla tabulkou), pomocí funkce, nabývající v těchto bodech stejných hodnot jako původní zadaná funkce. Nejvhodnějšími interpolačními funkcemi jsou polynomy, např. tzv. Lagrangeův a Newtonův interpolační polynom (Humlíček, 2009; Vitásek, 1987) nebo tzv. splajny. V následujícím odstavci C.2.1 je stručně ukázán často používaný tzv. kubický interpolační splajn.
Regresí (regresní analýzou) nazýváme hledání takové funkce (tzv. regresní funkce), která nejlépe vystihuje vztah mezi dvěma skupinami proměnných, např. závislost náhodných veličin (naměřených hodnot) na čase, atd. Předem je dáno, která proměnná je nezávislá (vysvětlující nebo také regresor) a která je závislá (vysvětlovaná nebo také odezva). Jednoduchá regrese popisuje závislost odezvy na jednom regresoru, naproti tomu vícenásobná regrese popisuje situaci, kdy odezva závisí na více regresorech. Podle charakteru a průběhu zkoumané závislosti volíme typ regresního modelu, například lineární regresi (proložení závisle proměnných hodnot přímkou), regresi polynomem $n$-tého stupně, atd., a také nejvhodnější statistickou metodu, například metodu nejmenších čtverců nebo tzv. robustní regresi, která eliminuje extrémně vychýlené hodnoty, atd. (viz také pojmy a statistické metody, uvedené v kapitole 12 nebo například na stránkách http://physics.muni.cz/mikulas/zvc.html.
C.2.1 Kubický interpolační splajn
(z anglického spline) je jednou z nejčastěji používaných interpolačních funkcí. Jedná se o tzv. po částech (piecewise) interpolační polynom 3. stupně $s_i$ ve tvaru
definovaný jako
jehož druhé derivace označíme jako $M_i$. Je to tedy soustava kubických funkcí, které na sebe v zadaných bodech $[x_i,y_i]$ navazují jak funkční hodnotou, tak první a druhou derivací. Podle okrajových podmínek rozlišujeme různé typy těchto splajnů, například tzv. přirozený splajn je určen okrajovými podmínkami $M_1=M_n=0$, parabolický ukončený splajn je určen okrajovými podmínkami $M_1=M_2,\,M_n=M_{n-1}$ (extrapolace nultého řádu), kubický ukončený splajn je určen okrajovými podmínkami $M_1=2M_2-M_3,\,M_n=2M_{n-1}-M_{n-2}$ (extrapolace 1. řádu nebo také lineární extrapolace), atd.
Z podmínek spojitosti funkčních hodnot i prvních a druhých derivací v bodech $x_i$, vyplývá pro $i=0,\,\ldots\,,n-1$ následující:
$s_i(x_i)=y_i$ | $s_i(x_{i+1})=y_{i+1},$ | (C.3) | |
$s^\prime_{i-1}(x_i)=s^\prime_{i}(x_i)=c_i$ | $s^{\prime\prime}_{i-1}(x_i)=s^{\prime\prime}_{i}(x_i)=M_i=2b_i,$ | (C.4) |
tyto vnitřní podmínky jsou dále doplněny dvěma uvedenými okrajovými podmínkami, danými typem splajnu. Porovnáním všech uvedených podmínek ve všech uzlových bodech $[x_i,y_i]$ dostáváme soustavu lineárních rovnic pro neznámé druhé derivace $M_i$ ve vnitřních uzlových bodech:
Tuto soustavu rovnic lze zapsat pomocí tzv. tridiagonální matice ve tvaru (kde zavedeme $\Delta x_i=x_{i+1}-x_i$, $\Delta^+x_i=x_{i+1}-x_{i-1}$, $\Delta y_i=y_{i+1}-y_i$, $\Delta_j=\Delta y_j/\Delta x_j$, $\Delta_j^{\,i}=\Delta y_i/\Delta x_i-\Delta y_j/\Delta x_j$):
kterou řešíme například pomocí vhodné knihovny balíčku LAPACK (odstavec C.1). Jednotlivé koeficienty rovnice C.2 potom snadno dopočítáme:
V případě konstantního kroku nezávisle proměnné $x_{i+1}-x_i=h=\text{konst.}$ se rovnice C.5 zjednoduší do podoby
matice C.6 bude mít potom tvar
C.2.2 Lineární regrese metodou nejmenších čtverců
Souborem $n$ diskrétních hodnot odezvy (vysvětlované proměnné) $y_i$, $i=1,\,\ldots\,,n$, který je určen výčtem uspořádaných dvojic $[x_i,y_i]$, proložíme přímku (polynom 1. stupně) $f^\text{I}(x)=kx+q$ tak, aby součet $S$ druhých mocnin tzv. reziduí, tj. vzdáleností bodů $y_i$ od funkčních hodnot $f(x_i)$ v bodech $x_i$ byl minimální (2. mocniny se zde používají kvůli nezávislosti na znaménku odchylky). Dostáváme tedy rovnici
pro dvě neznámé hodnoty $k$ a $q$. Minimalizaci této funkce provedeme položením $\partial S/\partial k=0$ a zároveň $\partial S/\partial q=0$, výsledek můžeme zapsat pomocí maticového formalismu jako
Snadno tak nalezneme výrazy pro oba hledané parametry v závislosti na uspořádané $n$-tici $[x_i,y_i]$ (např. na naměřených hodnotách v závislosti na čase nebo poloze),
Metodu navrhl a poprvé použil Karl Friedrich Gauss pro výpočet geodetických chyb.
C.2.3 Polynomiální regrese metodou nejmenších čtverců
Postup uvedený v předchozím odstavci C.2.2 lze zobecnit pro polynom libovolného ($m$-tého) stupně, kdy analogii rovnice C.10 můžeme přepsat do tvaru (horní indexy zde vždy znamenají mocniny)
kde koeficienty $p_j$ jsou koeficienty $j$-tého stupně polynomu, u lineární regrese tak platí $p_0=q$, $p_1=k$ (viz rovnice C.11). Zároveň je jasné, že počet rovnic $N$ v proceduře LAPACK odpovídá $m+1$. Minimum rovnice C.13 nalezneme, položíme-li $\partial S/\partial p_j=0$, získáme tak soustavu $m+1=N$ lineárních rovnic, které můžeme vyjádřit pomocí maticového zápisu ve tvaru
Výpočetní cyklus procedury LAPACK (viz programový skript v kapitole C.2.2) můžeme takto zobecnit do následující podoby (fortran 95):
V ostatních bodech zůstává programová procedura popsaná v odstavci C.2.2 prakticky nezměněna.
C.2.4 Robustní regrese
V případě, že chceme eliminovat vliv velmi vychýlených (ustřelených
) hodnot, zvolíme
tzv. váženou nebo také robustní regresi. Robustních regresních modelů existuje celá řada (viz například Huber & Ronchetti (2009)),
za všechny zde uvedeme jednoduchou tzv. Tukeyho metodu M-odhadu (Tukey$^\prime$s bisquare method),
založenou na vážení reziduí pomocí dvojí druhé mocniny.
Nejprve spočítáme nevážená rezidua res$\_i=y_i-f(x_i)$ (stejně jako např. v odstavcích C.2.2, C.2.3), potom použijeme následující váhovou funkci:
kde med je medián absolutní odchylky reziduí, kterou můžeme zvolit jako samotné reziduum, nebo odchylku každého rezidua od jejich vlastního mediánu. Váha $w_i=0$, pokud absolutní hodnota rezidua $|\text{res}\_i|>6\,\text{med}$. Extrémně odchýlené hodnoty jsou takto zcela vyřazeny, méně vychýlené hodnoty jsou ponechány, avšak se sníženou váhou.
Naprogramování tohoto robustního (váženého) regresního modelu je snadné, do pravé strany rovnice C.14 vložíme vypočítané váhy:
Pro výpočet mediánu existují v každém programovacím jazyce hotové moduly, jako příklad lze použít následující podprogram, výsledek je zahrnut do rovnice C.15 (fortran 95):