R-kvadrat
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 kontext. Det kan vara oklart 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. Värdet ligger mellan 0 och 1, vilket gör tolkningen enkel.
Problemet är att vi inte kan beräkna den förklarade variansen direkt. Däremot kan vi beräkna oförklarad varians, så vi omvandlar ovanstående ekvation till:
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):
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.
Oförklarad varians
Nästa steg är att beräkna den varians som modellen inte förklarar. Om prediktionerna vore perfekta skulle alla punkter ligga exakt på regressionslinjen. Vi använder samma variansformel, men ersätter ȳ med de predikterade värdena.
Här är ett exempel med visualisering:
Nu har vi all information för att beräkna R-kvadrat:
Vi fick ett R-kvadratvärde på 0,92 vilket är nära 1, så vi har en utmärkt modell. Vi kommer även att beräkna R-kvadrat för en modell till.
R-kvadrat ä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.
R-kvadrat varierar från 0 till 1, och högre är bättre (såvida inte modellen överanpassar). Utdata från summary() för sm.OLS inkluderar R-kvadrat-värdet.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 5.26
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 kontext. Det kan vara oklart 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. Värdet ligger mellan 0 och 1, vilket gör tolkningen enkel.
Problemet är att vi inte kan beräkna den förklarade variansen direkt. Däremot kan vi beräkna oförklarad varians, så vi omvandlar ovanstående ekvation till:
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):
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.
Oförklarad varians
Nästa steg är att beräkna den varians som modellen inte förklarar. Om prediktionerna vore perfekta skulle alla punkter ligga exakt på regressionslinjen. Vi använder samma variansformel, men ersätter ȳ med de predikterade värdena.
Här är ett exempel med visualisering:
Nu har vi all information för att beräkna R-kvadrat:
Vi fick ett R-kvadratvärde på 0,92 vilket är nära 1, så vi har en utmärkt modell. Vi kommer även att beräkna R-kvadrat för en modell till.
R-kvadrat ä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.
R-kvadrat varierar från 0 till 1, och högre är bättre (såvida inte modellen överanpassar). Utdata från summary() för sm.OLS inkluderar R-kvadrat-värdet.
Tack för dina kommentarer!