A review of spline function procedures in R

Termín „spline“ odkazuje na řemeslnický nástroj, pružný tenký pás dřeva nebo kovu, který se používá k navrhování hladkých křivek. Na různých místech se používalo několik závaží, takže se pásek ohýbal podle jejich počtu a polohy. Ten by byl nucen procházet soustavou pevných bodů: kovovými kolíky, žebry lodi atd. Na rovné ploše to často byla závaží s připevněným háčkem, a tak se s nimi snadno manipulovalo. Tvar ohýbaného materiálu by měl přirozeně podobu drážkované křivky. Podobně se splajny používají ve statistice, aby bylo možné matematicky reprodukovat pružné tvary. Uzly se umísťují na několika místech v rozsahu dat, aby se určily body, kde se sousední funkční kusy navzájem spojují. Namísto kovových nebo dřevěných pruhů se volí hladké funkční kusy (obvykle polynomy nízkého řádu), které odpovídají datům mezi dvěma po sobě jdoucími uzly. Typ polynomu a počet a umístění uzlů pak určuje typ splajnu.

Motivační příklad

S zavedením zobecněných aditivních modelů (GAM) v roce 1986 se použití splajnového modelování stalo zavedeným nástrojem statistické regresní analýzy. Pro ilustraci uvažujme údaje o souboru 892 žen mladších 50 let shromážděných ve třech vesnicích v západní Africe (údaje jsou k dispozici v Dodatkovém souboru 1: Dodatek). Rádi bychom prozkoumali vztah mezi věkem (v letech) a hrubým měřítkem tělesného tuku, kterým je tloušťka tricepsové kožní řasy. Obrázek 1 ukazuje vztah mezi věkem a tloušťkou tricepsové kožní řasy měřenou v logaritmickém měřítku. Více informací o údajích naleznete na .

Obr. 1

Kresba věku v letech v závislosti na tloušťce tricepsové kožní řasy pro 892 žen v západní Africe . Čárkovaná čára představuje jednoduchý lineární fit, plná čára fit pomocí ohebných polynomů třetího stupně

Prostý regresní model ve tvaru yi=β0+β1xi+ε,i=1,…,n, by stěží poskytl aproximaci pozorovaného vzorce, protože je zřejmé, že vztah není lineární. Model lze rozšířit tak, aby zohledňoval nelineární vlivy pomocí některých polynomů. Pak by nelineární účinky mohly být modelovány polynomem stupně 3, který je dán vztahem:

$$ y_{i}=\alfa_{0}+\alfa_{1} u_{i}+\alfa_{2} u_{i}^{2}+\alfa_{3} u_{i}^{3}+\epsilon $$
(1)

kde u je funkce x zvaná bázická funkce, zde definovaná takto:

$$U=\left $$

Regresní model popsaný v rovnici 1 je stále lineárním modelem, přestože poskytuje nelineární funkci predikční proměnné. Model je stále lineární, pokud jde o koeficienty, a lze jej přizpůsobit pomocí metod obyčejných nejmenších čtverců. Základ lze vytvořit v R pomocí funkce poly(x,3) se vstupy x (odkazující na proměnnou) a p (odkazující na stupeň polynomu). To vede k jednoduchému jednorozměrnému hladkému modelu ve tvaru: yi=f(xi)+ε, kde f() je nějaká funkce/transformace prediktoru. Takový model lze v R snadno fitovat pomocí: lm(y ∼poly(x,3)). Navzdory jednoduchosti má polynomická regrese několik nevýhod, z nichž nejdůležitější je nelokálnost. To znamená, že fitovaná funkce při dané hodnotě x0 závisí na hodnotách dat vzdálených od tohoto bodu. To lze snadno vidět v praxi tak, že na soubor dat dosadíme polynom a jeden z datových bodů poblíž pravého okraje posuneme nahoru nebo dolů. V důsledku toho se fitovaná funkce obvykle změní daleko od této souřadnice x.

Zvažte místo fitování globálního polynomu rozdělení rozsahu x na menší intervaly s využitím libovolného počtu a polohy bodů τ, nazývaných také uzly. Jednoduchý po částech spojitý model lze přizpůsobit definováním funkcí: f1(x)=1,f2(x)=x,f3(x)=(x-τ1)+,f4(x)=(x-τ2)+,…, přičemž „+“ je funkce definovaná jako:

