Hvorfor R2 ikke er så nyttig
R2 eller ‘forklaringsgraden’ (engelsk: coefficient of determination) bliver ofte nævnt som et mål for, hvor godt en regressionsmodel passer til data. Der er dog mange problemer med R2, som gør, at R2 ikke er så anvendelig som man skulle tro: R2 siger ikke noget om, hvor godt modellen passer til data, det siger R2 ikke noget om, hvor god modellen er til at prædiktere, R2 kan ikke sammenlignes på tværs af datasæt, og det giver heller ikke mening at sammenligne R2-værdier, når man transformerer sine data. Ingen af disse problemer bliver løst ved at bruge justeret R2, og her illustrerer vi, hvorfor R2 ikke bør bruges, og hvilke andre metoder man i stedet kan bruge for at belyse specifikke egenskaber ved sin model.
I det efterfølgende vil vi bruge nedenstående datasæt om standselængde og hastighed af biler.
Figur 1: Data er fra 1920erne og findes i R som datasættet cars i pakken ggplot2. Den røde linje angiver den bedste rette regressionslinje.
Een mulig model for disse data er en lineær regressionsmodel
yi=b1+b2xi+ei,
hvor yi er standselængder, xi er hastigheder og ei er residualer. Når man fitter denne model med mindste kvadraters metode kan man beregne fittede eller prædikterede værdier
ˆyi=ˆb1+ˆb2xi
Hvis ˉy er gennemsnittet af yierne så er R2 defineret som
R2=∑i(ˆyi−ˉy)2∑i(yi−ˉy)2
Ovenfor er både tæller og nævner positive og tælleren er mindre end nævneren. Derfor er 0≤R2≤1. Jo tættere de forventede værdier, ˆyi, er på tæt på de observerede værdier, yi, desto tættere vil R2 være på 1.
For data om standselængde får vi nedenstående estimater for parametrene i regressionsmodellen.
term | estimate | std.error | statistic | p.value |
---|---|---|---|---|
(Intercept) | -17.58 | 6.758 | -2.60 | 0.012 |
speed | 3.93 | 0.416 | 9.46 | 0.000 |
Hastigheden er klart signifikant, og for hver stigning i hastighed (i mph) er der en forventet øget standselængde på lige under 4 fod. R2 (og justeret R2 som vi kommer tilbage til nedenfor) bliver i disse data
r.squared | adj.r.squared |
---|---|
0.651 | 0.644 |
Der er som sådan ikke noget forkert i begrebet forklaringsgrad eller coefficient of determination. Spørgsmålet er mere, hvor ofte det rent faktisk er forklaringsgraden, som man er interesseret i. Hvis regressionslinjens hældningen nu er tæt på nul, men punkterne ligger tæt omkring denne linje, så vil R2 være stor, men den reelle sammenhæng er uden nogen praktisk betydning. R2 angiver, hvor stor en andel af variationen i data som modellen “forklarer”. Problemet ved at betegne R2 som forklaringsgraden er, hvis ordet “forklaring” bliver opfattet som en kausal sammenhæng. I eksemplet “forklarer” hastigheden 65% af variationen i standselængder, men standselængderne forklarer dermed også 65% af variationen i hastighed. Betegnelsen “forklarer” er derfor uhenigtsmæssig, fordi den antyder, at den ene variabel er årsagen til den anden.
Andre fortolkninger af R2
Der findes mere håndgribelige fortolkninger af R2: Hvis modellen stemmer godt overens med data så skal yi og ˆyi ligne hinanden, så det vil være naturligt at plotte disse mod hinanden (se nedenfor):
Hvis modellen er god til at beskrive data, så vil man forvente, at de observerede og fittede værdier skal være tæt på hinanden, og korrelationen mellem disse to størrelser dermed vil være tæt på 1. Hvis modellen indeholder et konstantled (b1 i regressionsmodellen ovenfor) så er kvadratet på denne korrelation netop lig med R2.
Tilsvarende kan man - igen hvis modellen indeholder et konstantled - beregne R2 som hældningen på regressionslinien, hvor ˆyi er respons og yi er forklarende variabel.
Endelig kan man i det tilfælde, hvor man ser på en simpel lineær regressionsmodel som ovenfor beregne R2 som den kvadrerede korrelation mellem yi’erne og xi’erne.
R2 siger ikke noget om, hvorvidt modellen er god
Ovenfor har fokus været på, om ˆyi’erne ligger tæt på yi’erne, men i virkeligheden siger det ikke noget om, hvorvidt den statistiske model er korrekt. Selv hvis man kender den sande model kan man godt have situationer, hvor R2 er tæt på 0 ligesom at man kan have en forkert model, hvor R2 er tæt på 1. Hvis vi bruger vores lineære regressionseksempel ovenfor og antager, at vi kender de sande parametre i modellen (b1 og b2) så vi ikke skal estimere dem, så kan vi skrive R2 som
R2=b22V(X)b22V(X)+σ2,
hvor σ2 er variationen omkring regressionslinjen, og hvor V(X) angiver variationen af x’erne. Bemærk, at selv hvis vi kender den sande model så kan vi have en værdi for R2, der vil være tæt på 0, hvis σ2 er stor. Tilsvarende kan vi opnå en større værdi for R2, hvis vi kan sprede vores x-værdier så bredt ud som muligt. I vores eksempel med standselængder kan man se, at hvis man splitter data op i intervaller for hastighed, og udregner R2 i hvert interval så får man betragtelig mindre R2-værdier for hvert interval.
Figur 2: R2 for alle data er 0.65, men når vi udregner R2 i hvert af de mindre intervaller fra 0-10 mph, 10-20 mph, 20-30 mph så får vi R2-værdier som alle er meget mindre fordi forholdet mellem spredningen af punkterne og spredningen af x-værdierne ændrer sig.
R2 vokser med stigende modelkompleksitet
Der er et andet notorisk problem med R2: R2 vokser jo flere forklarende variable man tager med i modellen uanset om disse variable har en reel sammenhæng eller betydning med udfaldet. Det er ikke så svært at overbevise sig om, at det må være tilfældet, for en model med flere forklarende variable må nødvendigvis være bedre til at beskrive data end en model, hvor nogle af de forklarende variable ikke er med.
Figur 3: I figuren har vi tilpasset to modeller: en ret linje (den røde linje) og et 8.-gradspolynomium (den blå kurve). Den justerede R2 for modellen med den rette linje er 0.64, mens den justerede R2 for 8.-gradspolynomiet er 0.65. Til sammenligning er R2 for 8.-gradspolynomiet 0.70
Hvorfor er det at et 8. grads polynomium giver en absurd model? Vi kan prøve at tænke i retning af prædiktioner af fremtidige standselængder. Den mindste (største) hastighed i datasættet er 4 mph (25 mph). Hvis vi forsøger at lave prædiktioner blot en smule udenfor dette interval går det helt galt (men også indenfor dataområdet bliver prædiktionerne gale, som det fremgår af figuren ovenfor). R2 bliver som nævnt større, når man tager flere parametre med i modellen, men samtidig risikerer man at ende med modeller, der er absurde. For at reparere på dette bruger man ofte den justerede determinationskoefficient ˉR2, (adjusted R2) i stedet, da denne ikke nødvendigvis stiger, når flere variable tages med.
Estimation af parametre i en lineær model er baseret på at minimere residual summen af kvadrater RSS1=∑i(yi−ˆμi)2
Lad ˉy betegne gennemsnittet af alle yi’erne og definer
RSS0=∑i(yi−ˉy)2,RSS10=∑i(ˆyi−ˉy)2
Alle disse størrelser er ikke-negative, og det er ikke svært at vise at RSS0=RSS1+RSS10, hvilket betyder at R2=RSS10RSS0=RSS0−RSS1RSS0=1−RSS1RSS0
Bemærk, at RSS0 er et mål for den samlede variabilitet i data (og denne størrelse har intet at gøre med en model). Minimering af RSS1 skal derfor være den samme som maksimering af RSS10.
Residualvariansen σ2 estimeres som ˆσ2=RSS1/(n−p) hvis der er p forklarende variabler i modellen. Under den simple model hvori der kun er det konstante led estimeres residualvariansen som ˆσ2=RSS0/(n−1). Disse to forskellige variansestimater indgår i den justerede ˉR2
ˉR2=1−RSS1/(n−p)RSS0/(n−1)
Bemærk at ˉR2 vokser ikke nødvendigvis selvom man tilføjer flere parametre. ˉR2 fortolkes ikke umiddelbart som “den andel af variation af data som modellen forklarer”, og selvom ˉR2 forsøger at håndtere problemet med at R2 vokser med antallet af parametre, så løser det stadig ikke problemet med, at vi ikke kan bruge værdien til at sige noget om, hvorvidt modellen er rimelig eller korrekt. Endelig er der intet der forhindrer, at den justerede R2 bliver negativ.
Figur 4: Plot af R2 (rød) og justeret ˉR2 (blå) mod graden af det polynomium, der fittes til data i cars datasættet.
Modelsammenligning baseret på R2
Konklusionen ovenfor er, at man skal være meget forsigtig med at sammenligne modeller alene baseret på deres R2 værdi. Men man kan godt sammeligne nestede modeller baseret på deres R2 værdier og antallet af parametre i modellen. Lad os fokusere på to modeller: Modellen baseret på et 2. grads polynomium og modellen baseret på et 1. grads polynomium (en ret linie). Lad os kalde dem for Mc (for complex) og Mr (for reduceret). Mr er en delmodel af Mc, hvilket her bare betyder, at man kan tage en parameter i Mc og sætte til at være 0 og så får man Mr. Man siger også at Mr er nested i Mc. Bemærk, at det kun gælder for nestede modeller, der sammenlignes på det samme datasæt. Der er derfor ikke muligt at bruge R2 til at sammenligne to modeller, hvor man for eksempel har logaritme-transformeret responset i den ene model, eller hvis man sammenligner R2 værdier fra to forskellige datasæt.
Hvilken betydning har R2 så?
Hvis det primært formål med analysen er at beskrive sammenhængen mellem udfaldet og de forklarende variable så er R2 ikke til megen hjælp. Hvis den statistiske model er korrekt så ændrer R2 ikke på den måde man skal fortolke resultaterne (parameterestimaterne) på uanset hvilken værdi, som R2 måtte have. Hvis det primære formål med analysen er at prædiktere udfaldet som funktion af en række forklarende variable, så er der noget information man kan få ud af R2. I forbindelse med prædiktioner er det nemlig ikke kun interessant at prædiktere en enkelt værdi, men også at angive usikkerheden på prædiktionen. Når R2 er tæt på 0 så betyder det, at modellen har større usikkerhed, og omvendt, at man laver prædiktioner med lille usikkerhedsmargin, hvis R2 er tæt på 1. Men så hjælper R2 heller ikke længere, for vi kan ikke bruge værdien af R2 til at sige noget om, hvorvidt usikkerheden af prædiktionen er lille nok i en given situation. For eksempel root mean squared error √1n∑ni=1(ˆyi−yi)2 Med andre ord vil det alligevel være nødvendigt at udregne endnu et mål for prædiktionsusikkerheden, og hvis man alligevel skal gøre det, så kunne man jo lige så godt have startet med det til at begynde med.