En gennemgang af splinefunktionsprocedurer i R

Tegningen “spline” refererer til et håndværkerværktøj, en fleksibel tynd strimmel af træ eller metal, der bruges til at tegne glatte kurver. Der blev påført flere vægte på forskellige positioner, så strimlen bøjede sig i overensstemmelse med deres antal og position. Den blev tvunget til at passere gennem et sæt faste punkter: metalpinde, ribben på en båd osv. På en flad overflade var det ofte vægte med en fastgjort krog, og de var således lette at manipulere. Formen af det bøjede materiale ville naturligt tage form af en splinekurve. På samme måde anvendes splines i statistik til matematisk at gengive fleksible former. Der anbringes knuder flere steder i dataområdet for at identificere de punkter, hvor tilstødende funktionelle stykker mødes med hinanden. I stedet for metal- eller træstriber vælges glatte funktionelle stykker (normalt polynomier af lav orden) til at passe til dataene mellem to på hinanden følgende knuder. Typen af polynomium og antallet og placeringen af knuder er det, der så definerer typen af spline.

Motiverende eksempel

Med indførelsen af generaliserede additive modeller (GAM’er) i 1986 er brugen af spline-modellering blevet et etableret værktøj i statistisk regressionsanalyse. For at illustrere dette kan vi se på data om et sæt på 892 kvinder under 50 år, der er indsamlet i tre landsbyer i Vestafrika (data er tilgængelige i Additional file 1: Appendix). Vi vil gerne undersøge forholdet mellem alder (i år) og et groft mål for kropsfedt, som er triceps hudfoldetykkelse. Figur 1 viser forholdet mellem alder og triceps hudfoldetykkelse målt i logaritmisk skala. For yderligere oplysninger om dataene se .

Figur 1

Et plot af alder i år mod triceps hudfoldstykkelse for 892 kvinder i Vestafrika . Den stiplede linje repræsenterer en simpel lineær tilpasning, den faste linje en tilpasning ved hjælp af fleksible tredjegrads polynomier

En simpel regressionsmodel af formen yi=β0+β1xi+ε,i=1,…,n, ville næppe give en tilnærmelse af det observerede mønster, da det er indlysende, at forholdet ikke er lineært. Modellen kan udvides til at tage højde for ikke-lineære virkninger ved hjælp af nogle polynomier. Ikke-lineære virkninger kan således modelleres ved hjælp af et polynomium af grad 3, som er givet ved:

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

hvor u er en funktion af x kaldet basisfunktion, her defineret ved:

$$$U=\left $$

Regressionsmodellen beskrevet i ligning 1 er stadig en lineær model, på trods af at den giver en ikke-lineær funktion af den prædiktorvariable. Modellen er stadig lineær med hensyn til koefficienterne og kan tilpasses ved hjælp af almindelige mindste kvadraters metoder. Grundlaget kan oprettes i R ved hjælp af funktionen poly(x,3) med input x (der henviser til variablen) og p (der henviser til graden af polynomiet). Dette fører til en simpel univariat glat model af formen: yi=f(xi)+ε, hvor f() er en eller anden funktion/transformation af prædiktoren. En sådan model kan let tilpasses i R ved hjælp af: lm(y ∼poly(x,3))). På trods af sin enkelhed har polynomialregression flere ulemper, hvoraf den vigtigste er ikke-lokalitet. Det betyder, at den tilpassede funktion ved en given værdi x0 afhænger af dataværdier langt fra dette punkt. Det er let at se dette i praksis ved at tilpasse et polynomium til et datasæt og flytte et af datapunkterne nær den højre kant op eller ned. Som følge heraf vil den tilpassede funktion normalt ændre sig langt fra den pågældende x-koordinat.

Overvej, i stedet for at tilpasse et globalt polynomium, at opdele området x i mindre intervaller ved hjælp af et vilkårligt antal og en vilkårlig placering af punkter, τ, også kaldet knuder. En simpel stykkevis kontinuerlig model kan tilpasses ved at definere funktionerne: f1(x)=1,f2(x)=x,f3(x)=(x-τ1)+,f4(x)=(x-τ2)+,…, med “+” en funktion defineret som:

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

