Ga naar hoofdinhoud

R-kwadraat uitgelegd: hoe goed past jouw regressiemodel?

Leer wat R-kwadraat betekent in regressieanalyse, hoe je het berekent en wanneer je het gebruikt om modelprestaties te evalueren. Vergelijk het met gerelateerde metrics met voorbeelden in R en Python.
Bijgewerkt 2 jun 2026  · 8 min lezen

In de kern geeft R-kwadraat aan welk deel van de variantie in de afhankelijke variabele kan worden toegeschreven aan de onafhankelijke variabele(n). Je kunt het zien als een maat voor hoe goed ons model het verhaal in de data weet te vangen, en hoeveel er overblijft als onverklaard lawaai. Door zijn eenvoud en directe interpretatie is het wijdverbreid in de diagnostiek van lineaire regressie, vooral bij enkelvoudige en meervoudige lineaire regressie.

In dit artikel bespreken we de betekenis, berekening, interpretatie en veelvoorkomende valkuilen rond R-kwadraat, zodat we het zowel met vertrouwen als met zorg kunnen gebruiken. Daarnaast bekijken we enkele voorbeeldsnippets voor het berekenen van R-kwadraat in R en Python.

Wat is R-kwadraat?

R-kwadraat, genoteerd als R², is een statistische maat voor de goodness of fit in regressiemodellen. Het vertelt ons hoeveel van de variatie in de afhankelijke variabele door het model kan worden verklaard.

De waarde van R-kwadraat ligt tussen 0 en 1:

  • R² = 0 betekent dat het model geen enkele variabiliteit verklaart;
  • R² = 1 betekent dat het model alles verklaart.

Hoewel het concept eenvoudig is, vergt de interpretatie nuance, zeker wanneer je van theorie naar praktijk gaat.

Hoe bereken je R-kwadraat

Er zijn meerdere wiskundig equivalente manieren om R-kwadraat te berekenen, die elk een ander inzicht geven in wat “fit” nu precies betekent, afhankelijk van de context—enkelvoudige regressie, meervoudige regressie, matrixalgebra of Bayesiaanse modellering. Laten we de meest gebruikte benaderingen verkennen.

1. Met residuele kwadratensom en totale kwadratensom

Dit is de meest standaard en veelgebruikte formule:

r-kwadraat formule met 1 - (RSS / TSS)

waarbij:

  • RSS de residuele kwadratensom is, die de door het model onverklaarde variatie meet,
  • TSS de totale kwadratensom is, die de totale variatie in de data meet.

Met andere woorden, R-kwadraat is het deel van de totale variatie dat door het model wordt verklaard. 

Deze benadering benadrukt hoeveel beter het regressiemodel presteert dan simpelweg het gemiddelde van de respons voorspellen.

2. Met verklaarde kwadratensom en totale kwadratensom

R-kwadraat kan ook direct worden uitgedrukt in termen van verklaarde variantie:

r-kwadraat formule met ESS/ TSS

waarbij:

  • ESS de verklaarde kwadratensom is, die meet hoeveel van de variantie door het model wordt opgevangen,
  • TSS de totale kwadratensom is, die de totale variatie in de data meet.

We zien dat deze versie benadrukt hoeveel van de totale variatie in de uitkomst wordt opgevangen door de voorspellingen van het model. Met andere woorden, de focus verschuift hier van wat we niet hebben verklaard (RSS) naar wat we wel hebben verklaard (ESS), wat een optimistischere framing geeft.

Voor een deepdive in de drie componenten van de kwadratensommen, lees Understanding Sum of Squares: A Guide to SST, SSR, and SSE.

3. Met verklaarde kwadratensom en residuele kwadratensom

In de context van een ANOVA-tabel komt R-kwadraat vanzelf voort uit de ontbinding van de totale variabiliteit: 

r-kwadraat formule met ESS / (ESS + RSS)

waarbij:

  • ESS de verklaarde kwadratensom is, die meet hoeveel van de variantie door het model wordt opgevangen,
  • RSS de residuele kwadratensom is, die de door het model onverklaarde variatie meet.

