A ‘spline’ kifejezés egy kézműves szerszámra utal, egy rugalmas, vékony fa- vagy fémszalagra, amelyet sima görbék rajzolására használnak. Többféle súlyt alkalmaznának különböző pozíciókban, így a csík ezek számának és helyzetének megfelelően hajlana meg. Ezt arra kényszerítenék, hogy áthaladjon egy sor rögzített ponton: fémcsapokon, egy hajó bordáin stb. Sík felületen ezek gyakran olyan súlyok voltak, amelyekhez kampó volt rögzítve, és így könnyen manipulálhatók voltak. A meghajlított anyag alakja természetesen egy spline görbe formáját venné fel. Hasonlóképpen a spline-okat a statisztikában is használják a rugalmas alakzatok matematikai reprodukálására. Az adattartományon belül több helyen csomópontokat helyeznek el, hogy azonosítsák azokat a pontokat, ahol a szomszédos funkcionális darabok összekapcsolódnak. Fém- vagy facsíkok helyett sima funkcionális darabokat (általában alacsony rendű polinomokat) választanak, hogy illeszkedjenek az adatokhoz két egymást követő csomópont között. A polinom típusa, valamint a csomópontok száma és elhelyezése azután meghatározza a spline típusát.
Motiváló példa
Az általánosított additív modellek (GAM) 1986-os bevezetésével a spline-modellezés a statisztikai regresszióelemzés bevett eszközévé vált. Ennek illusztrálására tekintsük egy 892 50 év alatti nőre vonatkozó, három nyugat-afrikai faluban gyűjtött adathalmaz adatait (az adatok az 1. kiegészítő fájlban: Függelék). Szeretnénk feltárni a kapcsolatot az életkor (években) és a testzsír durva mérőszáma, a tricepsz bőrredő vastagsága között. Az 1. ábra az életkor és a triceps skinfold vastagság közötti kapcsolatot mutatja logaritmikus skálán mérve. Az adatokkal kapcsolatos további információkért lásd .
Az yi=β0+β1xi+ε,i=1,…,n, formájú egyszerű regressziós modell aligha adna közelítést a megfigyelt mintázatra, mivel nyilvánvaló, hogy az összefüggés nem lineáris. A modell néhány polinom segítségével kiterjeszthető a nem lineáris hatások figyelembevételére. Ekkor a nemlineáris hatásokat egy 3. fokú polinommal lehet modellezni, amely a következő módon adódik:
ahol u egy x függvénye, az úgynevezett bázisfüggvény, amelyet itt a következőképpen definiálunk:
Az 1. egyenletben leírt regressziós modell még mindig egy lineáris modell, annak ellenére, hogy a prediktor változó nem lineáris függvényét adja. A modell még mindig lineáris az együtthatók tekintetében, és a szokásos legkisebb négyzetek módszerével illeszthető. Az alapot az R-ben a poly(x,3) függvény segítségével lehet létrehozni x (a változóra utaló) és p (a polinom fokára utaló) bemenetekkel. Ez egy egyszerű egyváltozós sima modellhez vezet a következő formában: yi=f(xi)+ε, ahol f() a prediktor valamilyen függvénye/transzformációja. Egy ilyen modell könnyen illeszthető R-ben a következővel: lm(y ∼poly(x,3)). Az egyszerűség ellenére a polinomiális regressziónak számos hátránya van, a legfontosabb a nem lokalitás. Ez azt jelenti, hogy az illesztett függvény egy adott x0 értéknél az adott ponttól távoli adatértékektől függ. Ezt könnyen láthatjuk a gyakorlatban, ha egy polinomot illesztünk egy adathalmazra, és a jobb széléhez közeli egyik adatpontot felfelé vagy lefelé mozgatjuk. Ennek eredményeképpen az illesztett függvény általában az adott x koordinátától távolabb változik.
A globális polinom illesztése helyett fontolja meg az x tartomány kisebb intervallumokra való felosztását, kihasználva a pontok tetszőleges számú és helyzetű τ értékét, amelyet csomópontoknak is neveznek. Egy egyszerű darabosan folytonos modell illeszthető a következő függvények definiálásával: f1(x)=1,f2(x)=x,f3(x)=(x-τ1)+,f4(x)=(x-τ2)+,…, a “+” függvényt a következőképpen definiáljuk:
E függvények halmaza egy összetett f(x) függvényhez vezet.
A spline-ok definíciója
A rajzoló fém spline tetszőleges formákat vehet fel, például egy repülőgépszárny keresztmetszetét vagy egy centrifugálszivattyú spirálját. A statisztikai alkalmazásokhoz f(X) alakú görbéket feltételezünk, azaz minden x-hez egyetlen y értéket. Az x prediktor lehet egyetlen változó vagy több változó. Tárgyalásunk szinte teljes egészében egy egyváltozós függvényre fog összpontosítani, amelynek \(X\in \mathbb {R}\). Definiáljuk a csomók τ1<…<τK halmazát X tartományában. Az f(X) spline egy olyan sima függvény lesz, amely kielégít bizonyos, alább említett differenciálhatósági tulajdonságokat, úgy, hogy f(X) egy d fokú polinom. A fa- vagy fémspline-oknak minden rendű folytonos deriváltjuk van, mivel fizikai tárgyról van szó. Ez nem igaz a statisztikai spline-okra. Inkább egy simasági kritériumot állítunk fel, hogy minden d-nél kisebb rendű derivált folytonos legyen. Egy fizikai spline az utolsó csomóponton túl lineáris, és egy további megkötést is előírhatunk, hogy a 2. vagy annál nagyobb rendű deriváltak a bal és a jobb szélső csomópontban nulla; az ilyen további megkötést tartalmazó spline-okat “korlátozott” vagy “természetes” spline-oknak nevezzük. A rugalmasabb görbék elérése érdekében a csomók száma vagy a polinom fokozata növelhető. A csomópontok számának növelése túlillesztheti az adatokat és növelheti a varianciát, míg a csomópontok számának csökkentése merev és korlátozó függvényt eredményezhet, amely nagyobb torzítással jár.
Reprezentáció bázisfüggvényekkel
Tegyük fel, hogy az ismeretlen f függvényt egy fix csomósorozattal és fix d fokú spline függvénnyel reprezentáljuk. Mivel az utóbbi függvények egy V vektortérséget alkotnak, az f felírható
ahol a Bk a V-et definiáló bázisfüggvények halmaza, βk pedig a hozzá tartozó spline együtthatók. K csomó esetén k+1 d fokú polinom van d∗k kényszerekkel együtt, ami (d+1)(k+1)-d∗k=d+k+1 szabad paraméterekhez vezet ; egy természetes spline esetében k szabad paraméter van. Mivel βB=(βA)(A-1B)=γB∗ bármely nem szinguláris A mátrixra végtelen számú lehetséges alapkészlet létezik a spline illesztéshez.
A (2) ábrázolásnak megvan az az előnye, hogy az f becslése a βk együtthatók becslésére redukálódik. Pontosabban, a (2) kifejezés lineáris a β=(β1,…,βK+d+1) együtthatóvektorban. Ezért az f becslése olyan optimalizálási problémának tekinthető, amely lineáris a B1(X),…,BK+d+1(X) transzformált változókban, ami lehetővé teszi a spline-ok használatára jól bevált becslési technikák alkalmazását a (általánosított) többváltozós regressziós modellek széles körében. Fontos, hogy a spline-modellezés az f() függvények becslését valós értékű együtthatók kis halmazának becslésére csökkenti.
Amint arra több szerző is rámutatott (pl. a spline-modellezés nagyfokú rugalmassága számos hangolási paraméter árán valósul meg. Ezek közül kettő, a B alapfüggvények megválasztása és a mögöttes polinomok d fokozata kiderül, hogy kevés hatással van. Valójában a spline illesztések figyelemre méltóan robosztusak a d fokkal szemben. A kocka polinomok (d=3) a szokásos szabvány, mivel ezek olyan görbéket eredményeznek, amelyek az emberi szem számára tökéletesen simának tűnnek. Ha az illesztett görbék deriváltjai érdekesek, néha egy magasabb rend is megfelelő, de általában d>3 esetén az illesztések gyakorlatilag megkülönböztethetetlenek. A d=1 vagy d=2-es illesztések közel azonos statisztikai tulajdonságokkal rendelkeznek, de szaggatottabbnak tűnnek. A B és B∗ két alapkészlet közötti választás definíció szerint nem változtatja meg az illesztésből származó előrejelzéseket, és így kényelmi kérdésekre korlátozódik.
A két legfontosabb választás a csomópontok száma és távolsága, valamint egy büntetőfüggvény, pl. a spline integrált második deriváltjának használata (vagy nem használata). Ha nincs büntetés, az átalakított változók létrehozása külön is elvégezhető, és az új változókat egyszerűen beillesztjük egy standard modellillesztésbe; nincs szükség a mögöttes regressziós eljárás módosítására. Ezt a megközelítést gyakran regressziós spline-oknak nevezik; az így kapott nemlineáris függvény rugalmassága teljes mértékben a csomópontok számának függvénye. Ezzel szemben a simító büntetés beépítése az illesztési rutin módosítását igényli. Ezt minden regressziós függvénybe külön-külön kell beépíteni. Az így kapott simító spline-ok számos kívánatos tulajdonsággal rendelkeznek, de a simító függvény hozzáadott bonyolultsága lehet az oka annak, hogy nem használják gyakrabban az alkalmazott környezetben.
Noha jelentős kutatásokat végeztek a különböző spline-megközelítések matematikai tulajdonságainak feltárására (lásd , az alkalmazott statisztikusok és adatelemzők úgy tűnik, alig ismerik ezeket az eredményeket, amikor a spline-modellezést gyakorlati alkalmazásokban használják. Valójában a webes keresésünk által azonosított cikkek közül sok nem tartalmazott indoklást az alkalmazott spline-módszer kiválasztásának indoklásáról.
Népszerű spline-alapok
A Bk alapfüggvények meghatározására számos lehetőség van, ahol a különböző spline-alapok numerikus tulajdonságaik tekintetében különböznek . Ebben a szakaszban bemutatunk néhányat a legnépszerűbb spline-alapok közül, nevezetesen a csonka hatványsoros alapot, a B-spline-alapot és a kardinális spline-alapot.
Csonka hatványsoros és kubikus spline
A csonka hatványsoros alapot a
A fenti alapfüggvények előnye, hogy könnyen értelmezhetők: A d fokú “alap” polinomból kiindulva (az egyenlet első sora), az alappolinomtól való eltéréseket egymás után adjuk hozzá a spline-függvényhez minden egyes K csomópont jobb oldalán (második sor). A csonka hatványbázisú spline d-1-szer differenciálható a csomópontokban, és d+K szabadsági fokkal rendelkezik. Legyen x néhány megfigyelést reprezentál a , akkor egy d=3 fokú csonka hatványalapot lehet létrehozni 5 csomóponttal, amelyek egyenlő távolságra vannak egymástól az x tartomány mentén, az 1. kóddal a Kiegészítő fájl 1: Függelékben (1. ábra). 2).
A csonka hatványsorok jellemzője, hogy a függvények támaszai nem lokálisak, néhány Bk az adatok teljes tartományában meghatározott . Ez egyes bázis spline-ok közötti magas korrelációkhoz vezethet, ami numerikus instabilitást jelent a spline becslésében. A csonka hatványsoros alapra egy példát a , 5. fejezetben találunk.
A kubikus spline-ok úgy jönnek létre, hogy két egymást követő csomópont közötti intervallumban egy köbös polinomot használunk. A spline-nak négy paramétere van minden egyes K+1 tartományban, mínusz három megkötés minden csomópontra, ami K+4 szabadságfokot eredményez.
Egy köbös spline függvény, három csomóponttal (τ1,τ2,τ3) 7 szabadságfokkal rendelkezik. A 2. egyenletben megadott ábrázolással a függvény a következőképpen írható fel:
B-spline
A B-spline alap egy gyakran használt spline alap, amely a köbös spline egy speciális parametrizációján alapul. A B-spline alap , a csomószekvencián
ahol a halmazok ξd+2 := τ1,…,ξd+K+1:=τK és ξd+1:=a,ξd+K+2:=b “belső csomóknak”, illetve “határcsomóknak” nevezzük. A további csomók ξ1,…,ξd és ξd+K+3,…,ξ2d+K+2 kiválasztása lényegében tetszőleges. Egy gyakori stratégia az, hogy ezeket a határcsomókkal egyenlővé tesszük. Alternatív megoldásként, ha a belső csomópontokat és a határcsomópontokat ξd+1<…<ξd+K+2 egyenlő távolságra választjuk, azaz, ξk+1-ξk=δ ∀k∈{d+1,…,d+K+1}, akkor a határcsomók elhelyezhetők a ξd+1-δ,…,ξd+1-d-δ és ξd+K+2+δ,…,ξd+K+2+d-δ pontokban.
D>0 esetén a d fokú B-spline alapfüggvényeket (jelölve \(B_{k}^{d}(x)\)) a rekurzív képlettel határozzuk megLábjegyzet 1
ahol
és \(B_{k}^{0}(x) \equiv 0\) ha ξk=ξk+1. A B-spline-ok előnye, hogy az alapfüggvények lokális támasszal rendelkeznek. Pontosabban, a d+2 csomópont által közrefogott intervallumokban nullánál nagyobbak, máshol pedig nulla. Ez a tulajdonság nagy numerikus stabilitást eredményez, valamint egy hatékony algoritmust az alapfüggvények konstruálására, lásd részletesen.
Természetes köbös és kardinális spline-ok
Egy polinomiális spline, mint például a köbös vagy a B-spline, az adatok határainál hibás lehet. Ennek a problémának a megoldására a természetes spline-ok olyan köbös spline-ok, amelyeknek az a további megkötésük, hogy a határcsomópontok (-∞,a],, 4. fejezetben lineárisak.
A csonka hatványsoros természetes spline-ok, a B-spline és a kardinális spline alapja mellett számos más – kevésbé népszerű – alap létezik. Áttekintés céljából hivatkozunk .
Penalizált spline-ok
Az eddig bemutatott spline-okat gyakran nevezik regressziós spline-oknak. A spline alapjának (B-spline, csonka hatványsor stb.) megválasztása mellett a csomók számát és a csomópozíciót is meg kell választani. Nyilvánvaló, hogy ezek a hangolási paraméterek jelentős hatással lehetnek a spline-függvény becsült alakjára: A csomók nagy száma nagy rugalmasságot jelent, de az adott adatok túlzott illeszkedését is eredményezheti. Ezzel szemben a kis számú csomópont “túlsimított” becslést eredményezhet, amely hajlamos az alulilleszkedési torzításra (lásd ).
A spline-modellezésben a csomópozíció kiválasztásának megkönnyítésére szolgáló népszerű megközelítés a büntetett spline-ok használata. Adott egy i.i.d. adatminta (x1,y1),…(xn,yn), egy büntetett spline a probléma megoldása
ahol lβ a log-likelihoodot (ill, Cox-regresszió esetén a részleges log-likelihood), Jr pedig egy durvasági büntetés, amely akkor lesz kicsi, ha a spline-függvény “sima”. Általában a büntetett spline-ok azon az elképzelésen alapulnak, hogy az ismeretlen f függvényt egy nagyszámú csomóponttal rendelkező spline-nal modellezzük, ami nagyfokú rugalmasságot tesz lehetővé. Másrészt egy durva spline-becslés, amely nagy lβ értékkel rendelkezik és közel van az adatértékekhez, nagy Jβ értéket eredményez. E függvény maximalizálása tehát kompromisszumot jelent a simaság és a modellilleszkedés között, amelyet a λ≥0 hangolási paraméter vezérel.
Egy speciális eset a büntetett legkisebb négyzetek problémája
a Gauss-regresszióban. A büntetés \(J_{\beta } \,=\, \int _{a}^{b} \left (\partiális ^{2} f / \partiális x^{2}\right)^{2} dx\) egy spline függvény “simaságát” fejezi ki f második deriváltjával. adott λ esetén megmutatható, hogy a megoldás egy természetes köbös spline csomósorozattal x(1)<…<x(n), azaz, a csomópozíciókat nem kell megválasztani, hanem “természetesen” az X rendezett egyedi adatértékei adják meg. A szakirodalomban az ilyen típusú spline-t simító spline-nak nevezik. Megjegyzendő, hogy megmutatható, hogy a simító spline interpolálja az adatokat, ha λ=0, míg λ=∞ lineáris függvényt feltételez. Megjegyezzük, hogy a simító spline-ok a vékonylemezes spline-ok általánosabb osztályának egy speciális esete , amelyek lehetővé teszik a (3) egyenletben szereplő kritérium kiterjesztését magasabb dimenziós xi-re (lásd , 4.15. szakasz], és a részletekért).
A simító spline-ok kényelmes tulajdonsága, hogy a büntetés Jβ felírható β⊤Ωβ-ként egy megfelelően definiált Ω büntetési mátrix segítségével. Ezért (3) megoldását a büntetett legkisebb négyzetek becslése adja
ahol B egy n×n dimenziós mátrix, amely az adatértékeken kiértékelt természetes spline alapfüggvényeket tartalmazza. Az y vektor az y1,…,yn válaszértékeket tartalmazza. A gyakorlatban nagyon hatékony algoritmusok léteznek a (4) \(\hat {\beta }\) kiszámítására. Ahelyett, hogy egy természetes spline-alapot adnánk meg az f-hez, lehetőség van arra is, hogy korlátlan B-spline-alapokkal dolgozzunk, mivel a (3)-ban szereplő büntetés automatikusan megköveteli a linearitást az x(1) és x(n) csomópontoknál (lásd , 5. fejezet, és , 2. fejezet). A B-spline alapot tekintve a becslési eredmények nem függnek a határcsomópontok megválasztásától: vagy x(1) és x(n) használható határcsomópontként, vagy x(1) és x(n) felvehető a belső csomópontok halmazába.
Ha n nagy, és az intervallumot sűrűn lefedik a megfigyelt adatok, általában nem szükséges minden xi,i=1,…,n-nél csomópontot elhelyezni. Ehelyett a simító spline közelíthető egy büntetett regressziós spline-nal, amely csökkentett csomóhalmazt használ. A büntetett regressziós spline-ok nagyon népszerű osztálya a P-spline-ok, amelyek a köbös B-spline alapon és az egyenlő távolságra lévő csomók “nagy” halmazán (általában 10-40) alapulnak. A (3) integrál kiértékelése helyett a P-spline-ok egy másodrendű differenciabüntetésen alapulnak, amelyet a
ami egyenletes távolságú csomók esetén megmutatható, hogy Jβ közelítése. A Δ2 másodrendű differenciaoperátor a következőképpen definiálható: Δ2βk:=(βk-βk-1)-(βk-1-βk-2). A büntetés tehát β⊤Pβ-ként fejezhető ki, ahol P a D⊤D definícióval határozható meg, ahol D a különbségek mátrixa. Könnyen levezethető, hogy a β eredő becslője ugyanolyan szerkezetű, mint a 2, azzal, hogy Ω helyébe P lép.
A P-spline-ok kényelmes tulajdonsága, hogy numerikusan stabilak és nagyon könnyen definiálhatók és implementálhatók. Különösen a D differenciamátrixot sokkal egyszerűbb felállítani, mint az Ω mátrixot. Emellett a Jβ büntetést (és így a D mátrixot is) egyszerűen kiterjeszthetjük magasabb rendű Δq különbségekre, ahol q>2. Lehetséges olyan csomósorozatot is használni, amely nem egyenletesen elosztott; ebben az esetben súlyokat kell bevezetni. Mivel a gyakorlatban ritkán használnak P-spline-okat nem egyenetlenül elosztott csomókkal, itt nem foglalkozunk velük, és helyette a
Smoothing splines és a P-spline-ok bizonyos mértékig megoldják a csomóválasztás problémáját. Filozófiájuk az, hogy nagyszámú csomót használnak, majd hagyják, hogy λ szabályozza a simítás mértékét. Ez egy extra hangolási paramétert eredményez, és nincs általános konszenzus arról, hogy hogyan hangoljuk ezt a paramétert. Néhány népszerű módszer a λ “optimális” értékének meghatározására az általánosított keresztellenőrzést (GCV), az AIC-t vagy a vegyes modell reprezentációt használja.
Splines in R
Az R alap telepítési csomagja tartalmaz egy sor olyan függvényt, amelyekkel egyszerű polinomiális spline-ok és simító spline-ok illeszthetők. További függvényeket tartalmaz a DM Bates és WN Venables által írt splines könyvtár. A csomag hosszú évek óta a spline-illesztés munkagépe, és ma már az R alapdisztribúciójának része. Több mint 100 másik csomag van, amelyek betöltése a splines-tól függ. A csomag számos, széles körben használt függvényt tartalmaz a spline-alapok létrehozására, mint például a bs a B-spline-okhoz és az ns a természetes spline-okhoz, de tartalmaz néhány speciálisabb függvényt is az alapfüggvények létrehozására (mint például a periodicSpline, amely periodikus interpolációs spline-okat hoz létre) vagy olyan hasznos parancsokat, mint a predict parancs.bSpline, amely egy spline-t értékelne ki X új értékeinél.
Az alapértelmezett bs értékek egy köbös B-spline alapot hoznak létre két határcsomóval és egy belső csomóval, amely a megfigyelt adatértékek mediánjánál helyezkedik el. A felhasználó nagyobb rugalmasságot érhet el a csomópontok elhelyezésének és számának növelésével és/vagy helyük megváltoztatásával. A 3. ábra (2. kód az 1. kiegészítő fájlban: Függelék) különböző opciókkal létrehozott B-spline-okat mutat. A felső rész lineáris spline-okat, azaz első rendű (egyfokú) polinomokat mutat, amelyek egyenlő távolságra lévő csomópontokon kapcsolódnak egymáshoz. Az alsó rész köbös polinomokat mutat be (3. fok).
kóddal létrehozott grafikonok Megjegyzendő, hogy az R-ben a bs() segítségével létrehozott B-spline-ok automatikusan az adatok tartományával vannak behatárolva, és a további csomópontok (τ1,…,τd) a határcsomópontokkal egyenlők, így a tartomány mindkét végén több csomópontot kapunk. Ez a megközelítés hasznos az egyváltozós esetekben, és rendelkezik néhány számítási szempontból vonzó tulajdonsággal. Ha azonban kétdimenziós simítási problémán dolgozunk, B-spline-ok tenzortermékeivel, vagy ha P-spline-okkal dolgozunk, ez az alap nem megfelelő, és téves eredményekhez vezethet.
A természetes spline-ok létrehozhatók a splines csomagon belül, az ns parancs segítségével. Alapértelmezés szerint, ha a felhasználó nem adja meg sem a szabadságfokokat, sem a csomópontokat, a függvény egy egyenest ad vissza a határcsomópontokon belül. A 4. ábra (3. kód a Additional file 1: Appendix-ben) különböző opciókkal létrehozott természetes spline-okat mutat.
Azért, hogy szemléltessük, hogyan használhatók ezek a függvények a gyakorlatban, tekintsük újra a 2.0.1. szakasz adatait. Az 5. ábra (amelyet a (4. kód az 1. kiegészítő fájlban: Függelék) készített) a következő parancsok használatával kapott illesztéseket mutatja: poly() az egyszerű ortogonális polinomikus spline-okhoz, smooth.spline() a simító spline-okhoz, bs() és ns() a library splines-okból a B-spline-okhoz, illetve a természetes spline-okhoz. A bal felső grafikon egy egyszerű lineáris illesztést mutat az adatokra (szaggatott vonal) és egy harmadfokú polinomiális illesztést, amely képes megragadni a változók közötti összetettebb kapcsolatot. A jobb felső sarokban lévő grafikon azonban különösen érdekes, mivel a spline-függvények alapértelmezett értékeit használó illesztéseket mutatja be. A zöld vonal a poly() és ns() függvényekből származik, amelyek alapértelmezés szerint mindkettő egyenes vonalat határoz meg. A másik véglet, a kék vonal a smooth.spline() függvény illesztése, amely, ha nincs szabadsági fok megadva, hajlamos alulsimítani az adatokat, azaz egy nagyon rugalmas, kacskaringós illesztést produkál, amely itt 45 szabadsági fokon alapul. Négy szabadsági fok megadásával -látványosan- elfogadható illeszkedés érhető el az adatokhoz (bal alsó grafikon). Látható, hogy a választott alaptól függően vannak különbségek. A polinomiális alap (fekete vonal) egy kicsit rugalmasabb, mint a többi, különösen a magasabb életkoroknál. Másrészt a mindössze négy szabadsági fokra korlátozott simító spline merevebb, mint a többi megközelítés, de valószínűleg túlsimítja az adatokat a kis életkoroknál, a 0. és 10. év között. A két véglet között a B-spline-ok és a természetes spline-ok nagyon hasonló illesztést biztosítanak, amelyek megragadják a kis életkorok hatását, és általában kevésbé befolyásolják őket az életkori spektrum végén lévő szélsőséges esetek. Végül a jobb alsó grafikon azt mutatja, hogy az illesztések mennyivel rugalmasabbá válnak a további szabadsági fokok növelésével, és a túlzott szabadsági fokok használatából eredő esetleges túlillesztési torzításra utal.
Egy megjegyzés a szabadságfokokról
A gyakorlatban mindig hasznos egy spline-t szabadságfokok szerint definiálni. Ez a megközelítés különösen hasznos, amikor B-spline-okkal és természetes spline-okkal dolgozunk. A B-spline-oknak d+K, míg egy természetes köbös spline alapfüggvénynek K csomóval K+1 szabadságfoka van. Alapértelmezés szerint az R-ben a bs függvény 3. fokú B-spline-okat hoz létre belső csomópontok nélkül és az X változó tartományában meghatározott határcsomópontokkal. A függvény így három alapfüggvényt hoz létre. Tekintsük most a következő esetet: ha a felhasználó egy B-spline-t definiál egy belső csomóval az X mediánjánál (bs(x,knots=median(x))), akkor a szoftver négy függvényt hoz létre (d=3 plusz K=1 belső csomó, négy szabadsági fok). Ha azonban a felhasználó a függvényben megadja a határcsomópontokat a csomópontok argumentumon belül (bs(x,knots=c(min(x),median(x),max(x))))), akkor a függvény hat szabadságfokot kap (d=3 plusz k=3). Hasonló óvatossággal kell eljárni az ns függvény esetében is.
A simító spline-okkal való munka során nem könnyű megadni a szabadságfokokat, mivel azok a büntetés nagyságától függően változnak. A gyakorlatban azonban a büntetett spline-ok is korlátozhatók a szabadságfokok maximális számára vagy a kívánt szabadságfokokra.
Más spline-csomagok
A spline-csomagok bővített listája nagyjából vagy az itt bemutatottakhoz nagyon hasonló megközelítéseket tartalmaz, vagy nagyon speciális, speciális alkalmazásokat célzó eseteket. Az 1. táblázatban néhány ilyen csomagot mutatunk be a letöltések számával együtt. A számok a csomag letöltéseinek számára vonatkoznak, de nem az egyedi felhasználókra. E munka keretein túlmutat az összes ilyen megközelítés részletes ismertetése.
Táblázat