Afsnit 9.5: Ridge regression

Når vi har mange forklarende variable som i eksemplet med oktantallet i bensinprøver, kan vi ikke bruge backward selektion, og forward selektion giver kun begrænsede muligheder for valget af variable. Hvis for eksempel forward selektion giver fire variable, er disse fremkommet ved en bestemt sekventiel procedure og ikke ved, at man har søgt blandt alle mulige valg med fire variable. I eksemplet med 401 forklarende variable er der over 1 milliard muligheder for valg af fire variable. Forward selektion lægger restriktion på valget af variable. I dette afsnit skal vi anskue estimationsproblematikken på en anden måde, idet vi beholder alle variable, men lægger restriktion på, hvor meget estimaterne af regressionskoefficienterne må variere. Når vi estimerer parametrene i en multipel regressionsmodel med forklarende variable minimerer vi kvadratsummen
Hvis , er det uendelig mange løsninger, hvor ovenstående sum bliver lig med nul, eller sagt på en anden måde, hvor alle de forventede værdier er lig med de observerede værdier og spredningsskønnet er . Figuren nedenfor (stiplede linje) viser en af de mulige løsninger for datasættet med oktantal. Løsningen er udvalgt, således at kvadratnormen er mindst mulig, nemlig 3.16. Vi kan gå videre i denne retning ved at se på løsninger, der gør kvadratsummen (9.5.1) lille, samtidig med at kvadratnormen ikke er for stor. I figuren nedenfor er den fuldt optrukne kurve en sådan løsning, hvor kvadratnormen er lig med 0.12 og kvadratsummen (9.5.1) er 1.26. Vi ser tydeligt her, at ved at lægge restriktion på får vi løsninger, der "udglatter" den voldsomme variation i løsningen med Intuitivt virker det rimeligt, at en løsning skal udvise en "glathed", der ligner den glathed, der er i et spektrum De løsninger, der betragtes i dette afsnit, kaldes også regulariserede løsninger.
I den følgende figur viser de to nederste delfigurer udsnit af den øverste figur i områder omkring de tre første variable, der kommer med ved forward selektionsmetoden i afsnit 9.4.
Metoden til at finde de regulariserede løsninger kaldes ridge regression.
Definition 9.5.1. (Ridge regression)
I ridge regression vælges en værdi af (regulariseringsparameteren), og skøn over og i den multiple regressionsmodel 9.1.1 findes ved at minimere
Når vi lader gå mod nul, får vi den stiplede løsning i figuren ovenfor, og når vi lader blive meget stor, får vi løsningen, hvor alle estimaterne af regressionskoefficienterne er nul. I Definition 9.5.1 vægter alle regressionskoefficienterne lige meget i kvadratnormen. Dette forudsætter, at alle de forklarende variable er på "samme skala". I implementeringen af ridge regression i det følgende skjulte punkt foretages derfor en centrering og skalering af alle de forklarende variable, og figurerne i dette afsnit, såvel som angivne kvadratnormer, vedrører regressionskoefficienterne hørende til de skalerede variable.

9.5.2 Ridge regression i python

For at finde løsningen og til minimerigsproblemet 9.5.1 har jeg lavet en funktion ridge (ligger i filen pytFunktioner.py, henholdsvis ridge.m). Input til denne er matricen med de forklarende variable, vektoren med responsværdierne, og værdien af der ønskes undersøgt. Output er , og hvor er den 'te forventede værdi. Normalt dividerer vi i et spredningsskøn ikke med , men med et frihedsgradsantal. For ridge regression er der imidlertid ikke et naturligt frihedsgradsantal. I det følgende kodevindue er koden til ridge skrevet ind, og data omkring oktantallet i bensinprøver analyseres. Der laves en figur af og en figur med de observerede oktantal mod de forventede værdier.

Se opstartskoden (til/fra)

MATLAB-kode

Prøv at lege med koden ved at køre koden flere gange med en følge af -værdier på formen 0.01,0.1, 1, 10, 100 og 1000. Hold især øje med, om der kommer systematiske afvigelser fra identitetslinjen i figuren med de observerede afsat mod de forventede. Hvilken værdi af vil du vælge ud fra den sidste synsvinkel?

Svar: Vælge $\lambda$

Med værdien som er værdien givet i koden, kan man ikke se nogen systematisk afvigelse, og vi kan godt prøve at gøre større. Med ser figuren stadig acceptabel ud, men det yderste punkt i hver ende er faktisk blevet rykket lidt bort fra identitetslinjen. Med ser vi klare systematiske afvigelser, hvor langt de fleste punkter med forventet værdi i den nedre halvdel ligger under identitetslinjen. En værdi af omkring 10 synes derfor rimelig. I næste afsnit bliver cross-validation til bestemmelse af omtalt.

Når man har analyseret data, og besluttet hvilken værdi af regulariseringsparameteren , der giver den bedste tilpasning til data, vil man ofte bruge modellen til at prædiktere respons (eller rettere middelværdien af respons) for nye værdier af de forklarende variable. Den prædikterede værdi er
hvor er parameterskønnene fra ridge regressionen, og er de nye forklarende værdier.

9.5.3 Ridge prædiktion i python

De prædikterede værdier beregnes meget nemt i python og MATLAB. Lad alpha og beta være output fra ridge-funktionen, og lad Tnye være en matriks, hvor hver række indeholder et sæt forklarende værdier, for hvilke man ønsker at beregne en prædikteret værdi (i alt ønskes altså prædikterede værdier). Beregningen foretages som følger,
Beregningsmetoden blev brugt i det ovenstående skjulte punkt Ridge regression i python til at beregne de forventede værdier, hvilket svarer til, at Tnye er den oprindelige matriks med de forklarende værdier.
Et approksimativt prædiktionsinterval for en kommende observation kan laves som
hvor er prædiktionsspredningen fundet ved cross-validation, hvilket beskrives i det næste afsnit.

ForegåendeNæste