Deze formulering laat zien hoeveel van de totale variantie door het model wordt opgepikt en hoeveel onverklaard blijft.

Dit perspectief is wat unieker omdat het R-kwadraat koppelt aan hypothesetoetsing. De verhouding ESS tot RSS wordt namelijk gebruikt om de F-statistic te berekenen, waardoor R-kwadraat een belangrijk onderdeel is van significantietoetsing in ANOVA-rapportages.

4. Met correlatiecoëfficiënt in enkelvoudige lineaire regressie

De vorige drie methoden waren allemaal algebraïsch equivalente formules afgeleid uit regressie-ontbinding. Hier is nu een nieuw perspectief:

Bij enkelvoudige lineaire regressie met slechts één voorspeller heeft R-kwadraat een snelkoppeling:

r-kwadraat is correlatie in het kwadraat

waar

  • r de Pearson-correlatiecoëfficiënt tussen x en y is.

Deze formule laat zien hoe een sterke lineaire relatie tussen twee variabelen zich direct vertaalt in een hoge R-kwadraat. 

Om de onderliggende theorie achter enkelvoudige lineaire regressie te begrijpen, bekijk Simple Linear Regression: Everything You Need to Know.

5. Met mean squared error en de variantie van de uitkomst

R-kwadraat kan worden berekend als een genormaliseerde maat voor modelerror: 

r-kwadraat formule met 1 - MSE / var(y)

waarbij:

  • MSE de mean squared error van het model is,
  • Var(y) de variantie van de echte uitkomst is.

Deze benadering is vooral relevant bij het vergelijken van modellen over verschillende schalen of eenheden, omdat het de modelerror normaliseert naar de totale spreiding in de data.

6. Met de variantie van voorspelde waarden

Uitgaande van residuen die niet gecorreleerd zijn met de voorspellingen, kan R-kwadraat ook worden geïnterpreteerd als het deel van de variantie dat door het model wordt opgevangen:

r-kwadraat formule met de variantie van de voorspelde waarden

waarbij:

  • Var(ŷ) de variantie van de voorspellingen van het model is,
  • Var(y) de variantie van de echte uitkomst is.

Deze versie benadrukt hoe goed de voorspellingen zelf de spreiding van de werkelijke data weerspiegelen.

R-kwadraat interpreteren

Zoals eerder genoemd, is R-kwadraat makkelijk te berekenen maar wat lastiger om zinvol te interpreteren.

  • Een hoge R-kwadraat betekent dat het model een groot deel van de variantie verklaart. Dat betekent echter niet dat ons model per se correct of nuttig is.
  • Een lage R-kwadraat betekent dat het model weinig variantie verklaart. Dat is niet altijd slecht, zeker in de sociale wetenschappen of bij rumoerige data, waar een lage R-kwadraat vaak te verwachten is.

Het is belangrijk te onthouden dat R-kwadraat correlatie meet, maar geen causaliteit. Dat onze voorspellers de uitkomst verklaren, betekent nog niet dat ze die veroorzaken, want correlatie is nog steeds geen causaliteit. Bovendien zegt R-kwadraat niets over of voorspellingen accuraat zijn.

Hier zijn twee nuttige resources over meer geavanceerde onderwerpen rond lineaire regressie: 

Wanneer gebruik je R-kwadraat

R-kwadraat kan erg behulpzaam zijn als je het in de juiste situaties gebruikt. Het is geschikt voor:

  • Modellen vergelijken met hetzelfde aantal voorspellers.
  • Uitleggen hoeveel variantie in een dataset door het model wordt verklaard.

Aan de andere kant kan R-kwadraat misleidend zijn in de volgende scenario's:

  • Het toevoegen van irrelevante voorspellers, wat tot overfitting leidt. In dit geval stijgt R-kwadraat altijd, zelfs als de voorspellende prestaties van het model niet verbeteren.
  • Modellen vergelijken met een verschillend aantal voorspellers, dus met verschillende complexiteit. Hier is adjusted R-kwadraat een betere keuze. Ik ga later nog in op adjusted R-kwadraat.

