Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära R-kvadrat | Välja Den Bästa Modellen
Linjär Regression med Python

R-kvadrat

Svep för att visa menyn

Vad är R-kvadrat

Vi har redan gått igenom MSE, RMSE och MAE. Dessa hjälper till att jämföra modeller, men ett enskilt värde är svårt att bedöma utan sammanhang. Du kanske inte vet om värdet är "tillräckligt bra" för din datamängd.

R-kvadrat löser detta genom att mäta hur mycket av målvariabelns varians som modellen förklarar. Dess värde ligger mellan 0 och 1, vilket gör tolkningen enkel.

RSquaredFormulaSimple

Problemet är att vi inte kan beräkna den förklarade variansen direkt. Men vi kan beräkna den oförklarade variansen, så vi omvandlar ovanstående ekvation till:

RSquaredFormula

Total varians

Den totala variansen är helt enkelt målvariabelns varians, och vi kan beräkna målvariabelns varians med hjälp av formeln för stickprovsvarians från statistiken ( är målvariabelns medelvärde):

TotalVariation

I exemplet kvadreras och summeras skillnaderna mellan faktiska värden och målmedelvärdet (orange linjer), och delas sedan med m−1, vilket ger en total varians på 11,07.

TotalVariationGraph

Oförklarad varians

Nästa steg är att beräkna den varians som modellen inte förklarar. Om förutsägelserna vore perfekta skulle alla punkter ligga exakt på regressionslinjen. Vi använder samma variansformel, men ersätter med de predicerade värdena.

Oförklarad variation

Här är ett exempel med visualisering:

UnexplainedVariationGraph

Nu vet vi allt som behövs för att beräkna R-kvadrat:

R2Example

Vi fick ett R-kvadratvärde på 0,92 vilket är nära 1, så vi har en utmärkt modell. Vi kommer också att beräkna R-kvadrat för en modell till.

R2Example2

R-kvadratvärdet är lägre eftersom modellen underanpassar data något.

R-kvadrat i Python

Klassen sm.OLS beräknar R-kvadrat åt oss. Vi hittar det i tabellen summary() här.

Sammanfattning

R-kvadrat varierar från 0 till 1, och högre värde är bättre (såvida inte modellen överanpassar). Utdata från summary() för sm.OLS inkluderar R-kvadrat-värdet.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 4. Kapitel 3
some-alt