Mængden af disse funktioner fører til en sammensat funktion f(x).

Definition af splines

Tegnerens metalspline kan antage vilkårlige former, f.eks. tværsnittet af en flyvemaskinevinge eller spiralen af en centrifugalpumpe. Til statistiske anvendelser vil vi antage kurver af formen f(X), dvs. en enkelt y-værdi for hvert x. Prædiktoren x kan være en enkelt variabel eller flere variabler. Vores diskussion vil næsten udelukkende fokusere på en univariat funktion med \(X\in \mathbb {R}\). Definer et sæt knuder τ1<…<τK i X’s område. En spline f(X) vil være en glat funktion, der opfylder visse differentierbarhedsegenskaber, der er nævnt nedenfor, således at f(X) er et polynomium af grad d. Træ- eller metalsplines har kontinuerlige derivater af alle ordener, da de er et fysisk objekt. Dette gælder ikke for statistiske splines. Vi pålægger snarere et glidekriterium om, at alle derivater af orden mindre end d er kontinuerte. En fysisk spline er lineær ud over den sidste knude, og vi kan pålægge en yderligere begrænsning, at derivater af orden 2 eller derover er nul ved den yderste venstre og yderste knude; splines med denne yderligere begrænsning kaldes “begrænsede” eller “naturlige” splines. For at opnå mere fleksible kurver kan antallet af knuder eller graden af polynomiet øges for at opnå mere fleksible kurver. Der er dog en afvejning; hvis antallet af knuder øges, kan det medføre en for god tilpasning af dataene og øge variansen, mens en reduktion af antallet af knuder kan resultere i en stiv og restriktiv funktion, der har større bias.

Repræsentation ved basisfunktioner

Antag, at den ukendte funktion f repræsenteres af en splinefunktion med fast knudefølge og fast grad d. Da sidstnævnte funktioner danner et vektorrum V, er det muligt at skrive f som

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

hvor Bk er et sæt af basisfunktioner, der definerer V, og βk er de tilhørende spline-koefficienter. Med k knuder er der k+1 polynomier af grad d sammen med d∗k begrænsninger, hvilket fører til (d+1)(k+1)-d∗k=d+k+1 frie parametre ; for en naturlig spline er der k frie parametre. Da βB=(βA)(A-1B)=γB∗ for enhver nonsingulær matrix A er der et uendeligt antal mulige basissæt for splinepasningen.

Den repræsentation i (2) har den fordel, at estimationen af f reduceres til estimationen af koefficienterne βk. Mere specifikt er udtrykket i (2) lineært i koefficientvektoren β=(β1,…,βK+d+1). Derfor kan estimationen af f betragtes som et optimeringsproblem, der er lineært i de transformerede variabler B1(X),…,BK+d+1(X), hvilket gør det muligt at anvende veletablerede estimationsteknikker til brug af splines i en bred vifte af (generaliserede) multivariable regressionsmodeller. Det er vigtigt, at spline-modellering reducerer estimeringen af funktionerne f() til estimering af et lille sæt reelt værdifulde koefficienter.

