Afsnit 9.6: Cross-validation i ridge regression

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.

9.6.2 Cross-validation

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.

Se opstartskoden (til/fra)

MATLAB-kode

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æsteNæste