Voorbeelden van R-kwadraat in R en Python

Laten we het concept van R-kwadraat nu illustreren in R en Python met de Fish Market Kaggle-dataset. In beide programmeertalen bouwen we twee modellen:

  • Model 1: Voorspel het gewicht van vissen met vier voorspellers.
  • Model 2: Voeg een willekeurige, irrelevante voorspeller toe.

R-voorbeeld

Laten we beginnen met R.

Model 1

# Load data
fish <- read.csv("Fish.csv")

# Model 1
model1 <- lm(Weight ~ Length1 + Length2 + Height + Width, data=fish)
summary(model1)$r.squared

Output:

[1] 0.8673

Model 2

# Model 2 with an irrelevant predictor
fish$random_noise <- rnorm(nrow(fish))
model2 <- lm(Weight ~ Length1 + Length2 + Height + Width + random_noise, data=fish)
summary(model2)$r.squared

Output:

[1] 0.8679

Zoals we zien, stijgt R-kwadraat licht na het toevoegen van een irrelevante voorspeller (Model 2). Dat betekent echter niet dat het model beter is geworden. We hebben immers alleen willekeurige ruis toegevoegd.

Voor verdere lectuur over dit onderwerp, zie de volgende tutorials:

En vergeet niet je in te schrijven voor onze aangewezen cursus:

Python-voorbeeld

Nu proberen we het in Python.

Model 1

import pandas as pd
import statsmodels.api as sm
import numpy as np

# Load data
fish = pd.read_csv('Fish.csv')
X1 = fish[['Length1', 'Length2', 'Height', 'Width']]
y = fish['Weight']

# Model 1
X1 = sm.add_constant(X1)
model1 = sm.OLS(y, X1).fit()
print(model1.rsquared)

Output:

0.8673

Model 2

# Model 2 with an irrelevant predictor
fish['random_noise'] = np.random.randn(len(fish))
X2 = fish[['Length1', 'Length2', 'Height', 'Width', 'random_noise']]
X2 = sm.add_constant(X2)
model2 = sm.OLS(y, X2).fit()
print(model2.rsquared)

Output:

0.8679

Opnieuw zien we een kleine stijging in de R-kwadraatwaarde, maar dit vangt slechts willekeurige ruis.

Blijf leren en schrijf je in voor onze cursussen:

R-kwadraat vs. gerelateerde metrics

Nu vergelijken we R-kwadraat kort met twee gerelateerde metrics: adjusted R-kwadraat en predicted R-kwadraat.

R-kwadraat vs. adjusted R-kwadraat

In tegenstelling tot R-kwadraat houdt adjusted R-kwadraat rekening met het aantal voorspellers. Het bestraft het model met name voor het opnemen van onnodige voorspellers:

formule voor adjusted r-kwadraat

waarbij:

  • n het aantal observaties is,
  • p het aantal voorspellers is.

Deze metric stijgt alleen als een nieuwe voorspeller het model daadwerkelijk zinvol verbetert, en kan dalen in het omgekeerde geval. Lees onze tutorial om meer te leren over deze belangrijke uitbreiding: Adjusted R-Squared: A Clear Explanation with Examples.

R-kwadraat vs. predicted R-kwadraat

Waar gewone R-kwadraat laat zien hoe goed het model presteert op de trainingsdata, vertelt predicted R-kwadraat hoe goed het presteert op nieuwe, ongeziene data. Deze metric beoordeelt dus het generalisatievermogen van het model.

Predicted R-kwadraat wordt berekend met cross-validatie of door een deel van de trainingsdata apart te houden voor latere tests. Het kan significant lager zijn dan gewone R-kwadraat als het model overfit is. Een scenario waarin we een hoge waarde voor gewone R-kwadraat krijgen maar een lage waarde voor predicted R-kwadraat, kan dus zeer waarschijnlijk wijzen op overfitting.

Veelvoorkomende misvattingen over R-kwadraat