Som påpeget af forskellige forfattere (f.eks. To af disse, nemlig valget af basisfunktioner B og graden d af de underliggende polynomier, viser sig at have ringe betydning. Faktisk er splinepasninger bemærkelsesværdigt robuste over for graden d. Kubiske polynomier (d=3) er den sædvanlige standard, da de resulterer i kurver, der ser helt glatte ud for det menneskelige øje. Hvis afledninger af de tilpassede kurver er af interesse, er en højere orden undertiden hensigtsmæssig, men generelt er tilpasninger for d>3 faktisk ikke til at skelne fra hinanden. Fits med d=1 eller d=2 har næsten identiske statistiske egenskaber, men vil fremstå mere takkede. Valget mellem to basissæt B og B∗ vil pr. definition ikke ændre forudsigelserne fra en tilpasning og vil derfor være et spørgsmål om bekvemmelighed.

De to vigtigste valg vedrører antallet og afstanden mellem knuderne og brugen (eller ej) af en straffunktion, f.eks. den integrerede anden afledte af splinen. Når der ikke er nogen straf, kan oprettelsen af de transformerede variabler ske separat, og de nye variabler indgår simpelthen i en standardmodelfit; der er ingen ændring af den underliggende regressionsprocedure nødvendig. Denne fremgangsmåde kaldes ofte regressionssplines; fleksibiliteten af den resulterende ikke-lineære funktion er udelukkende en funktion af antallet af knuder. Inddragelse af en udjævningsstraf kræver på den anden side en ændring af tilpasningsrutinen for at tage højde for den. Dette skal medtages i hver regressionsfunktion for sig. De resulterende udglattende splines har flere ønskelige egenskaber, men den ekstra kompleksitet af den udglattende funktion kan være en grund til, at den ikke er blevet anvendt oftere i anvendte sammenhænge.

Men selv om der er blevet udført betydelig forskning for at undersøge de matematiske egenskaber af de forskellige spline-tilgange (se , synes anvendte statistikere og dataanalytikere næppe at være opmærksomme på disse resultater, når de anvender spline-modellering i praktiske anvendelser. Faktisk indeholdt mange af de artikler, der blev identificeret ved vores web-søgning, ingen begrundelse for rationalet bag valget af den anvendte spline-metode.

Populære spline-basis

Der er mange muligheder for definitionen af basisfunktionerne Bk, hvor de forskellige spline-baser adskiller sig fra hinanden med hensyn til deres numeriske egenskaber . I dette afsnit vil vi introducere nogle af de mest populære spline-baser, nemlig den afkortede potenserie-base, B-spline-basen og den kardinale spline-base.

Afkortede potenserier og kubiske splines

Den afkortede potenserie-base er defineret af basisfunktionerne

$$$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} $$

En fordel ved ovennævnte basisfunktioner er deres nemme fortolkning: Med udgangspunkt i et “grundlæggende” polynomium af grad d defineret på (første linje i ligningen), tilføjes afvigelser fra det grundlæggende polynomium successivt til splinefunktionen til højre for hver af K knuder (anden linje). En truncated power base spline er d-1 gange differentiabel ved knuderne og har d+K frihedsgrader. Det er relativt let for brugeren at oprette en afkortet potensserie i R. Lad x repræsentere nogle observationer i , så kan en afkortet potensbasis af grad d=3 med 5 knuder med lige store mellemrum inden for x’s område oprettes ved hjælp af kode 1 i Additional file 1: Appendix (Fig. 2).

Fig. 2

Truncated polynomials spline basisfunktioner af tredje grad (d=3) med fem lige store knuder (K=5). Plot oprettet ved hjælp af kode nr. 1 i Additional file 1: Appendix

Et træk ved de afkortede potenserier er, at understøttelserne af funktionerne ikke er lokale, idet nogle af Bk’erne er defineret over hele dataområdet . Dette kan føre til høje korrelationer mellem nogle basis-splines, hvilket indebærer numeriske ustabiliteter i spline-estimationen. For den afkortede potensseriebasis er der givet et eksempel i , kapitel 5.

Kubiske splines skabes ved at anvende et kubisk polynomium i et interval mellem to på hinanden følgende knuder. Splinen har fire parametre på hvert af de K+1 områder minus tre begrænsninger for hver knude, hvilket resulterer i K+4 frihedsgrader.

En kubisk splinefunktion med tre knuder (τ1,τ2,τ3) vil have 7 frihedsgrader. Ved hjælp af den repræsentation, der er givet i ligning 2, kan funktionen skrives som

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

B-splines

B-spline-basen er en almindeligt anvendt spline-base, der er baseret på en speciel parametrisering af en kubisk spline. B-splinebasen , er baseret på knudefølgen

$$\begin{aligned} \xi_{1} \le \ldots &\le \xi_{d} \le \xi_{d+1} < \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} $$

