Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer R-Kwadraat | Het Beste Model Kiezen
Lineaire Regressie met Python

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 de interpretatie eenvoudig is.

RSquaredFormulaSimple

Het probleem is dat we de verklaarde variantie niet direct kunnen berekenen. Maar we kunnen de onverklaarde variantie wel berekenen, dus we herschrijven de bovenstaande vergelijking als volgt:

RSquaredFormula

Totale variantie

De totale variantie is simpelweg de variantie van de target, en we kunnen de variantie van de target berekenen met de formule voor steekproefvariantie uit de statistiek ( is het gemiddelde van de target):

TotaleVariatie

In het voorbeeld worden de verschillen tussen de werkelijke waarden en het gemiddelde van het doel (oranje lijnen) gekwadrateerd en opgeteld, vervolgens gedeeld door m−1, wat een totale variantie van 11,07 oplevert.

TotaleVariatieGrafiek

Onverklaarde variantie

Vervolgens berekenen we de variantie die het model niet verklaart. Als de voorspellingen perfect zouden zijn, zouden alle punten precies op de regressielijn liggen. We gebruiken dezelfde variantieformule, maar vervangen door de voorspelde waarden.

OnverklaardeVariatie

Hier is een voorbeeld met visualisatie:

UnexplainedVariationGraph

Nu weten we alles om de R-kwadraat te berekenen:

R2Example

We hebben een R-kwadraat score van 0,92 behaald, wat dicht bij 1 ligt, dus we hebben een uitstekend model. We zullen ook het R-kwadraat voor nog een ander model berekenen.

R2Example2

Het 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.

Samenvatting

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.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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 de interpretatie eenvoudig is.

RSquaredFormulaSimple

Het probleem is dat we de verklaarde variantie niet direct kunnen berekenen. Maar we kunnen de onverklaarde variantie wel berekenen, dus we herschrijven de bovenstaande vergelijking als volgt:

RSquaredFormula

Totale variantie

De totale variantie is simpelweg de variantie van de target, en we kunnen de variantie van de target berekenen met de formule voor steekproefvariantie uit de statistiek ( is het gemiddelde van de target):

TotaleVariatie

In het voorbeeld worden de verschillen tussen de werkelijke waarden en het gemiddelde van het doel (oranje lijnen) gekwadrateerd en opgeteld, vervolgens gedeeld door m−1, wat een totale variantie van 11,07 oplevert.

TotaleVariatieGrafiek

Onverklaarde variantie

Vervolgens berekenen we de variantie die het model niet verklaart. Als de voorspellingen perfect zouden zijn, zouden alle punten precies op de regressielijn liggen. We gebruiken dezelfde variantieformule, maar vervangen door de voorspelde waarden.

OnverklaardeVariatie

Hier is een voorbeeld met visualisatie:

UnexplainedVariationGraph

Nu weten we alles om de R-kwadraat te berekenen:

R2Example

We hebben een R-kwadraat score van 0,92 behaald, wat dicht bij 1 ligt, dus we hebben een uitstekend model. We zullen ook het R-kwadraat voor nog een ander model berekenen.

R2Example2

Het 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.

Samenvatting

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.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
some-alt