$$u_{+}=\levice\{ \begin{array}{cc} u, & \text{if}\, u>0\\ 0, & \text{if}\, u\leq 0 \end{array}\pravo. $$

Soubor těchto funkcí vede ke složené funkci f(x).

Definice drážkování

Kovový drážkovač může nabývat libovolných tvarů, například průřezu křídla letadla nebo spirály odstředivého čerpadla. Pro statistické aplikace budeme předpokládat křivky ve tvaru f(X), tj. jednu hodnotu y pro každé x. Prediktor x může být jedna proměnná nebo více proměnných. Naše diskuse se téměř výhradně zaměří na jednorozměrnou funkci s \(X\v \mathbb {R}\). Definujte množinu uzlů τ1<…<τK v oboru X. Splin f(X) bude hladká funkce splňující určité vlastnosti diferencovatelnosti uvedené níže, taková, že f(X) je polynom stupně d. Dřevěné nebo kovové spliny mají spojité derivace všech řádů, protože jsou fyzikálním objektem. To neplatí pro statistické splajny. Spíše zavedeme kritérium hladkosti, že všechny derivace řádu menšího než d jsou spojité. Fyzikální spline je lineární za posledním uzlem a můžeme zavést další omezení, že derivace řádu 2 nebo větší jsou nulové v nejlevějším a nejpravějším uzlu; spliny s tímto dalším omezením se nazývají „omezené“ nebo „přirozené“ spliny. Pro získání pružnějších křivek lze zvýšit počet uzlů nebo stupeň polynomu. Existuje však kompromis; zvýšení počtu uzlů může způsobit nadměrné přizpůsobení datům a zvýšit rozptyl, zatímco snížení počtu uzlů může vést k rigidní a restriktivní funkci, která má větší zkreslení.

Prezentace pomocí bázových funkcí

Předpokládejme, že neznámá funkce f je reprezentována spline funkcí s pevnou posloupností uzlů a pevným stupněm d. Protože tyto funkce tvoří vektorový prostor V, je možné zapsat f jako

$$ f(X)=\sum\limits_{k=1}^{K+d+1}\beta_{k}. B_{k} (X) \,, $$
(2)

kde Bk je množina bázických funkcí definujících V a βk jsou přidružené spline koeficienty. S uzly existuje k+1 polynomů stupně d spolu s d∗k omezeními, což vede k (d+1)(k+1)-d∗k=d+k+1 volným parametrům ; pro přirozený spline existuje k volných parametrů. Protože βB=(βA)(A-1B)=γB∗ pro libovolnou nesingulární matici A existuje nekonečný počet možných bází pro fitování splajnu.

Zobrazení v (2) má tu výhodu, že odhad f se redukuje na odhad koeficientů βk. Přesněji řečeno, výraz v (2) je lineární ve vektoru koeficientů β=(β1,…,βK+d+1). Proto lze na odhad f pohlížet jako na optimalizační problém, který je lineární v transformovaných proměnných B1(X),…,BK+d+1(X), což umožňuje použít dobře zavedené techniky odhadu pro použití splajnů v široké škále (zobecněných) vícerozměrných regresních modelů. Důležité je, že splinové modelování omezuje odhad funkcí f() na odhad malé množiny koeficientů s reálnou hodnotou.

Jak upozorňují různí autoři (např. vysoká flexibilita splinového modelování je za cenu řady ladicích parametrů. Ukazuje se, že dva z nich, volba bázových funkcí B a stupeň d základních polynomů, mají malý vliv. Ve skutečnosti jsou splinová přizpůsobení pozoruhodně odolná vůči stupni d. Obvyklým standardem jsou kubické polynomy (d=3), protože jejich výsledkem jsou křivky, které se lidskému oku jeví jako dokonale hladké. Pokud nás zajímají derivace fitovaných křivek, je někdy vhodný vyšší řád, ale obecně jsou fitování pro d>3 fakticky nerozlišitelná. Přizpůsobení s d=1 nebo d=2 mají téměř identické statistické vlastnosti, ale budou se jevit více zubaté. Volba mezi dvěma základními množinami B a B∗ z definice nezmění předpovědi z fitování, a tak se omezí na otázky pohodlí.

Dvě klíčové volby se týkají počtu a vzdálenosti uzlů a použití (nebo nepoužití) trestné funkce, např. integrované druhé derivace splajnu. Pokud není použita penalizace, lze vytvoření transformovaných proměnných provést samostatně a nové proměnné se jednoduše zahrnou do standardního přizpůsobení modelu; není nutná žádná úprava základního regresního postupu. Tento přístup se často označuje jako regresní splajny; flexibilita výsledné nelineární funkce je zcela závislá na počtu uzlů. Zahrnutí vyhlazovací penalizace naproti tomu vyžaduje úpravu postupu fitování, aby ji bylo možné zohlednit. Tu je třeba zahrnout do každé regresní funkce zvlášť. Výsledné vyhlazovací splajny mají několik žádoucích vlastností, ale přidaná složitost vyhlazovací funkce může být důvodem, proč nebyly častěji používány v aplikačním prostředí.

Ačkoli byl proveden rozsáhlý výzkum zaměřený na zkoumání matematických vlastností různých splajnových přístupů (viz , zdá se, že aplikovaní statistici a datoví analytici si těchto výsledků při používání splajnového modelování v praktických aplikacích téměř nejsou vědomi. Ve skutečnosti mnoho článků zjištěných naším internetovým vyhledáváním neobsahovalo žádné zdůvodnění volby použité spline metody.

Populární spline báze

Existuje mnoho možností definice bázových funkcí Bk, přičemž různé spline báze se liší s ohledem na jejich numerické vlastnosti . V této části představíme některé z nejoblíbenějších splajnových bází, a to bázi zkrácené mocninné řady, bázi B-splajnu a bázi kardinálního splajnu.

Zkrácená mocninná řada a kubické splajny

Báze zkrácené mocninné řady je definována bázovými funkcemi

$$B_{1}(x) = 1, B_{2}(x) = x,…., B_{d+1}(x) = x^{d}, $$
$$B_{d+2}(x) = (x- \tau_{1})_{+}^{d},…, B_{K+d+1} = (x -\tau_{k})_{+}^{d} $$

Výhodou výše uvedených bázových funkcí je jejich snadná interpretace: Vycházíme ze „základního“ polynomu stupně d definovaného na (první řádek rovnice), odchylky od základního polynomu se postupně přidávají ke spline funkci napravo od každého z K uzlů (druhý řádek). Zkrácený mocninný základní spline je d-1krát diferencovatelný v uzlech a má d+K stupňů volnosti. Pro uživatele je poměrně snadné vytvořit zkrácenou mocninnou řadu v R. Nechť x představuje nějaké pozorování v , pak lze vytvořit zkrácenou mocninnou bázi stupně d=3 s 5 uzly rovnoměrně rozmístěnými uvnitř podél rozsahu x pomocí kódu 1 v Additional file 1: Appendix (obr. 1). 2).

Obr. 2

Truncated polynomials spline basis functions of third degree (d=3) with five equidistant nodes (K=5). Graf vytvořený pomocí kódu č. 1 v Doplňkovém souboru 1: Dodatek

Vlastností zkrácených mocninných řad je, že podpory funkcí nejsou lokální, přičemž některé Bk jsou definovány v celém rozsahu dat . To může vést k vysokým korelacím mezi některými bázovými splajny, což znamená numerickou nestabilitu při odhadu splajnů. Pro bázi zkrácených mocninných řad je uveden příklad v , kapitola 5.

Kubické splajny se vytvářejí pomocí kubického polynomu v intervalu mezi dvěma po sobě jdoucími uzly. Spline má čtyři parametry na každé z oblastí K+1 minus tři omezení pro každý uzel, což dává K+4 stupně volnosti.

Kubická spline funkce, se třemi uzly (τ1,τ2,τ3) bude mít 7 stupňů volnosti. Při použití reprezentace uvedené v rovnici 2 lze funkci zapsat jako:

$$ f(X)= \beta_{0} + \beta_{1} X + \beta_{2} X^{2} + \beta_{3} X^{3} + \beta_{4} (X-\tau_{1})^{3} + \beta_{5} (X-\tau_{2})^{3} + \beta_{6} (X-\tau_{3})^{3}} $$

B-spline

B-spline báze je běžně používaná spline báze, která je založena na speciální parametrizaci kubického splinu. B-spline báze , je založena na uzlové posloupnosti

$$\begin{aligned}. \xi_{1} \le \ldots &\le \xi_{d} \le \xi_{d+1} < \xi_{d+2} \xi_{d+2} < \ldots < \xi_{d + K + 1} \\ &< \xi_{d + K + 2} \le \xi_{d + K + 3} \le \ldots \le \xi_{2d + K + 2} \,, \end{aligned} $$

kde množiny ξd+2 := τ1,…,ξd+K+1:=τK a ξd+1:=a,ξd+K+2:=b se označují jako „vnitřní uzly“, respektive „hraniční uzly“. Volba dalších uzlů ξ1,…,ξd a ξd+K+3,…,ξ2d+K+2 je v podstatě libovolná. Obvyklou strategií je nastavit je jako hraniční uzly. Alternativně, pokud jsou vnitřní uzly a hraniční uzly ξd+1<…<ξd+K+2 zvoleny jako stejně vzdálené, tj, ξk+1-ξk=δ ∀k∈{d+1,…,d+K+1}, mohou být hraniční uzly umístěny v bodech ξd+1-δ,…,ξd+1-d-δ a ξd+K+2+δ,…,ξd+K+2+d-δ.

Pro d>0 jsou B-spline bázové funkce stupně d (označené \(B_{k}^{d}(x)\)) definovány rekurzivním vzorcemPoznámka 1

$$ \begin{aligned} B_{k}^{d}(x)&=\frac{x-\xi_{k}}{\xi_{k+d}-\xi_{k}}B_{k}^{d-1}(x)-\frac{\xi_{k+d+1}-x}{\xi_{k+d+1}-\xi_{k+1}}B_{k+1}^{d-1}(x),\\k &= 1,…,K+d+1, \end{aligned} $$

kde

$$B_{k}^{0}(x)=\left\{ \begin{array}{cc} 1, & \xi_{k} \leq x < \xi_{k+1}\\ 0, & \text{else} \end{array} \right. $$

a \(B_{k}^{0}(x) \equiv 0\), jestliže ξk=ξk+1. Výhodou B-splinů je, že bázové funkce mají lokální podporu. Přesněji řečeno, jsou větší než nula v intervalech pokrytých d+2 uzly a nulové jinde. Tato vlastnost vede k vysoké numerické stabilitě a také k efektivnímu algoritmu pro konstrukci bázových funkcí, podrobnosti viz

Přirozené kubické a kardinální splajny

Polynomický splajn, jako je kubický nebo B-splajn, může být na hranicích dat nepravidelný. K řešení tohoto problému slouží přirozené splajny, což jsou kubické splajny, které mají navíc omezení, že jsou lineární v chvostech hraničních uzlů (-∞,a],, kapitola 4.

Kromě přirozených splajnů se zkrácenou mocninnou řadou, B-splajnu a kardinálního splajnu existují různé další – méně populární – báze. Pro přehled odkazujeme na knihy .

Penalizované splajny

Dosud představené splajny se často označují jako regresní splajny. Kromě volby báze splajnu (B-splajn, zkrácená mocninná řada atd.) je třeba zvolit počet uzlů a polohu uzlů. Je zřejmé, že tyto parametry ladění mohou mít významný vliv na odhadovaný tvar spline funkce: Velký počet uzlů znamená vysokou flexibilitu, ale může také vést k nadměrnému přizpůsobení daným datům. Naopak malý počet uzlů může vést k „příliš hladkému“ odhadu, který je náchylný k nedostatečnému přizpůsobení (viz ).

Oblíbeným přístupem k usnadnění volby polohy uzlů při modelování pomocí splajnů je použití penalizovaných splajnů. Při daném i.i.d. vzorku dat (x1,y1),…(xn,yn) je penalizovaný spline řešením úlohy

$$\hat{\beta} = \text{argmax}_{\beta} \levice \,, $$

kde lβ označuje logaritmickou pravděpodobnost (popř, v případě Coxovy regrese částečnou logaritmickou pravděpodobnost) a Jr je postih za drsnost, který je malý, pokud je spline funkce „hladká“. Obecně jsou penalizované splajny založeny na myšlence, že neznámá funkce f je modelována splajnem s velkým počtem uzlů, což umožňuje vysoký stupeň flexibility. Na druhé straně hrubý odhad splinu, který má vysokou hodnotu lβ a je blízký hodnotám dat, vede k velké hodnotě Jβ. Maximalizace této funkce tedy znamená kompromis mezi hladkostí a vhodností modelu, který je řízen ladicím parametrem λ≥0.

Speciálním případem je penalizovaný problém nejmenších čtverců

$$ \hat{\beta} = \text{argmin}_{\beta} \left $$
(3)

v Gaussově regresi. Penále \(J_{\beta } \,=\, \int _{a}^{b} \left (\partial ^{2} f / \partial x^{2}\right)^{2} dx\) vyjadřuje „hladkost“ splinové funkce ve smyslu druhé derivace f. Pro dané λ lze ukázat, že řešením je přirozený kubický spline s uzlovou posloupností x(1)<…<x(n), tj, polohy uzlů není třeba volit, ale jsou „přirozeně“ dány uspořádanými jedinečnými datovými hodnotami X. V literatuře se tento typ splajnu označuje jako vyhlazovací splajn . Za zmínku stojí, že lze ukázat, že vyhlazovací spline interpoluje data, pokud λ=0, zatímco λ=∞ znamená lineární funkci. Všimněte si, že vyhlazovací splajny jsou speciálním případem obecnější třídy tenkých deskových splajnů , které umožňují rozšíření kritéria v rovnici (3) na vyšší dimenze xi (viz , oddíl 4.15], a podrobnosti).

Vhodnou vlastností vyhlazovacích splajnů je, že penalizaci Jβ lze zapsat jako β⊤Ωβ s vhodně definovanou penalizační maticí Ω. Řešení (3) je tedy dáno penalizovaným odhadem nejmenších čtverců

$$ \hat{\beta} = \left(B^{\top} B + \lambda \Omega\right)^{-1} B^{\top} y $$
(4)

kde B je matice rozměru n×n obsahující přirozené bázové funkce splinu vyhodnocené na hodnotách dat. Vektor y obsahuje hodnoty odezvy y1,…,yn. V praxi existují velmi účinné algoritmy pro výpočet \(\hat {\beta }\) v (4) . Místo zadání přirozené splinové báze pro f je dále možné pracovat s neomezenou B-splinovou bází, protože penalizace v (3) automaticky ukládá omezení linearity v uzlech x(1) a x(n) (viz , kapitola 5 a , kapitola 2). Pokud jde o B-spline bázi, výsledky odhadu nebudou záviset na volbě hraničních uzlů:buď je možné použít x(1) a x(n) jako hraniční uzly, nebo zahrnout x(1) a x(n) do množiny vnitřních uzlů.

Je-li n velké a interval je hustě pokryt pozorovanými daty, obvykle není nutné umístit uzel na každé xi,i=1,…,n. Místo toho lze vyhlazovací spline aproximovat penalizovaným regresním spline, který používá redukovanou množinu uzlů. Velmi oblíbenou třídou penalizovaných regresních splajnů jsou P-splajny , které jsou založeny na kubickém základu B-splajnu a na „velké“ množině ekvidistantních uzlů (obvykle 10-40). Místo vyhodnocování integrálu v (3) jsou P-spliny založeny na rozdílové penalizaci druhého řádu definované vztahem

$$J^{*}_{\beta} = \sum\limits_{k=3}^{K+4} \left(\Delta^{2} \beta_{k} \right)^{2} \,, $$

což lze v případě rovnoměrně rozmístěných uzlů ukázat jako aproximaci Jβ. Diferenční operátor druhého řádu Δ2 je definován vztahem Δ2βk:=(βk-βk-1)-(βk-1-βk-2). Penále lze tedy vyjádřit jako β⊤Pβ, kde P je definováno D⊤D, přičemž D je matice diferencí. Lze snadno odvodit, že výsledný odhad β má stejnou strukturu jako 2, přičemž Ω je nahrazeno P.

Výhodnou vlastností P-splinů je, že jsou numericky stabilní a velmi snadno se definují a implementují. Zejména je mnohem jednodušší stanovit rozdílovou matici D než matici Ω. Rovněž je jednoduché rozšířit penalizaci Jβ (a tedy i matici D) na rozdíly vyšších řádů Δq s q>2. Je také možné použít posloupnost uzlů, která není rovnoměrně rozložena; v takovém případě je třeba zavést váhy. Protože P-splajny s nerovnoměrně rozmístěnými uzly se v praxi používají zřídka, neuvažujeme je zde a místo toho odkazujeme na

Vyhlazovací splajny a P-splajny problém výběru uzlů do určité míry překonávají. Jejich filozofií je použít velký počet uzlů a pak nechat λ řídit míru vyhlazení. Výsledkem je jeden ladicí parametr navíc, přičemž neexistuje obecná shoda na tom, jak tento parametr ladit. Některé populární způsoby určení „optimální“ hodnoty λ používají zobecněnou křížovou validaci (GCV), AIC nebo reprezentaci smíšeného modelu .

Spliny v R

Základní instalační balík R obsahuje sadu funkcí, které umí napasovat jednoduché polynomiální spliny a vyhlazovací spliny. Další funkce jsou obsaženy v knihovně splines, kterou napsali DM Bates a WN Venables. Tento balíček je již mnoho let pracovním koněm pro fitování splinů a nyní je součástí základní distribuce R. Existuje více než 100 dalších balíčků, které při načítání závisí na splinech. Balík obsahuje několik funkcí pro tvorbu bází splajnů, například bs pro B-splajny a ns pro přirozené splajny, které jsou široce používány, ale také některé specializovanější funkce pro tvorbu bázových funkcí (například periodicSpline, která vytváří periodické interpolační splajny) nebo užitečné příkazy, například příkaz predict.bSpline, který by vyhodnotil spline při nových hodnotách X.

Výchozí hodnoty bs vytvoří kubickou bázi B-spline se dvěma hraničními uzly a jedním vnitřním uzlem umístěným na mediánu hodnot pozorovaných dat. Větší flexibility může uživatel dosáhnout zvýšením umístění a počtu uzlů a/nebo změnou jejich umístění. Obrázek 3 (kód 2 v Doplňkovém souboru 1: Dodatek) ukazuje B-spliny vytvořené s různými možnostmi. Horní část představuje lineární splajny, tj. polynomy prvního řádu (stupeň je jedna) spojené na stejně vzdálených uzlech. Spodní část představuje kubické polynomy (stupeň 3).

Obr. 3

Báze B-splinů pomocí příkazu bs v knihovně splines. Vlevo nahoře: Spline báze prvního stupně se třemi stupni volnosti. Vpravo nahoře: Spline báze prvního stupně se čtyřmi stupni volnosti. Vlevo dole: Kubický splineový základ se třemi stupni volnosti. Vpravo dole: Kubický splineový základ se čtyřmi stupni volnosti. Grafy vytvořené pomocí kódu č. 2

Je třeba poznamenat, že B-spliny vytvořené v R pomocí bs() jsou automaticky ohraničeny rozsahem dat a že další uzly (τ1,…,τd) jsou nastaveny stejně jako hraniční uzly, což dává více uzlů na obou koncích oblasti. Tento přístup je užitečný v jednorozměrných případech a má některé výpočetně atraktivní vlastnosti. Pokud však pracujeme na dvourozměrném problému vyhlazování, používáme-li tenzorové součin B-splinů nebo pracujeme-li s P-spliny, je tato báze nevhodná a může vést k falešným výsledkům.

Přirozené spliny lze vytvořit v rámci balíku splines pomocí příkazu ns. Ve výchozím nastavení, pokud uživatel nezadá ani stupně volnosti, ani uzly, funkce vrátí přímku v rámci hraničních uzlů. Obrázek 4 (kód 3 v Doplňkovém souboru 1: Dodatek ukazuje přirozené splajny vytvořené s různými možnostmi.

Obr. 4

Přirozený kubický splajn založený pomocí příkazu ns v knihovně splines. Vlevo nahoře: Spline báze se dvěma stupni volnosti. Vpravo nahoře: Spline báze se třemi stupni volnosti. Vlevo dole: Spline báze se čtyřmi stupni volnosti. Vpravo dole: Spline báze s pěti stupni volnosti. Vytvořeno pomocí Code#3

Pro ilustraci, jak lze tyto funkce použít v praxi, uvažujme opět data z části 2.0.1. Obrázek 5 (vytvořený pomocí (kód 4 v Doplňkovém souboru 1: Dodatek)) ukazuje shody získané pomocí následujících příkazů: poly() pro jednoduché ortogonální polynomické splajny, smooth.spline() pro vyhlazovací splajny, bs() a ns() z knihovny splajnů, pro B-splajny, resp. přirozené splajny. Levý horní graf ukazuje jednoduchý lineární fit na data (čárkovaná čára) a polynomický fit třetího stupně, který je schopen zachytit složitější vztah mezi proměnnými. Graf v pravém horním rohu je však obzvláště zajímavý, protože představuje uložení s použitím výchozích hodnot splajnových funkcí. Zelená čára pochází z funkcí poly() a ns(), které ve výchozím nastavení obě definují přímku. Na druhém pólu je modrá čára fit z funkce smooth.spline(), která, pokud nejsou zadány žádné stupně volnosti, má tendenci data nevyhlazovat, tj. vytváří velmi pružný vlnitý fit založený -zde- na 45 stupních volnosti. Vizuálně rozumného přizpůsobení datům lze dosáhnout, pokud jsou zadány čtyři stupně volnosti (graf vlevo dole). Je vidět, že existují určité rozdíly v závislosti na zvolené základně. Polynomický základ (černá čára) je o něco pružnější než ostatní, zejména ve vyšším věku. Na druhou stranu vyhlazovací spline omezený na pouhé čtyři stupně volnosti je rigidnější než ostatní přístupy, ale pravděpodobně příliš vyhlazuje data v malých věcích, mezi 0 a 10 lety. Mezi těmito dvěma extrémy poskytují B-splajny a přirozené splajny velmi podobná přizpůsobení, která zachycují vliv malého věku a mají tendenci být méně ovlivněna extrémními případy na konci věkového spektra. A konečně pravý dolní graf ukazuje, o kolik pružnějšími se stávají fitování s dalšími stupni volnosti, a naznačuje potenciální zkreslení nadměrného fitování v důsledku použití nadměrného počtu stupňů volnosti.

Obr. 5

Kraf věku v letech v závislosti na tloušťce tricepsové kožní řasy pro 892 žen v západní Africe. Vlevo nahoře: Čárkovaná čára představuje jednoduchý lineární fit, plná čára fit pomocí flexibilních polynomů třetího stupně. Vpravo nahoře: Spline fit s použitím výchozích hodnot R. Zelená čára představuje výsledek polynomického splinu stupně 1 (výchozí hodnota pro funkci poly a fit z přirozeného splinu bez zadaných stupňů volnosti (výchozí hodnota pro funkce ns). Červená čára pochází z b-splinu se třemi stupni volnosti (funkce bs a modrá čára z vyhlazovacího splinu (z funkce smooth.spline). Vlevo dole: Černá čára je polynomický fit, červená čára b-spline fit, zelená čára je přirozený spline fit a vyhlazovací spline, všechny definované se čtyřmi stupni volnosti. Vpravo dole: Stejné funkce definované s deseti stupni volnosti. Vytvořeno pomocí kódu č. 4

Poznámka ke stupňům volnosti

V praxi je vždy užitečné definovat spline pomocí stupňů volnosti. Tento přístup je užitečný zejména při práci s B-splajny a přirozenými splajny. B-splajny mají d+K, zatímco přirozená kubická bázová funkce splajnu s K uzly má K+1 stupňů volnosti, resp. Ve výchozím nastavení funkce bs v R vytváří B-splajny stupně 3 bez vnitřních uzlů a s hraničními uzly definovanými v rozsahu proměnné X. Funkce jako taková vytváří tři bázové funkce. Nyní uvažujme následující případ: když uživatel definuje B-spline s vnitřním uzlem na mediánu X (bs(x,knots=median(x))), software vytvoří čtyři funkce (d=3 plus K=1 vnitřní uzly, čtyři stupně volnosti). Pokud však uživatel zadá ve funkci hraniční uzly v rámci argumentu knots (bs(x,knots=c(min(x),median(x),max(x)))), bude mít funkce šest stupňů volnosti (d =3 plus k =3). Podobnou opatrnost je třeba věnovat i funkci ns.

Při práci s vyhlazovacími splajny není snadné určit stupně volnosti, protože se budou lišit v závislosti na velikosti penalizace. V praxi však lze penalizované splajny také omezit na maximální počet stupňů volnosti nebo požadovaných stupňů volnosti.

Jiné balíčky splajnů

Všeobecně řečeno, rozšířený seznam balíčků splajnů obsahuje buď přístupy, které jsou dosti podobné tomu, co je zde uvedeno, nebo velmi specializované případy, které se zaměřují na konkrétní aplikace. V tabulce 1 jsou uvedeny některé z těchto balíčků spolu s počtem stažení. Čísla se týkají počtu stažení balíčku, nikoliv však unikátních uživatelů. Podrobný popis všech těchto přístupů přesahuje rámec této práce.

Tabulka 1 Balíky R používané pro tvorbu splajnů

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.