hvor mængderne ξd+2 := τ1,…,ξd+K+1:=τK og ξd+1:=a,ξd+K+2:=b betegnes som henholdsvis “indre knuder” og “grænseknuder”. Valget af de yderligere knuder ξ1,…,ξd og ξd+K+3,…,ξ2d+K+2 er i det væsentlige arbitrært. En almindelig strategi er at sætte dem lig med grænseknuderne. Alternativt, hvis de indre knuder og grænseknuderne ξd+1<…<ξd+K+2 vælges til at være lige langt fra hinanden, dvs, ξk+1-ξk=δ ∀k∈{d+1,…,d+K+1}, kan grænseknuderne placeres ved ξd+1-δ,…,ξd+1-d-δ og ξd+K+2+δ,…,ξd+K+2+d-δ.

For d>0 defineres B-spline-basisfunktioner af grad d (betegnet \(B_{k}^{d}(x)\)) ved den rekursive formelFodnote 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} $$ $$

hvor

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

og \(B_{k}^{0}(x) \equiv 0\) hvis ξk=ξk+1. B-splines har den fordel, at basisfunktionerne har lokal støtte. Mere specifikt er de større end nul i intervaller, der er opspændt af d+2 knuder, og nul andre steder. Denne egenskab resulterer i en høj numerisk stabilitet og også i en effektiv algoritme til konstruktion af basisfunktionerne, se nærmere herom.

Naturlige kubiske og kardinalsplines

En polynomial spline, som f.eks. en kubisk eller en B-spline, kan være uregelmæssig ved grænserne af dataene. For at løse dette problem er naturlige splines cubiske splines, der har den yderligere begrænsning, at de er lineære i halen af grænseknuderne (-∞,a],,, kapitel 4.

Foruden den afkortede potensserie naturlige splines, B-spline og cardinal spline basis, findes der forskellige andre – mindre populære – baser. For en oversigt henvises til bøgerne af .

Penalized splines

De hidtil præsenterede splines betegnes ofte som regressionssplines. Ud over valget af spline-basis (B-spline, afkortet potenserie osv.) skal antallet af knuder og knudepositionerne vælges. Det er klart, at disse indstillingsparametre kan have stor betydning for den skønnede form af en splinefunktion: Et stort antal knuder indebærer stor fleksibilitet, men kan også resultere i en overtilpasning af de foreliggende data. Omvendt kan et lille antal knuder resultere i et “oversmooth”-estimat, som er tilbøjeligt til at være under-fit bias (se ).

En populær tilgang til at lette valget af knudepositioner i spline-modellering er brugen af strafstillede splines. Givet en i.i.d. prøve af data (x1,y1),…(xn,yn), er en straffet spline løsningen på problemet

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

hvor lβ betegner log-likelihood (eller, i tilfælde af Cox-regression, den partielle log-likelihood), og Jr er en ruhedssanktion, der bliver lille, hvis spline-funktionen er “glat”. Generelt er penaliserede splines baseret på den idé, at den ukendte funktion f modelleres ved hjælp af en spline med et stort antal knuder, hvilket giver mulighed for en høj grad af fleksibilitet. På den anden side resulterer et groft spline-estimat, der har en høj værdi af lβ og ligger tæt på dataværdierne, i en stor værdi af Jβ. Maksimeringen af denne funktion indebærer derfor en afvejning mellem glathed og modeltilpasning, som styres af tuningparameteren λ≥0.

Et specialtilfælde er det straffede mindste kvadraters problem

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

