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
course content

Kursinnehåll

Linjär Regression med Python

Linjär Regression med Python

1. Enkel Linjär Regression
2. Multipel Linjär Regression
3. Polynomregression
4. Välja Den Bästa Modellen

book
R-kvadrat

Vad är R-kvadrat

Vi har gått igenom några av de mest använda metoderna för regression i kapitlet Mått. Dessa är MSE, RMSE och MAE. De är bra för att jämföra modeller, men när du bygger en modell förstår du inte alltid om det är ett bra resultat för din datamängd eller om du behöver fortsätta testa andra modeller.

Som tur är 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ålvariabelvä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 dividerar vi också 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 modellen inte förklarar. 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 vet vi allt som behövs 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.

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.

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

course content

Kursinnehåll

Linjär Regression med Python

Linjär Regression med Python

1. Enkel Linjär Regression
2. Multipel Linjär Regression
3. Polynomregression
4. Välja Den Bästa Modellen

book
R-kvadrat

Vad är R-kvadrat

Vi har gått igenom några av de mest använda metoderna för regression i kapitlet Mått. Dessa är MSE, RMSE och MAE. De är bra för att jämföra modeller, men när du bygger en modell förstår du inte alltid om det är ett bra resultat för din datamängd eller om du behöver fortsätta testa andra modeller.

Som tur är 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ålvariabelvä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 dividerar vi också 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 modellen inte förklarar. 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 vet vi allt som behövs 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.

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.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3
some-alt