 R-kvadrat
R-kvadrat
Vad är R-kvadrat
Vi har behandlat några av de mest använda metoderna för regression i kapitlet Mått. Dessa är MSE, RMSE och MAE. De är användbara för att jämföra modeller, men när du bygger en modell är det inte alltid tydligt om det är ett bra resultat för ditt dataset eller om du behöver fortsätta testa andra modeller.
Lyckligtvis finns det ett mått som kallas R-kvadrat som mäter modellens prestanda på en skala från 0 till 1. R-kvadrat beräknar andelen av målvariabelns varians som förklaras av modellen.
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:
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):
Här är ett exempel med visualisering. Skillnaderna mellan det faktiska målvärdet och målvariabelns medelvärde är markerade i orange. Precis som vid beräkning av SSR tar vi längden på varje orange linje, kvadrerar den och lägger till summan, men nu delar vi även resultatet med m-1. Här fick vi en total varians på 11,07.
Oförklarad varians
Nu behöver vi beräkna den varians som inte förklaras av modellen. Om modellen förklarade hela variansen skulle alla punkter ligga på den uppritade regressionslinjen. Det är sällan fallet, så vi vill beräkna målvariabelns varians men nu i förhållande till regressionslinjen istället för medelvärdet. Vi använder samma formel men ersätter ȳ med modellens prediktioner.
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 ytterligare modell.
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.
Sammanfattningsvis är R-kvadrat ett mått för regression. Det kan anta värden från 0 till 1. Till skillnad från andra mått som MSE/MAE är ett högre värde bättre (såvida inte modellen överanpassar). Du hittar R-kvadrat i tabellen summary() för klassen sm.OLS.
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
Can you explain what a good R-squared value is?
How does R-squared compare to other regression metrics like MSE or MAE?
Can R-squared ever be negative?
Awesome!
Completion rate improved to 5.26 R-kvadrat
R-kvadrat
Svep för att visa menyn
Vad är R-kvadrat
Vi har behandlat några av de mest använda metoderna för regression i kapitlet Mått. Dessa är MSE, RMSE och MAE. De är användbara för att jämföra modeller, men när du bygger en modell är det inte alltid tydligt om det är ett bra resultat för ditt dataset eller om du behöver fortsätta testa andra modeller.
Lyckligtvis finns det ett mått som kallas R-kvadrat som mäter modellens prestanda på en skala från 0 till 1. R-kvadrat beräknar andelen av målvariabelns varians som förklaras av modellen.
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:
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):
Här är ett exempel med visualisering. Skillnaderna mellan det faktiska målvärdet och målvariabelns medelvärde är markerade i orange. Precis som vid beräkning av SSR tar vi längden på varje orange linje, kvadrerar den och lägger till summan, men nu delar vi även resultatet med m-1. Här fick vi en total varians på 11,07.
Oförklarad varians
Nu behöver vi beräkna den varians som inte förklaras av modellen. Om modellen förklarade hela variansen skulle alla punkter ligga på den uppritade regressionslinjen. Det är sällan fallet, så vi vill beräkna målvariabelns varians men nu i förhållande till regressionslinjen istället för medelvärdet. Vi använder samma formel men ersätter ȳ med modellens prediktioner.
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 ytterligare modell.
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.
Sammanfattningsvis är R-kvadrat ett mått för regression. Det kan anta värden från 0 till 1. Till skillnad från andra mått som MSE/MAE är ett högre värde bättre (såvida inte modellen överanpassar). Du hittar R-kvadrat i tabellen summary() för klassen sm.OLS.
Tack för dina kommentarer!