i Gaussisk regression. Straffen \(J_{{\beta } \,=\, \int _{a}^{b} \left (\partiel ^{2} f / \partiel x^{2}\right)^{2} dx\) udtrykker “glatheden” af en splinefunktion i form af den anden afledte af f. For givet λ kan det vises, at løsningen er en naturlig kubisk spline med knudefølgen x(1)<…<x(n), dvs, knudepositionerne behøver ikke at blive valgt, men er “naturligt” givet af de ordnede unikke dataværdier for X. I litteraturen kaldes denne type spline for smoothing spline . Det kan påvises, at en smoothing spline interpolerer dataene, hvis λ=0, mens λ=∞ indebærer en lineær funktion. Bemærk, at udglattende splines er et specialtilfælde af den mere generelle klasse af tyndplade-splines , som giver mulighed for en udvidelse af kriteriet i Eq. (3) til højere dimensioner xi (se , afsnit 4.15], og for nærmere oplysninger).

En praktisk egenskab ved udglattende splines er, at straffen Jβ kan skrives som β⊤Ωβ med en passende defineret straffematrix Ω. Derfor er løsningen til (3) givet ved det straffede mindste kvadraters estimat

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

hvor B er en matrix af dimension n×n, der indeholder de naturlige spline-basisfunktioner, der er evalueret ved dataværdierne. Vektoren y indeholder svarværdierne y1,…,yn. I praksis findes der meget effektive algoritmer til at beregne \(\hat {\beta }\) i (4) . I stedet for at angive en naturlig spline-base for f er det endvidere muligt at arbejde med en ubegrænset B-spline-base, da straffen i (3) automatisk pålægger linearitetsbegrænsningerne ved knuderne x(1) og x(n) (se , kapitel 5, og , kapitel 2). Med hensyn til B-spline-basis vil estimationsresultaterne ikke afhænge af valget af grænseknuder: det er enten muligt at bruge x(1) og x(n) som grænseknuder eller at inkludere x(1) og x(n) i sættet af indre knuder.

Hvis n er stort, og intervallet er dækket tæt af de observerede data, er det normalt ikke nødvendigt at placere en knude ved hver xi,i=1,…,n. I stedet kan udglatningssplinen tilnærmes ved hjælp af en straffet regressionsspline, der anvender et reduceret sæt knuder. En meget populær klasse af straffede regressionssplines er P-splines , som er baseret på den kubiske B-spline-basis og på et “stort” sæt af ækvidistante knuder (normalt 10-40). I stedet for at evaluere integralet i (3) er P-splines baseret på en andenordens differencestraf defineret ved

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

som, i tilfælde af jævnt fordelt knuder, kan vises at være en tilnærmelse til Jβ. Forskelsoperatoren Δ2 af anden orden er defineret ved Δ2βk:=(βk-βk-1)-(βk-1-βk-2). Straffen kan derfor udtrykkes som β⊤Pβ, hvor P er defineret ved D⊤D, hvor D er en differencematrix. Det kan let afledes, at den resulterende estimator af β har samme struktur som 2, hvor Ω er erstattet af P.

En praktisk egenskab ved P-splines er, at de er numerisk stabile og meget lette at definere og implementere. Især er det meget lettere at opstille differencematrixen D end matrixen Ω. Det er også ligetil at udvide straffen Jβ (og dermed matricen D) til differencer af højere orden Δq med q>2. Det er også muligt at anvende en knudefølge, der ikke er jævnt fordelt; i dette tilfælde skal der indføres vægte. Da P-splines med ujævnt adskilte knuder sjældent anvendes i praksis, overvejer vi dem ikke her og henviser i stedet til.

Smoothing splines og P-splines overvinder til en vis grad problemet med knudevalg. Deres filosofi er at anvende et stort antal knuder og derefter lade λ styre graden af glathed. Dette resulterer i en ekstra indstillings parameter, uden at der er generel konsensus om, hvordan denne parameter skal indstilles. Nogle populære måder at bestemme den “optimale” værdi af λ på bruger generaliseret krydsvalidering (GCV), AIC eller en blandet modelrepræsentation .

Splines i R

