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
Det virker 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.
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.
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 ?
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.
De prædikterede værdier beregnes meget nemt i python.
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.