Statistisches Lernen Einheit 12: Modellwahl und Regularisierung Dr. rer. nat. Christine Pausch Institut für Medizinische Informatik, Statistik und Epidemiologie Universität Leipzig WS 2014/2015 1 / 28
Einführung Einführung Lineares Modell: Y = β 0 + β 1 x 1 + β 2 x 2 + + β p x p + ɛ Wie kann man relevante Prädiktoren auswählen, d.h. die Interpretierbarkeit des Modells verbessern? Wie kann man die Vorhersageleistung verbessern, bei vielen Prädiktoren p und moderater Stichprobengröße n? Was tun bei hochdimensionalen Daten (p n)? 2 / 28
Einführung Methoden Subset selection: Modell mit einem Teil der p Prädiktoren mit hoher Vorhersagekraft Shrinkage/Regularisierung: Modell mit allen p Prädiktoren, Koeffizienten werden gegen 0 geschrumpft Dimensionsreduktion: Projektion von p auf M, mit M < p, Verwendung der M Projektionen als Prädiktoren 3 / 28
Subset-Selection Best-Subset-Selection Wahl des besten Modells aus allen möglichen Modellen Algorithmus: 1 Nullmodel M 0 ohne Prädiktoren 2 Für k = 1, 2,..., p: 1 Passe alle ( p k) Modelle mit genau k Prädiktoren an 2 Wähle aus diesen Modellen das beste Modell M k 3 Wähle das beste Modell aus den Modellen M 0,..., M p 4 / 28
Subset-Selection Wahl des besten Modells Ziel: Modell mit kleinstem Vorhersagefehler auf Testdaten (neuen Daten) wählen Problem: Modell mit den meisten Prädiktoren wird immer kleinsten MSE oder größtes R 2 auf Trainingsdaten haben Testdaten-Vorhersagefehler schätzen: Indirekt: Adjustieren des Trainingsdaten-Vorhersagefehlers Direkt: Validierungsdaten oder Resampling-Methoden, z.b. Kreuzvalidierung 5 / 28
Subset-Selection Modellbewertungskriterien im linearen Modell Residual sum of squares (RSS): RSS = Var(ɛ) = n (y i ŷ i ) 2 i=1 R 2 -Statistik: Anteil erklärter Varianz n R 2 i=1 = (ŷ i ȳ) 2 n n i=1 (y i ȳ) 2 = 1 i=1 (y i ŷ i ) 2 n i=1 (y i ȳ) 2 = 1 RSS TSS Adjustiertes R 2 Radj 2 RSS/(n d 1) = 1 TSS/(n 1) mit d Prädiktoren 6 / 28
Subset-Selection Modellbewertungskriterien im linearen Modell II Mallow s C p C p = 1 n (RSS + 2d ˆσ2 ) mit ˆσ 2 Schätzer der Residualvarianz im vollen Modell Akaikes Informationskriterium (AIC): AIC = 1 nˆσ 2 (RSS + 2d ˆσ2 ) im linearen Modell sind C p und AIC proportional zueinander Bayessches Informationskriterium (BIC) BIC = 1 n (RSS + log(n)d ˆσ2 ) v-fach kreuzvalidierter Vorhersagefehler (MSE): MSE = 1 V n RSS n v 1 v = (y i ˆf v (x i )) 2 n n v=1 v i C v 7 / 28
Subset-Selection Beispiel Baseball-Daten Datensatz Hitters im R-Paket ISLR Interessierende Variable: Bezahlung von 263 Baseballspielern in den Major Leagues 1986 und 1987 19 weitere Variablen: Anzahl (Home) Runs, Putouts, Hits usw., Beschäftigungsdauer in den Major Leagues, National oder American League,... 8 / 28
Subset-Selection Beispiel Baseball-Daten RSS Adjustiertes R 2 RSS 2.4e+07 3.0e+07 3.6e+07 5 10 15 Adjustiertes R 2 0.35 0.40 0.45 0.50 5 10 15 Anzahl Variablen Anzahl Variablen Mallow's C p BIC Mallow's C p 20 40 60 80 100 5 10 15 BIC 150 130 110 90 5 10 15 Anzahl Variablen Anzahl Variablen 9 / 28
Subset-Selection Best-Subset-Selection Wahl des besten Modells aus allen möglichen Modellen Algorithmus: 1 Nullmodel M 0 ohne Prädiktoren 2 Für k = 1, 2,..., p: 1 Passe alle ( p k) Modelle mit genau k Prädiktoren an 2 Wähle aus diesen Modellen das beste Modell M k mit kleinstem RSS bzw. MSE oder größtem R 2 3 Wähle das beste Modell aus den Modellen M 0,..., M p bzgl. AIC, BIC, adjustiertem R 2 oder kreuzvalidiertem Vorhersagefehler Problem: Für große p sehr rechenaufwändig, da 2 p Modelle angepasst werden müssen. 10 / 28
Subset-Selection Vorwärts-Einschluss (Forward selection) Beginnend mit dem Nullmodel schrittweiser Einschluss der Variablen, die die Anpassung am meisten verbessert. Algorithmus: 1 Nullmodel M 0 ohne Prädiktoren 2 Für k = 0, 2,..., p 1: 1 Betrachte alle p k Modelle, die das Modell M k um einen zusätzlichen Prädiktor erweitern 2 Wähle aus diesen p k Modellen das beste Modell M k+1 mit kleinstem RSS bzw. MSE oder größtem R 2 3 Wähle das beste Modell aus den Modellen M 0,..., M p bzgl. AIC, BIC, adjustiertem R 2 oder kreuzvalidiertem Vorhersagefehler Anpassung von 1 + p 1 k=0 (p k) = 1 + p(p + 1)/2 Modellen notwendig. 11 / 28
Subset-Selection Rückwärts-Elimination (Backward selection) Beginnend mit dem vollen Modell schrittweiser Ausschluss der Variablen, die am wenigsten zur Anpassung beiträgt. Algorithmus: 1 Model M p mit allen p Prädiktoren 2 Für k = p, p 1..., 1: 1 Betrachte k Modelle, die das Modell M k um einen der Prädiktoren verringern 2 Wähle aus diesen k Modellen das beste Modell M k 1 mit kleinstem RSS bzw. MSE oder größtem R 2 3 Wähle das beste Modell aus den Modellen M 0,..., M p bzgl. AIC, BIC, adjustiertem R 2 oder kreuzvalidiertem Vorhersagefehler Anpassung von 1 + p 1 k=0 (p k) = 1 + p(p + 1)/2 Modellen notwendig. 12 / 28
Subset-Selection Vorwärts-Selektion und Rückwärts-Elimination Problem: U.U. wird nicht das beste aller Modelle gewählt. Vorwärts-Selektion auch bei hochdimensionalen Daten anwendbar. Alternativen: Hybrid-Ansätze, die Prädiktoren sowohl selektieren als auch elimineren. 13 / 28
Shrinkage Shrinkage Modifikation der Kleinste-Quadrate-Schätzung RSS = n p (y i β 0 β j x ij ) 2 min i=1 j=1 Ziel: Schrumpfen der Koeffizienten gegen 0 Stabile Modelle für große Anzahl Prädiktoren p Trotz nötiger Tuning-Parameter-Wahl schnellere Berechnung als bei Best-Subset-Selection 14 / 28
Shrinkage Ridge-Regression Schätzen der Koeffizienten durch n p (y i β 0 β j x ij ) 2 + λ p i=1 j=1 j=1 β 2 j min mit Tuning-Parameter λ Bestimmung von λ mit Kreuzvalidierung 15 / 28
Shrinkage Bias-Variance-Trade-off Simulierter Datensatz mit 45 Prädiktoren und 50 Beobachtungen Mean Squared Error 0 10 20 30 40 50 60 1e 01 1e+01 1e+03 λ Quelle: T. Hastie, R. Tibshirani, J. Friedman: The Elements of Statistical Learning, Springer 2013, S. 218 16 / 28
Shrinkage Lasso Schätzen der Koeffizienten durch n (y i β 0 i=1 mit Tuning-Parameter λ p β j x ij ) 2 + λ j=1 Bestimmung von λ mit Kreuzvalidierung p β j min Vorteil gegenüber Ridge-Regression: Automatische Variablenselektion, da viele Variablen Koeffizienten gleich 0 erhalten j=1 17 / 28
Shrinkage Ridge und Lasso auf den Baseball-Daten Ridge Lasso Standardisierte Koeffizienten 500 0 500 Standardisierte Koeffizienten 500 0 500 5 0 5 10 log(λ) 5 0 5 10 log(λ) 18 / 28
Shrinkage Variablenselektionseigenschaft des Lasso Andere Formulierung des Schätzproblems n p (y i β 0 β j x ij ) 2 min i=1 j=1 unter Berücksichtigung von p j=1 β j s (Lasso) bzw. p j=1 β2 j s (Ridge) Für p = 2 β 2 β 2 β ^ β^ β 1 β 1 Quelle: T. Hastie, R. Tibshirani, J. Friedman: The Elements of Statistical Learning, Springer 2013, S. 222 19 / 28
Dimensionsreduktion Dimensionsreduktion Schritt 1: Linearkombinationen Z 1, Z 2,..., Z M, M < p, der p Prädiktoren: p Z m = φ jm X j, m = 1,..., M j=1 mit Skalaren φ 1m, φ 2m,..., φ pm Schritt 2: Regressionsmodell anpassen y i = θ 0 + M θ m z im + ɛ i, i = 1,..., n m=1 D.h. Kleinste-Quadrate-Schätzung von M + 1 statt p + 1 Koeffizienten 20 / 28
Dimensionsreduktion Hauptkomponentenanalyse/Principal components analysis Idee: Verschieben des Koordinatensystems unter Verkleinerung der Varianz Erste Hauptkomponte enthält höchsten Varianzanteil, usw. Annahme: Die Variablen mit höchster Streuung enthalten größte Information bzgl. Endpunkt Endpunkt wird nicht berücksichtigt, deshalb unüberwachtes Lernen Variablen sollten standardisiert werden Wahl der optimalen Anzahl an Hauptkomponenten durch Kreuzvalidierung 21 / 28
Dimensionsreduktion Beispiel PCA Ad Spending 5 10 15 20 25 30 2nd Principal Component 10 5 0 5 10 20 30 40 50 Population 20 10 0 10 20 1st Principal Component Quelle: T. Hastie, R. Tibshirani, J. Friedman: The Elements of Statistical Learning, Springer 2013, S. 232 22 / 28
Dimensionsreduktion Partial least squares (PLS) Überwachte Alternative zur Hauptkomponentenanalyse Vorgehen: Erste PLS-Komponente, Z 1, entspricht Linearkombination mit Koeffizienten aus linearer Regression Z 2 bis Z M erhält man aus der Regression der jeweiligen Residuen Variablen sollten standardisiert werden Wahl der optimalen Anzahl an Komponenten durch Kreuzvalidierung 23 / 28
Dimensionsreduktion Zusammenfassung Einfache lineare Regression nur anwendbar und sinnvoll, wenn p n Alternativen: Subset selection: Liefert einfache und interpretierbare Modelle, allerdings u.u. sehr rechenaufwändig Shrinkage/Regularisierung: Lasso liefert gut interpretierbare Modelle mit moderatem Rechenaufwand Dimensionsreduktion: gute Vorhersageleistung, aber nicht direkt interpretierbar Alle Methoden enthalten Tuningparameter, die durch Kreuzvalidierung bestimmt werden sollten! Bei hochdimensionalen Daten muss bzgl. der Interpretierbarkeit der ausgewählten Prädiktoren allerdings beachtet werden, dass diese oft hochkorreliert mit anderen Variablen sind, die nicht ins Modell aufgenommen wurden. 24 / 28
Anwendung Aufgaben Wenden Sie Vorwärts-Selektion und Rückwärts-Elimination, Lasso und Ridge-Regression, sowie Hauptkomponentenanalyse und PLS auf den Baseball-Daten an! 25 / 28
Anwendung R-Code Vorwärts-Selektion und Rückwärts-Elimination > library(islr) > library(leaps) > hitters <- na.omit(hitters) > # > ### Forward > # > regfit.fwd <- regsubsets(salary~., hitters, method="forward", nvmax=ncol( > (summary.fwd <- summary(regfit.fwd)) > coef(regfit.fwd, id=which.min(summary.fwd$bic)) > # > ### Backward > # > regfit.bwd <- regsubsets(salary~., hitters, method="backward", nvmax=ncol > (summary.bwd <- summary(regfit.bwd)) > coef(regfit.bwd, id=which.min(summary.bwd$bic)) 26 / 28
Anwendung R-Code: Ridge und Lasso > library(glmnet) > grid <- 10^seq(10, -2, length=200) > x <- model.matrix(salary~., hitters)[, -1] > y <- hitters$salary > # > ### Ridge > # > set.seed(1) > cv <- cv.glmnet(x, y, alpha=0, lambda=grid) > plot(cv) > mod.ridge.opti <- glmnet(x, y, lambda=cv$lambda.min, alpha=0) > coef(mod.ridge.opti) > # > ### Lasso > # > set.seed(1) > cv <- cv.glmnet(x, y, lambda=grid, alpha=1) > plot(cv) > mod.lasso.opti <- glmnet(x, y, alpha=1, lambda=cv$lambda.min) > coef(mod.lasso.opti) 27 / 28
Anwendung R-Code: PCR und PLS > library(pls) > # > ### PCR > # > set.seed(2) > pcr.fit <- pcr(salary~., data=hitters, scale=true, validation="cv") > summary(pcr.fit) > validationplot(pcr.fit, val.type="r2") > # > ### PLS > # > set.seed(2) > pls.fit <- plsr(salary~., data=hitters, scale=true, validation="cv") > summary(pls.fit) > validationplot(pls.fit, val.type="r2") 28 / 28