Det grundlæggende installationsbundt i R indeholder et sæt funktioner, der kan tilpasse simple polynomiale splines og udglatningssplines. Yderligere funktioner er indeholdt i biblioteket splines, der er skrevet af DM Bates og WN Venables. Pakken har været arbejdshesten inden for spline fitting i mange år og er nu en del af grunddistributionen af R. Der er mere end 100 andre pakker, som er afhængige af splines, når de indlæses. Pakken indeholder flere funktioner til at skabe spline-basis, f.eks. bs for B-splines og ns for natural splines, som er meget udbredt, men også nogle mere specialiserede funktioner til at skabe basisfunktioner (f.eks. periodicSpline, der skaber en periodisk interpolationssplines) eller kommandoer, der er nyttige, f.eks. kommandoen predict.bSpline, der vil evaluere en spline ved nye værdier af X.

De standardværdier for bs vil skabe en kubisk B-spline-basis med to grænseknuder og en indvendig knude placeret ved medianen af de observerede dataværdier. Brugeren kan opnå større fleksibilitet ved at øge placeringen og antallet af knuder og/eller ændre deres placering. Figur 3 (kode 2 i Additional file 1: Appendix) viser B-splines, der er skabt med forskellige muligheder. Den øverste del viser lineære splines, dvs. polynomier af første orden (grad 1), der er forbundet med hinanden på ækvidistante knuder. Den nederste del viser kubiske polynomier (grad 3).

Figur 3

B-splinebasis ved hjælp af bs kommando i biblioteket splines. Øverst til venstre: Spline-basis af første grad med tre frihedsgrader. Øverst til højre: Spline-basis af første grad med fire frihedsgrader. Nederst til venstre: Kubisk splinebasis med tre frihedsgrader. Nederst til højre: Kubisk splinebasis med fire frihedsgrader. Grafer oprettet ved hjælp af kode nr. 2

Det skal bemærkes, at B-splines oprettet i R med bs() automatisk er afgrænset af dataenes område, og at de ekstra knuder (τ1,…,τd) er sat lig med grænseknuderne, hvilket giver flere knuder i begge ender af domænet. Denne fremgangsmåde er nyttig i univariate tilfælde og har nogle beregningsmæssigt attraktive egenskaber. Hvis man arbejder på et todimensionelt udglatningsproblem, bruger tensorprodukter af B-splines, eller når man arbejder med P-splines, er dette grundlag imidlertid uegnet og kan føre til falske resultater.