Laten we enkele populaire mythes over R-kwadraat bekijken, samen met hoe het echt zit: 

  • “Een hoge R-kwadraat betekent altijd een goed model.” Dat is niet per se waar. R-kwadraat kan hoog zijn voor een overfit model of een model gebaseerd op schijncorrelaties. In beide gevallen kun je zo'n model natuurlijk niet goed noemen.
  • “R-kwadraat meet voorspellende kracht.” In werkelijkheid meet het alleen de modelfit op de trainingsdata en zegt het niets over ongeziene data. Om toekomstige modelprestaties te beoordelen, hebben we andere metrics nodig, zoals de hierboven besproken predicted R-kwadraat.
  • “We moeten altijd streven naar een hoge R-kwadraat.” Nou, niet altijd. Het hangt af van het domein en van de datakwaliteit zelf. Zoals eerder in dit artikel genoemd, kan voor sociale wetenschappen zoals psychologie of geschiedenis de waarde van R-kwadraat heel laag zijn (0,1 of zelfs minder) en toch betekenisvol. Hetzelfde geldt voor rumoerige data, waar een lage R-kwadraat zeer te verwachten is.

Conclusie

Kort samengevat hebben we geleerd wat R-kwadraat is, hoe je deze metric berekent (zowel wiskundig als in R en Python), wanneer je hem gebruikt en wanneer je hem beter vermijdt, en hoe je de resultaten interpreteert. Daarnaast bespraken we twee gerelateerde metrics en enkele wijdverspreide misvattingen over R-kwadraat. 

Kortom, R-kwadraat is een nuttige, intuïtieve en rechtlijnige maat voor de fit van een regressiemodel. Het is een prima startpunt voor modelevaluatie, maar het moet verstandig worden gebruikt, samen met andere metrics worden geïnterpreteerd, en niet worden aangezien voor het hele plaatje. Dit geldt zeker bij meervoudige regressie en modelselectie.


Elena Kosourova's photo
Author
Elena Kosourova
LinkedIn

IBM Certified Data Scientist (2020), eerder petroleumgeoloog/geomodelleur voor olie- en gasvelden wereldwijd, met 12+ jaar internationale werkervaring. Vaardig in Python, R en SQL. Expertisegebieden: datacleaning, datamanipulatie, datavisualisatie, data-analyse, datamodellering, statistiek, storytelling, machine learning. Ruime ervaring met het beheren van datascience-communities en het schrijven/reviewen van artikelen en tutorials over data science en carrière-onderwerpen.

R-kwadraat veelgestelde vragen

Wat is R-kwadraat?

R-kwadraat, genoteerd als R², is een statistische maat voor de goodness of fit in regressiemodellen en laat zien hoeveel van de variatie in de afhankelijke variabele door het model kan worden verklaard.

Hoe bereken je R-kwadraat?

De meest voorkomende formule om R-kwadraat te berekenen is: R2=1-RSS/TSS, waarbij RSS de residuele kwadratensom is en TSS de totale kwadratensom.

Welke waarden kan R-kwadraat aannemen?

De waarde van R-kwadraat ligt tussen 0 en 1, waarbij R²=0 betekent dat het model geen variabiliteit verklaart en R²=1 betekent dat het model alles verklaart.

Hoe interpreteer je R-kwadraat?

Een hoge R-kwadraat betekent dat het model een groot deel van de variantie in de trainingsdata verklaart, terwijl een lage R-kwadraat betekent dat het model weinig variantie verklaart. R-kwadraat meet geen causaliteit en zegt niets over de correctheid of bruikbaarheid van het model.

Wanneer gebruik je R-kwadraat?

R-kwadraat kan helpen modellen te vergelijken met hetzelfde aantal voorspellers of uitleggen hoeveel variantie in een dataset door het model wordt verklaard.

Onderwerpen

Leer met DataCamp

Cursus

Supervised Learning in R: Regressie

4 Hr
46.4K
Bekijk detailsRight Arrow
Begin met de cursus
Meer zienRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer zienMeer zien