Jag förstår typiskt vad "överanpassning" betyder, men jag behöver hjälp med hur jag kan komma på ett verkligt exempel som gäller överanpassning.
Jag förstår typiskt vad "överanpassning" betyder, men jag behöver hjälp med hur jag kan komma på ett verkligt exempel som gäller överanpassning.
Här är ett bra exempel på tidsseriemodeller för presidentval från xkcd:
Det har bara varit 56 presidentval och 43 presidenter. Det är inte mycket data att lära av. När prediktorutrymmet expanderar till att inkludera saker som att ha falska tänder och Scrabble-punktvärdet för namnen, är det ganska enkelt för modellen att gå från att passa de generaliserande funktionerna i data (signalen) och att börja matcha bruset. När detta händer kan anpassningen till historiska data förbättras, men modellen kommer att misslyckas när den används för att göra slutsatser om framtida presidentval.
Min favorit var Matlabs exempel på folkräkningen i USA jämfört med tiden:
(Jag hoppas åtminstone uppriktigt hoppas detta är ett exempel på överanpassning)
http://www.mathworks.com/help/curvefit/examples/polynomial-curve-fitting.html#zmw57dd0e115
Studien av Chen et al. (2013) passar två kubik till en förmodad diskontinuitet i livslängden som en funktion av latitud.
Chen Y., Ebenstein, A., Greenstone, M., and Li, H. 2013. Bevis på konsekvenserna av hållbar exponering för luftföroreningar på livslängden från Kinas Huai River-politik. Proceedings of the National Academy of Sciences 110: 12936–12941. abstrakt
Trots att det publicerades i en enastående tidskrift etc., dess tysta godkännande av framstående människor etc., skulle jag fortfarande presentera detta som en prima facie exempel på överpassning.
Ett kännetecken är osannolikheten för kubik. Att montera en kubik antar implicit att det finns någon anledning till att livslängden skulle variera som ett tredje gradens polynom av latitud där du bor. Det verkar ganska osannolikt: det är inte lätt att föreställa sig en trolig fysisk mekanism som skulle orsaka en sådan effekt.
Se även följande blogginlägg för en mer detaljerad analys av denna uppsats: Bevis på inverkan av ihållande användning av polynomregression på orsaksslutledning (ett påstående att koluppvärmning minskar livslängden med fem år för en halv miljard människor).
I en 14 mars 2014-artikel i Science identifierade David Lazer, Ryan Kennedy, Gary King och Alessandro Vespignani problem i Google Flu Trends som de tillskriver överanpassning.
Så här berättar de historien, inklusive deras förklaring av typen av överanpassning och varför det fick algoritmen att misslyckas :
I februari 2013 ... Naturen rapporterade att GFT förutspådde mer än dubbelt så mycket andelen läkarbesök för influensaliknande sjukdom (ILI) än Centersfor Disease Control and Prevention (CDC) .. ... Detta hände trots att GFT byggdes för att förutsäga CDCreports ....
I huvudsak var metoden att hitta de bästa matchningarna bland 50 miljoner söktermer för att passa 1152 datapunkter. Oddsen för att hitta söktermer som överensstämmer med influensans benägenhet men som är strukturellt oberoende och därför inte förutsäger framtiden var ganska höga. GFT-utvecklare rapporterar i själva verket att säga bort säsongsöversikter som inte är relaterade till influensa, men som är starkt korrelerade med CDC-data, till exempel de som rör gymnasiet. Detta borde ha varit en varning för att de stora uppgifterna överträffade det lilla antalet fall - en vanlig oro i dataanalysen. Denna adhoc-metod för att kasta ut speciella sökord misslyckades när GFT helt missade den icke-säsongsbetonade influensan A – H1N1 2009.
[Betoning tillagd.]
Jag såg den här bilden för några veckor sedan och tyckte att den var ganska relevant för frågan.
Istället för att linjärt passa sekvensen, var den försedd med ett kvartspolynom, som passade perfekt men resulterade i ett klart löjligt svar.
För mig är det bästa exemplet Ptolemaic system inom astronomi. Ptolemaios antog att jorden är i centrum av universum och skapade ett sofistikerat system av kapslade cirkulära banor, som skulle förklara objektets rörelser på himlen ganska bra. Astronomer var tvungna att fortsätta lägga till cirklar för att förklara avvikelse, tills det en dag blev så invecklat att folk började tvivla på det. Det var då Copernicus kom med en mer realistisk modell.
Detta är det bästa exemplet på överutrustning för mig. Du kan inte överdriva datagenereringsprocessen (DGP) till data. Du kan bara överdräva felaktigt specificerad modell. Nästan alla våra modeller inom samhällsvetenskap är felaktigt specificerade, så nyckeln är att komma ihåg detta och hålla dem tuffa. Inte för att försöka fånga alla aspekter av datamängden, utan försöka fånga de viktigaste funktionerna genom förenkling.
Låt oss säga att du har 100 punkter i en graf.
Du kan säga: hmm, jag vill förutsäga nästa.
Här kan du se en förenklad illustration för detta exempel:
Ju högre polynomordning, desto bättre kommer den att passa de befintliga punkterna.
Polynom av hög ordning, trots att de ser ut att vara bättre modeller för prickarna, överlagrar dem faktiskt. Det modellerar bruset snarare än den verkliga datafördelningen.
Som en följd, om du lägger till en ny punkt i diagrammet med din perfekt passande kurva, kommer den troligen att vara längre bort från kurvan än om du använde ett enklare polynom med låg ordning.
Analysen som kan ha bidragit till Fukushima-katastrofen är ett exempel på överanpassning. Det finns ett välkänt förhållande inom geovetenskap som beskriver sannolikheten för jordbävningar av en viss storlek, med tanke på den observerade frekvensen av "mindre" jordbävningar. Detta är känt som Gutenberg-Richter-förhållandet, och det ger en linjär loggpassning under många decennier. Analys av jordbävningsrisken i närheten av reaktorn (detta diagram från Nate Silvers utmärkta bok "The Signal and the Noise") visar en "kink" i data. Att ignorera knäcken leder till en uppskattning av den årliga risken för en jordbävning med styrka 9 som cirka 1 av 300 - definitivt något att förbereda sig för. Övermontering av en dubbel lutningslinje (som uppenbarligen gjordes under den initiala riskbedömningen för reaktorerna) minskar dock riskprognosen till cirka 1 på 13 000 år. Man kunde inte klandra ingenjörerna för att de inte utformade reaktorerna för att motstå en sådan osannolik händelse - men man borde definitivt klandra statistikerna som överanpassade (och sedan extrapolerade) data ...
"Agh! Pat lämnar företaget. Hur ska vi någonsin hitta en ersättare?"
Jobb:
Önskas: Elektrotekniker. 42 år gammal androgyn person med examen inom elektroteknik, matematik och djurhållning. Måste vara 68 tum långa med brunt hår, en mullvad över vänster öga och benägen för långvariga diatribes mot gäss och missbruk av ordet "råd".
I matematisk mening, överanpassning hänvisar ofta till att skapa en modell med fler parametrar än vad som är nödvändigt, vilket resulterar i en bättre passform för en specifik datamängd, men utan att fånga relevanta detaljer som är nödvändiga för att passa andra datamängder från intresseklass. > I ovanstående exempel kan affischen inte skilja det relevanta från irrelevanta egenskaper. De resulterande kvalifikationerna uppfylls sannolikt bara av den person som de redan vet är rätt för jobbet (men inte längre vill ha det).
Den här är sminkad, men jag hoppas att den kommer att illustrera fallet.
Exempel 1
Låt oss först göra några slumpmässiga data . Här har du $ k = 100 $ variabler, var och en från en normal normalfördelning, med $ n = 100 $ fall:
set.seed (123) k <- 100data <- replikera ( k, rnorm (100)) colnames (data) <- make.names (1: k) data <- as.data.frame (data)
Nu ska vi passa en linjär regression till det:
passa <- lm (X1 ~., data = data)
Och här är en sammanfattning för de första tio prediktorerna:
> sammanfattning (passform) Anrop: lm (formel = X1 ~., data = data) Rester: ALLA 100 rester är 0: inga kvarvarande frihetsgrader! Koefficienter: Uppskattning Std. Fel t värde Pr (> | t |) (Intercept) -1.502e-01 NA NA NAX2 3.153e-02 NA NA NAX3 -6.200e-01 NA NA NAX4 7.087e-01 NA NA NAX5 4.392e-01 NA NA NAX6 2.979e-01 NA NA NAX7 -9.092e-02 NA NA NAX8 -5.783e-01 NA NA NAX9 5.965e-01 NA NA NAX10 -8.289e-01 NA NA NA ... Reststandardfel: NaN vid 0 grader av freedomMultiple R-kvadrat: 1, Justerat R-kvadrat: NaN F-statistik: NaN på 99 och 0 DF, p-värde: NA
resultaten ser ganska konstiga ut, men låt oss plotta det.
Det är fantastiskt, anpassade värden passar perfekt till $ X_1 $ -värdena. Felvariansen är bokstavligen noll. Men låt det inte övertyga oss, låt oss kontrollera vad som är summan av absoluta skillnader mellan $ X_1 $ och monterade värden:
> sum (abs (data $ X1-monterad (passa))) [1] 0
Det är noll, så tomterna ljög inte för oss: modellen passar perfekt. Och hur exakt är det i klassificeringen?
> sum (data $ X1 == monterad (passform))
[1] 100
Vi får 100 av 100 anpassade värden som är identiska med $ X_1 $. Och vi fick detta med helt slumpmässiga nummer anpassade till andra helt slumpmässiga nummer.
Exempel 2
Ytterligare ett exempel. Låt oss göra lite mer data:
data2 <- cbind (1:10, diag (10)) colnames (data2) <- make.names (1:11) data2 <- as. data.frame (data2)
så det ser ut så här:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X111 1 1 0 0 0 0 0 0 0 0 02 2 0 1 0 0 0 0 0 0 0 03 3 0 0 1 0 0 0 0 0 0 04 4 0 0 0 1 0 0 0 0 0 05 5 0 0 0 0 1 0 0 0 0 06 6 0 0 0 0 0 1 0 0 0 07 7 0 0 0 0 0 0 1 0 0 08 8 0 0 0 0 0 0 0 0 0 0 9 9 0 0 0 0 0 0 0 0 1010 10 0 0 0 0 0 0 0 0 0 1
och låter nu passa en linjär regression till detta:
fit2 <- lm (X1 ~., Data2)
så vi får följande uppskattningar:
> sammanfattning (fit2) Samtal: lm (formel = X1 ~., data = data2) Rester: ALLA 10 rester är 0: inga kvarvarande frihetsgrader! Koefficienter: (1 definieras inte på grund av singulariteter) Est imate Std. Fel t värde Pr (> | t |) (Intercept) 10 NA NA NAX2 -9 NA NA NAX3 -8 NA NA NAX4 -7 NA NA NAX5 -6 NA NA NAX6 -5 NA NA NAX7 -4 NA NA NAX8 -3 NA NA NAX9 -2 NA NA NAX10 -1 NA NA NAX11 NA NA NA Nara standardfel: NaN på 0 frihetsgrader Flera R-kvadrat: 1, Justerad R-kvadrat: NaN F-statistik: NaN på 9 och 0 DF, p- värde: NA
som du kan se har vi $ R ^ 2 = 1 $, dvs "100% varians förklaras". Linjär regression behövde inte ens använda en 10: e prediktor. Från denna regression ser vi att $ X_1 $ kan förutsägas med funktionen:
$$ X_1 = 10 + X_2 \ times -9 + X_3 \ times -8 + X_4 \ times -7 + X_5 \ times -6 + X_6 \ gånger -5 + X_7 \ gånger -4 + X_8 \ gånger -3 + X_9 \ gånger -2 $$
så $ X_1 = 1 $ är:
$$ 10 + 1 \ gånger -9 + 0 \ gånger -8 + 0 \ gånger -7 + 0 \ gånger -6 + 0 \ gånger -5 + 0 \ gånger -4 + 0 \ gånger -3 + 0 \ gånger -2 $$
Det är ganska självförklarande. Du kan tänka dig Exempel 1 som liknar Exempel 2 men med lite "brus" tillagt. Om du har tillräckligt stora data och använder den för att "förutsäga" något kan ibland en enda "funktion" övertyga dig om att du har ett "mönster" som beskriver din beroende variabel väl, medan det bara kan vara en tillfällighet. I Exempel 2 förutses ingenting egentligen, men exakt detsamma har hänt i exempel 1 bara variablernas värden var olika.
Exempel på verkliga liv
Exempel på verkliga livet för detta är att förutsäga terroristattacker den 11 september 2001 genom att titta på "mönster" i siffror som slumpmässigt ritas av datorns pseudorandom nummergeneratorer av Global Consciousness Project eller "hemliga meddelanden" i "Moby Dick" som avslöjar fakta om mord på kända personer (inspirerade av liknande upptäckter i Bibeln).
Slutsats
Om du ser tillräckligt hårt, hittar du "mönster" för vad som helst. Men dessa mönster låter dig inte lära dig något om universum och hjälper dig inte att nå några allmänna slutsatser. De passar perfekt till dina data, men skulle vara värdelösa eftersom de inte passar något annat än själva data. De låter dig inte göra några rimliga förutsägelser utanför provet, för vad de skulle göra är att de hellre skulle imitera än att beskriva data.
Ett vanligt problem som resulterar i överanpassning i verkliga livet är att vi förutom termer för en korrekt specificerad modell kan ha lagt till något främmande: irrelevanta krafter (eller andra transformationer) av de korrekta termerna, irrelevanta variabler eller irrelevanta interaktioner.
Detta händer i multipel regression om du lägger till en variabel som inte ska visas i den korrekt angivna modellen men inte vill släppa den eftersom du är rädd för att inducera utelämnad variabel bias. Naturligtvis har du inget sätt att veta att du felaktigt har inkluderat det, eftersom du inte kan se hela befolkningen, bara ditt urval, så du kan inte veta säkert vad den korrekta specifikationen är. (Som @Scortchi påpekar i kommentarerna kanske det inte finns något som "den korrekta" modellspecifikationen - i den meningen är målet med modellering att hitta en "tillräckligt bra" specifikation. För att undvika överanpassning innebär att man undviker en modellkomplexitet större än vad som kan upprätthållas av tillgängliga data.) Om du vill ha ett exempel på övermontering i verkligheten händer detta varje gång du kastar alla potentiella prediktorer i en regressionsmodell, om någon av dem faktiskt skulle har inget samband med svaret när andras effekter har delats ut.
Med denna typ av överanpassning är den goda nyheten att införandet av dessa irrelevanta termer inte introducerar förspänningar för dina uppskattare, och i mycket stora prover bör koefficienterna för de irrelevanta termerna vara nära noll. Men det finns också dåliga nyheter: Eftersom den begränsade informationen från ditt prov nu används för att uppskatta fler parametrar kan den bara göra det med mindre precision - så standardfelen på de verkligt relevanta villkoren ökar. Det betyder också att de sannolikt kommer att vara längre från de sanna värdena än uppskattningar från en korrekt specificerad regression, vilket i sin tur innebär att om nya värden för dina förklarande variabler ges kommer förutsägelserna från den överanpassade modellen att vara mindre exakta den korrekt angivna modellen.
Här är ett diagram över logg-BNP mot logpopulation för 50 amerikanska stater 2010. Ett slumpmässigt urval på 10 stater valdes (markerat med rött) och för det provet passar vi ett enkelt linjär modell och en polynom av grad 5. För samplingspunkterna har polynom extra frihetsgrader som låter den "vrida sig" närmare de observerade data än den raka linjen kan. Men de 50 staterna som helhet följer ett nästan linjärt förhållande, så den prediktiva prestandan hos polynommodellen på de 40 punkterna utanför provet är mycket dålig jämfört med den mindre komplexa modellen, särskilt vid extrapolering. Polynomet passade effektivt till en del av den slumpmässiga strukturen (buller) i provet, vilket inte generaliserades för den bredare befolkningen. Det var särskilt dåligt vid extrapolering utanför provets observerade intervall. (Kod plus data för denna plot finns längst ner i denna version av detta svar.)
Liknande problem påverkar regression mot flera prediktorer. För att titta på några faktiska data är det enklare med simulering snarare än verkliga prover eftersom du på så sätt styr datagenereringsprocessen (effektivt får du se "befolkningen" och det verkliga förhållandet). I denna R
-kod är den sanna modellen $ y_i = 2x_ {1, i} + 5 + \ epsilon_i $ men data tillhandahålls också om irrelevanta variabler $ x_2 $ och $ x_3 $. Jag har utformat simuleringen så att prediktorvariablerna är korrelerade, vilket skulle vara en vanlig förekomst i verkliga data. Vi passar modeller som är korrekt specificerade och överanpassade (inkluderar de irrelevanta prediktorerna och deras interaktioner) på en del av den genererade datan, och jämför sedan prediktiv prestanda i en uppehållssats. Prediktornas multikollinearitet gör livet ännu svårare för den överanpassade modellen, eftersom det blir svårare för den att plocka isär effekterna av $ x_1 $, $ x_2 $ och $ x_3 $, men notera att detta inte påverkar någon av koefficientuppskattarna .
kräver (MASS) # för multivariat normal simulering nsample <- 25 #sample to regress nholdout <- 1e6 #to check model predictionsSigma <- matrix (c (1, 0.5, 0.4, 0.5 , 1, 0,3, 0,4, 0,3, 1), nrow = 3) df <- as.data.frame (mvrnorm (n = (nsample + nholdout), mu = c (5,5,5), Sigma = Sigma) ) kolonnamn (df) <- c ("x1", "x2", "x3") df $ y <- 5 + 2 * df $ x1 + rnorm (n = nrow (df)) #y = 5 + * x1 + eholdout.df <- df [1: nholdout,] regress.df <- df [(nholdout + 1) :( nholdout + nsample),] overfit.lm <- lm (y ~ x1 * x2 * x3, regress. df) correctspec.lm <- lm (y ~ x1, regress.df) sammanfattning (overfit.lm) sammanfattning (correctspec.lm) holdout.df $ overfitPred <- predict.lm (overfit.lm, newdat a = holdout.df) holdout.df $ correctSpecPred <- förutsäga.lm (korrigerarpec.lm, newdata = holdout.df) med (holdout.df, sum ((y - overfitPred) ^ 2)) #SSEwith (holdout.df , sum ((y - correctSpecPred) ^ 2)) kräver (ggplot2)
error.df <- data.frame (Model = rep (c ("Overfitted", "Correctly specified"), each = nholdout), Error = with (holdout.df, c (y - overfitPred, y - correctSpecPred))) ggplot (error.df, aes (x = Error, color = Model)) + geom_density (size = 1) + theme (legend.position = "bottom")
Här är mina resultat från en körning, men det är bäst att köra simuleringen flera gånger för att se effekten av olika genererade prover.
>-sammanfattning (overfit.lm) Ring: lm (formel = y ~ x1 * x2 * x3, data = regress.df) Rester: Min 1Q Median 3Q Max -2,22294 -0,63142 -0,09491 0,51983 2,24193 Koefficienter: Uppskattning Std. Fel t värde Pr (> | t |) (Avlyssning) 18.85992 65.00775 0.290 0.775x1 -2.40912 11.90433 -0.202 0.842x2 -2.13777 12.48892 -0.171 0.866x3 -1.13941 12.94670 -0.088 0.931x1: x2 0.78280 2.25867 0.347 0.73 0.73 0,232 0,819x2: x3 0,08019 2,49028 0,032 0,975x1: x2: x3 -0,08584 0,43891 -0,196 0,847 Restfel: 1,101 på 17 frihetsgrader Flera R-kvadrat: 0,8297, Justerad R-kvadrat: 0,7596 F-statistik: 11,84 på 7 och 17 DF, p-värde: 1.942e-05
Dessa koefficientuppskattningar för den överanpassade modellen är fruktansvärda - bör vara cirka 5 för avlyssningen, 2 för $ x_1 $ och 0 för resten . Men standardfelen är också stora. De korrekta värdena för dessa parametrar ligger väl inom 95% konfidensintervall i varje fall. $ R ^ 2 $ är 0,8297 vilket föreslår en rimlig passform.
>-sammanfattning (korrigerarpec.lm) Ring: lm (formel = y ~ x1, data = regress.df) Rest: Min 1Q Median 3Q Max -2.4951 -0.4112 -0.2000 0.7876 2.1706 Koefficienter: Uppskattning Std. Fel t värde Pr (> | t |) (Avlyssning) 4,77844 1,1272 4,244 0,000306 *** x1 1,9974 0,2108 9,476 2,09e-09 *** --- Signif. koder: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1 Restfel kvarvarande: 1,036 vid 23 frihetsgrader Flera R-kvadrat: 0,7961, Justerat R-kvadrat: 0,7872 F-statistik : 89.8 på 1 och 23 DF, p-värde: 2.089e-09
Koefficientuppskattningarna är mycket bättre för den korrekt angivna modellen. Men notera att $ R ^ 2 $ är lägre, vid 0,7961, eftersom den mindre komplexa modellen har mindre flexibilitet för att passa de observerade svaren. $ R ^ 2 $ är farligare än användbart i det här fallet!
> with (holdout.df, sum ((y - overfitPred) ^ 2)) # SSE [1] 1271557> med (holdout.df, sum ((y - correctSpecPred) ^ 2)) [1] 1052217
Ju högre $ R ^ 2 $ på provet vi minskade på visade hur den överutrustade modellen producerade förutsägelser, $ \ hat {y} $, som var närmare den observerade $ y $ än den korrekt angivna modellen kunde. Men det beror på att det var överanpassat till dessa data (och hade mer frihetsgrader att göra så än den korrekt angivna modellen gjorde, så det kunde ge en "bättre" passform). Titta på summan av kvadrerade fel för förutsägelser på håll-set, som vi inte använde för att uppskatta regressionskoefficienterna från, och vi kan se hur mycket värre den överutrustade modellen har utfört. I verkligheten är den korrekt specificerade modellen den som ger de bästa förutsägelserna. Vi bör inte basera vår bedömning av den prediktiva prestationen på resultaten från den uppsättning data vi använde för att uppskatta modellerna. Här är en densitetsdiagram över felen, med rätt modellspecifikation som ger fler fel nära 0:
Simuleringen representerar tydligt många relevanta verkliga situationer (tänk dig alla verkliga svar som beror på en enda prediktor och föreställ dig att inkludera externa "prediktorer" i modellen) men har fördelen att du kan spela med data -genereringsprocess, provstorlekar, typen av överanpassad modell och så vidare. Detta är det bästa sättet att undersöka effekterna av överanpassning eftersom för observerade data har du generellt inte tillgång till DGP, och det är fortfarande "riktiga" data i den meningen att du kan undersöka och använda den. Här är några värdefulla idéer som du bör experimentera med:
nsample <- 25
, hela modellen är fortfarande överanpassad, trots att den är en bättre representation av den underliggande befolkningen, och vid upprepade simuleringar är dess prediktiva prestanda på hållset fortfarande konsekvent sämre. Med sådana begränsade data är det viktigare att få en bra uppskattning av koefficienten på $ x_1 $ än att spendera information om lyxen att uppskatta de mindre viktiga koefficienterna. Eftersom effekterna av $ x_2 $ och $ x_3 $ är så svåra att urskilja i ett litet urval, använder hela modellen effektivt flexibiliteten från sina extra frihetsgrader för att "passa ljudet" och detta generaliserar dåligt. Men med nsample <- 1e6
kan det uppskatta de svagare effekterna ganska bra, och simuleringar visar att den komplexa modellen har prediktiv kraft som överträffar den enkla. Detta visar hur "överanpassning" är en fråga om både modellkomplexitet och tillgänglig data. En form av överanpassning är ganska vanligt inom sport, nämligen att identifiera mönster för att förklara tidigare resultat med faktorer som inte har eller i bästa fall vaga makter att förutsäga framtida resultat. Ett vanligt inslag i dessa "mönster" är att de ofta baseras på väldigt få fall så att ren chans förmodligen är den mest troliga förklaringen till mönstret.
Exempel inkluderar saker som ("citaten" är gjorda av mig, men ser ofta lika ut)
Team A har vunnit alla X-spel sedan tränaren började bära hans magiska röda jacka.
Liknande:
Vi ska inte raka oss under slutspelet, för det har hjälpt oss att vinna de senaste X-spelen.
Mindre vidskeplig, men också en form av överanpassning:
Borussia Dortmund har aldrig tappat en Champions League-hemmamatch till en spansk motståndare när de har förlorat föregående Bundesliga-bortamatch med mer än två mål, efter att ha gjort minst en gång själva.
Liknande:
Roger Federer har vunnit alla sina Davis Cup-framträdanden till Europeiska motståndare när han åtminstone hade nått semifinalen i årets Australian Open.
De två första är ganska uppenbara nonsens (åtminstone för mig). De två sista exemplen kan mycket väl stämma i urvalet (dvs. i det förflutna), men jag skulle vara mycket glad över att satsa mot en motståndare som skulle låta denna "information" väsentligt påverka hans odds för att Dortmund skulle slå Madrid om de förlorade 4: 1 i Schalke föregående lördag eller Federer slog Djokovic, även om han vann Australian Open det året.
När jag försökte förstå detta själv började jag tänka i form av analogier med att beskriva verkliga objekt, så jag antar att det är så "verklig värld" som du kan få, om du vill förstå den allmänna idén:
Säg att du vill beskriva någon stolens koncept så att de får en konceptuell modell som gör att de kan förutsäga om ett nytt objekt de hittar är en stol. Du går till Ikea och får ett prov på stolar och börjar beskriva dem med hjälp av två variabler: det är ett objekt med fyra ben där du kan sitta. Det kan också beskriva en pall eller en säng eller många andra saker. Din modell är underutrustad, precis som om du skulle försöka modellera en komplex distribution med för få variabler - många saker som inte är stolar kommer att identifieras som stolar. Så, låt oss öka antalet variabler, lägg till att objektet till exempel måste ha en rygg. Nu har du en ganska acceptabel modell som beskriver din uppsättning stolar, men är tillräckligt allmän för att ett nytt objekt ska kunna identifieras som ett. Din modell beskriver informationen och kan göra förutsägelser. Men säg att du råkar ha en uppsättning där alla stolar är svarta eller vita och gjorda av trä. Du bestämmer dig för att inkludera dessa variabler i din modell och plötsligt identifierar den inte en gul plaststol som en stol. Så du har överanpassat din modell, du har inkluderat funktioner i din dataset som om de var funktioner i stolar i allmänhet (om du föredrar har du identifierat "brus" som "signal", genom att tolka slumpmässig variation från ditt prov som ett inslag i hela "verkliga världsstolar"). Så du antingen ökar ditt prov och hoppas kunna inkludera lite nytt material och färger eller minskar antalet variabler i dina modeller.
Detta kan vara en förenklad analogi och uppdelning under ytterligare granskning, men jag tror fungerar som en allmän konceptualisering ... Låt mig veta om någon del behöver förtydligas.
I prediktiv modellering är tanken att använda data till hands för att upptäcka de trender som finns och som kan generaliseras till framtida data. Genom att inkludera variabler i din modell som har någon mindre, icke-signifikant effekt överger du denna idé. Vad du gör är att överväga de specifika trenderna i ditt specifika urval som bara finns där på grund av slumpmässigt brus istället för en sann, underliggande trend. Med andra ord passar en modell med för många variabler bullret snarare än att upptäcka signalen.
Här är en överdriven illustration av vad jag pratar om. Här är punkterna observerade data och linjen är vår modell. Titta på det som en perfekt passform - vilken fantastisk modell! Men upptäckte vi verkligen trenden eller passar vi bara ljudet? Sannolikt det senare.
Här är ett "verkligt världsexempel" inte i den meningen att någon råkar stöta på det i forskning, utan i den meningen att det använder vardagliga begrepp utan många statistikspecifika termer. Kanske det här sättet att säga att det kommer att vara mer användbart för vissa människor vars utbildning är inom andra områden.
Tänk dig att du har en databas med data om patienter med en sällsynt sjukdom. Du är doktorand och vill se om du kan känna igen riskfaktorer för denna sjukdom. Det har förekommit åtta fall av sjukdomen på detta sjukhus, och du har registrerat 100 slumpmässiga uppgifter om dem: ålder, ras, födelseordning, har de haft mässling som barn, oavsett. Du har också registrerat data för 8 patienter utan denna sjukdom.
Du bestämmer dig för att använda följande heuristik för riskfaktorer: om en faktor tar ett givet värde hos fler än en av dina sjuka patienter, men i 0 av dina kontroller, kommer du att betrakta det som en riskfaktor. (I verkliga livet skulle du använda en bättre metod, men jag vill ha det enkelt). Du får reda på att 6 av dina patienter är vegetarianer (men ingen av kontrollerna är vegetarianer), 3 har svenska förfäder och två av dem har en stammande talstörning. Av de andra 97 faktorerna finns det inget som förekommer hos fler än en patient, men det finns inte bland kontrollerna.
År senare intresserar någon annan sig för denna föräldralösa sjukdom och replikerar din forskning. Eftersom han arbetar på ett större sjukhus, som har ett datadelningssamarbete med andra sjukhus, kan han använda data om 106 fall, i motsats till dina 8 fall. Och han får reda på att förekomsten av stammare är densamma i patientgruppen och kontrollgruppen; stammar är inte en riskfaktor.
Vad som hände här är att din lilla grupp slumpmässigt hade 25% stammare. Din heurist hade inget sätt att veta om detta är medicinskt relevant eller inte. Du gav kriterierna för att bestämma när du anser att ett mönster i datan är "intressant" nog för att ingå i modellen, och enligt dessa kriterier var stammningen tillräckligt intressant.
Din modell har överutrustats, eftersom den felaktigt inkluderade en parameter som inte är riktigt relevant i den verkliga världen. Det passar ditt prov - de 8 patienterna + 8 kontrollerna - mycket bra, men det passar inte den verkliga världen. När en modell beskriver ditt prov bättre än vad det beskriver verkligheten kallas det övermonterat.
Hade du valt en tröskel på 3 av 8 patienter som hade en funktion, så hade det inte hänt - men du hade större chans att missa något som faktiskt var intressant. Speciellt inom medicin, där många sjukdomar bara inträffar i en liten del av människor som uppvisar en riskfaktor, är det svårt att kompensera. Och det finns metoder för att undvika det (jämför i princip med ett andra prov och se om den förklarande kraften förblir densamma eller faller), men det här är ett ämne för en annan fråga.
Här är ett verkligt exempel på överanpassning som jag hjälpte till att begå och sedan försökte (utan framgång) avvärja:
Jag hade flera tusen oberoende, bivariata tidsserier, var och en med högst 50 datapunkter, och modelleringsprojektet involverade anpassning av en vektorautoregression (VAR) till var och en. Inget försök gjordes för att reglera över observationer, uppskatta varianskomponenter eller något liknande. Tidpunkterna mättes under ett år, så uppgifterna utsattes för alla typer av säsongseffekter och cykliska effekter som bara uppträdde en gång i varje tidsserie.
En delmängd av uppgifterna uppvisade en otroligt hög grad av Granger-kausalitet jämfört med resten av uppgifterna. Spotkontroller avslöjade att positiva spikar inträffade en eller två mellanrum i denna delmängd, men det framgick tydligt av sammanhanget att båda spikarna orsakades direkt av en extern källa och att en spik inte orsakade den andra . Prognoser utanför provet med de här modellerna skulle förmodligen vara ganska fel, eftersom modellerna var överanpassade: snarare än att "jämna ut" spikarna genom att ta dem i genomsnitt i resten av data, fanns det få tillräckligt med observationer att spikarna faktiskt körde uppskattningarna.
Sammantaget tror jag inte att projektet gick dåligt men jag tror inte att det gav resultat som var nära så användbara som de kunde ha varit. En del av anledningen till detta är att det många oberoende VAR-förfarandet, även med bara en eller två fördröjningar, hade svårt att skilja mellan data och brus, och så passade det senare på bekostnad av att ge insikt om tidigare.
Många intelligenta människor i denna tråd --- många mycket mer kunniga i statistik än jag. Men jag ser fortfarande inte ett lättförståeligt exempel på lekmännen. Presidentexemplet träffar inte riktigt räkningen när det gäller typisk överanpassning, för även om det är tekniskt överanpassat i var och en av sina vilda påståenden, vanligtvis överanpassar en övermonteringsmodell - ALLA - det givna bruset, inte bara ett element av det. / p>
Jag gillar verkligen diagrammet i bias-varians avvägningsförklaring i wikipedia: http://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
(Det nedersta diagrammet är exemplet på överanpassning).
Jag är svårt att tänka på ett verkligt världsexempel som inte låter som komplett mumbo-jumbo. Tanken är att data är delvis orsakade av mätbara, förståbara variabler --- del slumpmässigt brus. Försök att modellera detta brus som ett mönster ger dig felaktighet.
Ett klassiskt exempel är modelleringsbaserat ENDAST på R ^ 2 i MS Excel (du försöker passa en ekvation / modell bokstavligen så nära som möjligt data med hjälp av polynom, oavsett hur meningslöst).
Säg att du försöker modellera glassförsäljning som en funktion av temperaturen. Du har "verkliga världen" -data. Du plottar data och försöker maximera R ^ 2. Du hittar att använda verkliga data, den närmaste passningsekvationen är inte linjär eller kvadratisk (vilket skulle vara logiskt). Ju mer meningslösa polynomtermer du lägger till (x ^ 6 -2x ^ 5 + 3x ^ 4 + 30x ^ 3-43.2x ^ 2-29x), ju närmare det passar data. Så hur relaterar det förnuftigt temperaturen till glassförsäljning? Hur skulle du förklara det löjliga polynomet? Sanningen är att det inte är den sanna modellen. Du har överträffat uppgifterna.
Du tar okänsligt för buller - vilket kan bero på säljkampanjer eller någon annan variabel eller "buller" som en fjäril som slår sina vingar i kosmos (något som aldrig är förutsägbart) --- och försökte modellera det baserade på temperatur. Nu vanligtvis om ditt brus / fel inte är i genomsnitt till noll eller är automatiskt korrelerat, etc, betyder det att det finns fler variabler där ute --- och så småningom får du generellt slumpmässigt distribuerat brus, men ändå är det det bästa jag kan förklara det.
Studera för en tentamen genom att memorera svaren på förra årets examen.
Min favorit är ”3964-formeln” som upptäcktes före fotbolls-VM 1998:
Brasilien vann mästerskapen 1970 och 1994. Sammanfatta dessa två siffror så får du 3964;Tyskland vann 1974 och 1990 och ökade igen till 3964;samma sak med Argentina som vann 1978 och 1986 (1978 + 1986 = 3964).
Detta är ett mycket överraskande faktum, men alla kan se att det inte är tillrådligt att basera någon framtida förutsägelse på den regeln.Och faktiskt ger regeln att vinnaren av världscupen 1998 borde ha varit England sedan 1966 + 1998 = 3964 och England vann 1966. Detta hände inte och vinnaren var Frankrike.
De flesta optimeringsmetoder har vissa fudge-faktorer aka hyperparametrar. Ett verkligt exempel:
För alla system som studeras gav följande parametrar ett snabbt och robust beteende: $ N_ {min} = 5 , \ \ f_ {inc} = 1.1, \ \ f_ {dec} = 0.5, \ \ \ alpha_ {start} = 0.1, \ \ f _ {\ alpha} = 0.99. $
Är detta över passande, eller passar det bara till en viss uppsättning problem?
Lite intuitivt, men kanske hjälper det. Låt oss säga att du vill lära dig något nytt språk. Hur lär du dig? istället för att lära dig reglerna i en kurs använder du exempel. Specifikt TV-program. Så du gillar brottsprogram och du tittar på några serier av någon polisshow. Sedan tar du en annan brottsshow och tittar på några serier som bildar den. Vid den tredje showen ser du - du vet nästan allt, inga problem. Du behöver inte engelska undertexter.
Men sedan provar du ditt nyinlärda språk på gatan vid ditt nästa besök, och du inser att du inte kan prata om något annat än att säga "officer! tog min väska och sköt den damen! ". Medan ditt "träningsfel" var noll är ditt "testfel" högt på grund av att "överanpassa" språket, studerade bara en begränsad delmängd av ord och antar att det räcker.