Naturlige splines kan oprettes i splines-pakken ved hjælp af kommandoen ns. Som standard returnerer funktionen, medmindre brugeren angiver enten frihedsgrader eller knuder, en lige linje inden for grænseknuderne. Figur 4 (kode 3 i Additional file 1: Appendix viser naturlige splines oprettet med forskellige indstillinger.

Figur 4

Naturlig kubisk splinebasis ved hjælp af kommandoen ns i biblioteket splines. Øverst til venstre: Spline-basis med to frihedsgrader. Øverst til højre: Spline-basis med tre frihedsgrader. Nederst til venstre: Spline-basis med fire frihedsgrader. Nederst til højre: Spline-basis med fem frihedsgrader. Oprettet med Code#3

For at illustrere, hvordan disse funktioner kan bruges i praksis, skal vi igen se på dataene fra afsnit 2.0.1. Figur 5 (skabt af (kode 4 i Additional file 1: Appendix)) viser de tilpasninger, der er opnået ved at bruge følgende kommandoer: poly() for simple ortogonale polynomiske splines, smooth.spline() for udglattende splines, bs() og ns() fra library splines, for henholdsvis B-splines og naturlige splines. Den øverste venstre graf viser en simpel lineær tilpasning af dataene (stiplet linje) og en polynomiel tilpasning af tredje grad, som er i stand til at indfange den mere komplekse sammenhæng mellem variablerne. Grafen i øverste højre hjørne er dog særlig interessant, da den viser tilpasningerne ved hjælp af standardværdierne for splinefunktionerne. Den grønne linje kommer fra funktionerne poly() og ns(), som ved standardværdierne begge definerer en lige linje. I den anden yderlighed er den blå linje et fit fra funktionen smooth.spline(), som, hvis der ikke er angivet nogen frihedsgrader, har en tendens til at underudglatte dataene, dvs. producere et meget fleksibelt wiggly fit baseret – her – på 45 frihedsgrader. En -visuelt- fornuftig tilpasning til dataene kan opnås, hvis der angives fire frihedsgrader (nederste venstre graf). Det kan ses, at der er nogle forskelle afhængig af den valgte base. Polynomialbasen (sort linje) er lidt mere fleksibel end de øvrige, især ved højere aldre. På den anden side er en udglattende spline, der er begrænset til kun fire frihedsgrader, mere stiv end de andre tilgange, men overglatter sandsynligvis dataene ved små aldre, mellem år 0 og 10, for meget. Mellem de to yderpunkter giver B-splines og naturlige splines meget ensartede tilpasninger, der fanger effekten af små aldre og har tendens til at være mindre påvirket af ekstreme tilfælde i slutningen af aldersspektret. Endelig viser den nederste højre graf, hvor meget mere fleksible tilpasningerne bliver med yderligere frihedsgrader og antyder potentiel over-fit bias som følge af brug af for mange frihedsgrader.

Figur 5

Et plot af alder i år mod triceps hudfoldstykkelse for 892 kvinder i Vestafrika. Øverst til venstre: Den stiplede linje repræsenterer en simpel lineær tilpasning, den faste linje en tilpasning ved hjælp af fleksible tredjegrads polynomier. Øverst til højre: Splines fit ved hjælp af standard R-værdier. Grøn linje er resultatet af en polynomial spline af grad 1 (standardværdi for funktion poly, og en tilpasning fra en naturlig spline uden angivelse af frihedsgrader (standardværdi for funktioner ns). Rød linje kommer fra en b-spline med tre frihedsgrader (funktion bs) og blå linje fra en udglattende spline (fra funktion smooth.spline). Nederst til venstre: Sort linje er polynomial fit, rød linje b-splines fit, grøn linje er et natural splines fit og smoothing spline, alle defineret med fire frihedsgrader. Nederste højre: Samme funktioner defineret med 10 frihedsgrader. Oprettet med kode #4

En note om frihedsgrader

I praksis er det altid nyttigt at definere en spline ved hjælp af frihedsgrader. Denne fremgangsmåde er særlig nyttig, når man arbejder med B-splines og naturlige splines. B-splines har d+K, mens en naturlig kubisk spline-basisfunktion med K knuder har henholdsvis K+1 frihedsgrader. Som standard skaber funktionen bs i R B-splines af grad 3 uden indre knuder og med grænseknuder defineret i X-variablens område. Som sådan skaber funktionen tre basisfunktioner. Overvej nu følgende tilfælde: Når en bruger definerer en B-spline med en indvendig knude ved medianen af X (bs(x,knots=median(x))), vil softwaren oprette fire funktioner (d=3 plus K=1 indvendige knuder, fire frihedsgrader). Hvis brugeren imidlertid i funktionen angiver grænseknuderne inden for argumentet knuder (bs(x,knuder=c(min(x),median(x),max(x))))), vil funktionen have seks frihedsgrader (d =3 plus k =3). Tilsvarende forsigtighed bør udvises med funktionen ns.

Når man arbejder med udglattende splines, er det ikke let at angive frihedsgraderne, da de vil variere afhængigt af straffens størrelse. I praksis kan penaliserede splines dog også begrænses til et maksimalt antal frihedsgrader eller ønskede frihedsgrader.

Andre spline-pakker

Samlet set indeholder den udvidede liste over spline-pakker enten tilgange, der minder meget om det, der er præsenteret her, eller meget specialiserede tilfælde, der er rettet mod specifikke anvendelser. I tabel 1 er nogle af disse pakker præsenteret sammen med antallet af downloads. Antallet henviser til antallet af gange, en pakke er blevet downloadet, men ikke til unikke brugere. Det ligger uden for rammerne af dette arbejde at beskrive alle disse fremgangsmåder i detaljer.

Tabel 1 R-pakker, der er anvendt til oprettelse af splines

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.