R-Kwadraat
Wat is R-kwadraat
We hebben MSE, RMSE en MAE al behandeld. Deze helpen bij het vergelijken van modellen, maar een enkele score is moeilijk te beoordelen zonder context. Het is mogelijk dat je niet weet of de waarde “goed genoeg” is voor jouw dataset.
R-kwadraat lost dit op door te meten hoeveel van de variantie van de target door het model wordt verklaard. De waarde ligt tussen 0 en 1, waardoor interpretatie eenvoudig is.
Het probleem is dat we de verklaarde variantie niet direct kunnen berekenen. Maar we kunnen de onverklaarde variantie berekenen, dus we herschrijven de bovenstaande vergelijking als volgt:
Totale variantie
De totale variantie is simpelweg de variantie van de target, en we kunnen de variantie van de target berekenen met behulp van de steekproefvariantieformule uit de statistiek (ȳ is het gemiddelde van de target):
In het voorbeeld worden de verschillen tussen de werkelijke waarden en het gemiddelde van de target (oranje lijnen) gekwadrateerd en opgeteld, vervolgens gedeeld door m−1, wat een totale variantie van 11.07 oplevert.
Onverklaarde variantie
Vervolgens berekenen we de variantie die het model niet verklaart. Als de voorspellingen perfect zouden zijn, zouden alle punten exact op de regressielijn liggen. We gebruiken dezelfde variantieformule, maar vervangen ȳ door de voorspelde waarden.
Hier is een voorbeeld met visualisatie:
Nu weten we alles om de R-kwadraat te berekenen:
We hebben een R-kwadraat score van 0,92 behaald, wat dicht bij 1 ligt, dus we hebben een uitstekend model. We zullen ook de R-kwadraat voor nog een model berekenen.
De R-kwadraat is lager omdat het model de data enigszins onderfit.
R-kwadraat in Python
De sm.OLS-klasse berekent de R-kwadraat voor ons. We kunnen deze vinden in de summary()-tabel hier.
R-kwadraat varieert van 0 tot 1, waarbij hoger beter is (tenzij het model overfit). De summary()-uitvoer van sm.OLS bevat de R-kwadraat score.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 5.26
R-Kwadraat
Veeg om het menu te tonen
Wat is R-kwadraat
We hebben MSE, RMSE en MAE al behandeld. Deze helpen bij het vergelijken van modellen, maar een enkele score is moeilijk te beoordelen zonder context. Het is mogelijk dat je niet weet of de waarde “goed genoeg” is voor jouw dataset.
R-kwadraat lost dit op door te meten hoeveel van de variantie van de target door het model wordt verklaard. De waarde ligt tussen 0 en 1, waardoor interpretatie eenvoudig is.
Het probleem is dat we de verklaarde variantie niet direct kunnen berekenen. Maar we kunnen de onverklaarde variantie berekenen, dus we herschrijven de bovenstaande vergelijking als volgt:
Totale variantie
De totale variantie is simpelweg de variantie van de target, en we kunnen de variantie van de target berekenen met behulp van de steekproefvariantieformule uit de statistiek (ȳ is het gemiddelde van de target):
In het voorbeeld worden de verschillen tussen de werkelijke waarden en het gemiddelde van de target (oranje lijnen) gekwadrateerd en opgeteld, vervolgens gedeeld door m−1, wat een totale variantie van 11.07 oplevert.
Onverklaarde variantie
Vervolgens berekenen we de variantie die het model niet verklaart. Als de voorspellingen perfect zouden zijn, zouden alle punten exact op de regressielijn liggen. We gebruiken dezelfde variantieformule, maar vervangen ȳ door de voorspelde waarden.
Hier is een voorbeeld met visualisatie:
Nu weten we alles om de R-kwadraat te berekenen:
We hebben een R-kwadraat score van 0,92 behaald, wat dicht bij 1 ligt, dus we hebben een uitstekend model. We zullen ook de R-kwadraat voor nog een model berekenen.
De R-kwadraat is lager omdat het model de data enigszins onderfit.
R-kwadraat in Python
De sm.OLS-klasse berekent de R-kwadraat voor ons. We kunnen deze vinden in de summary()-tabel hier.
R-kwadraat varieert van 0 tot 1, waarbij hoger beter is (tenzij het model overfit). De summary()-uitvoer van sm.OLS bevat de R-kwadraat score.
Bedankt voor je feedback!