For ridge regression har vi ikke et naturligt skøn over
spredningen i den multiple regressionsmodel.
Output fra funktionen ridge giver skønnet
hvor der divideres med i stedet for et passende (men ukendt)
antal frihedsgrader. Skønnet vil aftage med
og blive lig med nul når er nul.
For at få et mere realistisk billede af spredningen
vil vi bruge prædiktionsspredningen fra
leave one out cross-validation (LOOCV)
som i afsnit 9.3. Denne kan så bruges til
at lave et passende valg af regulariseringsparameteren
Figuren nedenfor viser i det venstre
delplot forløbet af som funktion af
på en logaritmisk skala. Vi ser her, hvordan
langsomt vokser op fra nul, og omkring
skifter til en kraftig voksende funktion
(gå eventuelt tilbage til foregående afsnit
og beregn nogle af -værdierne i figuren).
Prædiktionsspredningen er vist i det
højre delplot. Minimum fås med omkring 1 og i området med
mellem 0.4 og 10 er tæt på minimumsværdien.
Med er
prædiktionsfejlen fra krydsvalideringen
Dette er en smule bedre end værdien 0.26 fra forward selektion
med tre variable (en 20 procents forbedring).
Beregningen af prædiktionsspredningen er vist
i det skjulte punkt nedenfor under brug af funktionen
cvRidge.
I de to nederste delfigurer
vises forskellige aspekter af ridge regression
for forskellige værdier af .
I nederste venstre delfigur er vist forløbet af tre af koordinaterne i
. Vi kan se her, hvordan
koordinaterne går mod nul, når bliver stor.
I nederste højre delfigur er vist forløbet for tre forventede værdier
. For stor nærmer disse værdier sig
genemsnittet af alle responsværdierne.
Resultat 9.6.1.
(Valg af regulariseringsparameter)
I ridge regression vælges værdien af regulariseringsparameteren
ved hjælp af cross-validation. Som udgangspunkt vælges den værdi af
der giver den mindste værdi af prædiktionsspredningen
Værdien kaldes Eventuelt vælges en værdi lidt større end der opfylder,
at ikke er meget større end
og et plot med de observerede mod
de forventede ikke viser systematisk afvigelse fra identitetslinjen.
For at finde prædiktionsspredningen ved LOOCV
har jeg lavet en funktion cvRidge.
Input til denne er matricen med de forklarende variable,
vektoren
med responsværdierne, og værdien af , der ønskes undersøgt.
Output er prædiktionsspredningen defineret som i
(9.3.2), og en standard error for baseret på
de værdier, der indgår i beregningen ().
I det følgende kodevindue er koden til
cvRidge skrevet ind, og
data omkring oktantallet i bensinprøver analyseres.
Prøv at køre koden flere gange
med en følge af -værdier på formen
0.1, 1, 10, 100 og 1000, og se at de fundne værdier
stemmer overens med figuren ovenfor.
I ovenstående eksempel har jeg lagt op til, at et endeligt
valg af er Minimum af
fås med valget
, og minimumsværdien er
Dette tal kommer med en usikkerhed (standard error),
og denne er vurderet til
i programmet cvRidge.
Der er delvist en tradition for, at man vælger en værdi af
lidt over den værdi, der giver minimum. Dette skyldes, at man ønsker
at regularisere løsningen mest muligt.
Nogle programmer har indbygget, at vælges som den værdi
større end hvor er
Jeg lægger ikke op
til at bruge denne regel automatisk. I stedet anbefaler jeg, at
man vurderer en værdi af lidt over
ved at se efter, om der optræder systematiske afvigelser i et plot
af de observerede mod de forventede. Ud fra en sådan tilgang vil jeg
vælge omkring 10 for bensindata.
Med er prædiktionsspredningen
som cirka er
Man skal vælge til cirka 60, for at få en prædiktionsspredning der
er For denne
værdi synes jeg, at der er tydelige systematiske afvigelser i et
plot af de observerede mod de forventede. Prøv selv i koden
Ridge regression i python
at køre og og se på de figurer
der dannes med de observerede afsat mod de forventede.
ForegåendeNæste