Ga naar hoofdinhoud

Een introductie tot t-toetsen in Python

Leer t-toetsen uitvoeren in Python met deze tutorial. Begrijp de verschillende soorten t-toetsen – one-sample test, two-sample test, paired t-test en Welch-toets – en wanneer je welke gebruikt.
Bijgewerkt 2 okt 2026  · 13 min lezen

Verken met AI

ChatGPTClaudePerplexity

In de datagedreven wereld van vandaag kunnen bedrijven niet meer alleen op intuïtie vertrouwen voor cruciale beslissingen. In plaats daarvan moeten ze statistische technieken zoals hypothesetoetsing gebruiken om hun acties te onderbouwen met harde data. Een veelgebruikte toets hiervoor is de t-toets, waarmee je de gemiddelden van twee groepen kunt vergelijken en kunt bepalen of ze statistisch van elkaar verschillen.

Maar hoe pas je de t-toets in de praktijk toe, en hoe interpreteer je de resultaten? In deze tutorial verkennen we deze vragen en meer. We nemen je stap voor stap mee door een voorbeeldscenario waarin je het succes wilt beoordelen van een nieuwe feature die een bedrijf heeft gelanceerd. We laten zien hoe je t-toetsen in Python en de krachtige bibliotheken daarvan gebruikt om de uitkomst te analyseren.

Aan het einde van deze tutorial heb je een solide begrip van t-toetsen en kun je ze met vertrouwen op je eigen data toepassen.

In deze tutorial bespreken we de verschillende soorten t-toetsen – de one-sample test, two-sample test, paired t-test en Welch-toets – evenals hun toepassingen en wanneer je welke gebruikt.  

Terminologie uitgelegd

Voordat we dieper ingaan op de details van de t-toets, bekijken we kort enkele bijbehorende termen die je conceptuele begrip van deze statistische toets zullen versterken.

Hypothesetoetsing

Hypothesetoetsing is het proces waarbij je start met een aanname of nulhypothese en probeert bewijs te vinden om die te verwerpen. De nulhypothese vertegenwoordigt de status quo, terwijl de alternatieve hypothese het tegenovergestelde van de nulhypothese weergeeft. 

Zo kunnen we bijvoorbeeld hypothesetoetsing gebruiken om te bepalen of een nieuwe feature die een bedrijf lanceert goed door klanten wordt ontvangen en of dat zichtbaar is in de succesmetric. Bekijk onze cursus hypothesetoetsing om meer over dit onderwerp te leren.

P-waarde 

De p-waarde is de kans om resultaten te krijgen die net zo extreem zijn als de geobserveerde resultaten, uitgaande van de geldigheid van de nulhypothese. Een kleine p-waarde geeft aan dat de kans op de geobserveerde resultaten erg klein is, gegeven dat de nulhypothese klopt.

Significantieniveau

Het significantieniveau, aangeduid met alfa, is de kans om de nulhypothese te verwerpen terwijl die in werkelijkheid waar is. Dit staat ook bekend als een Type I-fout.

Statistische significantie

Statistische significantie verwijst naar het vertrouwen dat het geobserveerde resultaat niet door toeval komt. Let op dat statistische significantie niet per se praktische significantie betekent, omdat het geobserveerde resultaat in praktische zin nog steeds verwaarloosbaar kan zijn. Steekproeffouten kunnen ook bijdragen aan statistische significantie als de steekproef de grotere populatie niet correct vertegenwoordigt. 

Aannames van de t-toets

Het begrijpen van de aannames van een statistische toets is cruciaal voor nauwkeurige en betrouwbare resultaten. De t-toets vormt daarop geen uitzondering. Elke schending van de aannames kan leiden tot misleidende conclusies, wat contraproductief is. Laten we de vier aannames van de t-toets in detail verkennen:

Onafhankelijkheid

Allereerst stelt de eigenschap van onafhankelijkheid dat observaties niet worden beïnvloed door een impliciete factor in de data en niet in de tijd gecorreleerd zijn. Om onafhankelijkheid te waarborgen, kunnen verschillende technieken worden toegepast om met afhankelijke data om te gaan, zoals uitgelegd door de University of Texas at Austin.

Identieke verdeling 

Ten tweede kan de aanwezigheid van uitschieters, of afwijkende datapunten, de t-statistiek verlagen en leiden tot een hogere variantie in de data, wat de kans op het verwerpen van de nulhypothese beïnvloedt. Het is daarom cruciaal om afwijkend gedrag te identificeren en de onderliggende oorzaken te begrijpen om te bepalen of het om legitieme of foutieve data gaat. Overleg met een domeinexpert kan helpen om het werkelijke gedrag van de data te begrijpen.

Normale verdeling 

Ten derde is de t-toets alleen geldig voor normaal verdeelde data. Scheve data kunnen leiden tot een onjuiste verwerping van de nulhypothese. Het is echter lastig om met weinig datapunten te testen op normaliteit. In zulke gevallen kun je niet-parametrische toetsen gebruiken die geen aanname doen over de verdeling van de data, of een datatransformatie uitvoeren als corrigerende maatregel om normaliteit te bereiken.cases, it is suggested to either use a nonparametric test (which does not make a distributional assumption of data) or perform data transformation as a corrective measure toward normality.

Gelijke varianties 

Tot slot moeten de twee populaties die worden vergeleken gelijke varianties hebben voor de t-toets om te gelden. Dit kan grafisch worden getoetst met een Q-Q-plot.

Nu we de aannames van de t-toets beter begrijpen, gaan we verschillende soorten t-toetsen verkennen met een Python-voorbeeld. Aan het einde van deze tutorial kun je t-toetsen uitvoeren en hun resultaten met vertrouwen interpreteren.

One-sample t-test 

De one-sample t-test is een statistische hypothesetoets die helpt bepalen of een onbekend populatiegemiddelde (mu) niet gelijk is aan een geclaimde waarde. 

t-test equation

Waarbij,

x = steekproefgemiddelde

𝝁 = populatiegemiddelde

S = standaarddeviatie van de steekproef

n = aantal voorbeelden in de steekproef

t = t-statistiek

Laten we dit begrijpen met een voorbeeld. Een bedrijf beweert kogellagers te produceren met een diameter van 10 cm (nulhypothese), en jij besluit te controleren of dat klopt. Je verzamelt 21 kogellagers uit meerdere winkels in de stad en meet hun diameter. Je moet op basis van de metingen bepalen of de claim van het bedrijf onwaar is (alternatieve hypothese).

De toets is als volgt opgezet:

Nulhypothese:             H0 : x  = 𝝁

Alternatieve hypothese:  Ha : x  ≠ 𝝁 

T-test flow diagram

Om de claim als onwaar te verklaren, moet je statistisch aantonen dat de metingen uit de steekproef afwijken van de 10 cm die het bedrijf claimt. Omdat de steekproefgrootte 21 is (minder dan 30), gebruiken we een t-toets. Hier is het steekproefgemiddelde 11 cm en de standaarddeviatie 1 cm.

Voorbeeld one-sample t-test in Python

Laten we leren hoe je een one-sample t-test uitvoert in Python met de functie scipy.stats.ttest_1samp(). 

import numpy as np  
from scipy import stats  

# Population Mean 
mu = 10

# Sample Size
N1 = 21

# Degrees of freedom  
dof = N1 - 1

# Generate a random sample with mean = 11 and standard deviation = 1
x = np.random.randn(N1) + 11

# Using the Stats library, compute t-statistic and p-value
t_stat, p_val = stats.ttest_1samp(a=x, popmean = mu)
print("t-statistic = " + str(t_stat))  
print("p-value = " + str(p_val)) 
t-statistic = 4.689539773390642
p-value = 0.0001407967502139183

Interpretatie van de testresultaten

De waarde van de t-statistiek komt uit op 4,69, wat erg ver van het gemiddelde nul in een t-verdeling lijkt te liggen. Om zo’n extreme waarde te kwantificeren, verwijzen we naar een p-waarde (geïntroduceerd in de terminologiesectie). De p-waarde is kleiner dan het standaard significantieniveau van 0,05, wat aangeeft dat de kans op zo’n extreme uitkomst vrijwel nul is en dat de nulhypothese kan worden verworpen.

Let op: het significantieniveau wordt aan het begin van het experiment vastgesteld.

Een andere aanpak

Laten we de one-sample t-test uitvoeren zonder de functie ttest_1samp(). De t-statistiek wordt in dit geval gedefinieerd als het verschil tussen het steekproef- en populatiegemiddelde gedeeld door de standaardfout, zoals in de vorige sectie besproken. 

  • Bereken eerst het steekproefgemiddelde (x_bar)
  • Bereken vervolgens de standaarddeviatie van de steekproef met één vrijheidsdruk (dit is de standaarddeviatie van de steekproef).
  • Bereken de standaardfout door de standaarddeviatie te delen door de wortel van de steekproefgrootte.
  • Gebruik de one-sample t-statistiekformule zoals eerder uitgelegd.
  • Bereken de p-waarde om de significantie van de t-statistiek vast te stellen.
# Sample Mean
x_bar = x.mean()

# Standard Deviation  
std = np.std(x, ddof=1)

# Standard Error
ste = std/np.sqrt(N1)

# Calculating the T-Statistics  
t_stat = (x_bar - mu) / ste

# p-value of the t-statistic
p_val = 2*(1 - stats.t.cdf(abs(t_stat), df = dof))
print("t-statistic = " + str(t_stat))  
print("p-value = " + str(p_val)) 
t-statistic = 4.689539773390642
p-value = 0.0001407967502139183

Two-sample t-test uitvoeren in Python

Laten we ons voorbeeld uitbreiden door aan te nemen dat het bedrijf een tweede fabriek opzet om identieke kogellagers te produceren. We moeten uitzoeken of de kogellagers uit de twee fabrieken van verschillende grootte zijn. Voor zo’n scenario gebruiken we de two-sample test. Hier wordt de t-statistiek als volgt gedefinieerd. 

Two sample t-test equation

Waarbij,

X1= eerste steekproefgemiddelde

X2 = tweede steekproefgemiddelde

S1 = standaarddeviatie van de eerste steekproef

S2 = standaarddeviatie van de tweede steekproef

N1 = grootte van de eerste steekproef

N2 = grootte van de tweede steekproef

Voorbeeld two-sample t-test in Python

Stel dat de eerste fabriek 21 steekproeven van kogellagers aanlevert, met een gemiddelde diameter van 10,5 cm. De tweede fabriek levert 25 steekproeven met een gemiddelde diameter van 9,5 cm. Beide hebben een standaarddeviatie van 1 cm. 

# Sample Sizes
N1, N2 = 21, 25

# Degrees of freedom  
dof = min(N1,N2) - 1

# Gaussian distributed data with mean = 10.5 and var = 1  
x = np.random.randn(N1) + 10.5

# Gaussian distributed data with mean = 9.5 and var = 1  
y = np.random.randn(N2) + 9.5

## Using the internal function from SciPy Package  
t_stat, p_val = stats.ttest_ind(x, y)  
print("t-statistic = " + str(t_stat))  
print("p-value = " + str(p_val))
t-statistic = 3.18913308431476
p-value = 0.0026296199823557754

Interpretatie van de testresultaten

Gezien de p-waarde van 0,0026, die kleiner is dan het significantieniveau van 0,05, verwerpen we de nulhypothese en concluderen we dat de lagers uit de twee fabrieken niet identiek zijn.

Paired t-test uitvoeren in Python

Nadat deze resultaten met het bedrijf zijn gedeeld, besluit het de productietechnologie te verbeteren door een nieuwe gietmachine te introduceren. Het start deze pilot in één van de fabrieken en voert een test uit om te bepalen of de nieuwe gietmachine leidt tot een verandering in de diameter van de lagers door twee steekproeven van 25 lagers te vergelijken – één van vóór de introductie van de nieuwe machine en de andere erna. 

Het gemiddelde van de diameter komt respectievelijk uit op 10,5 cm en 9,9 cm. 

Voorbeeld paired t-test in Python

Laten we een paired t-test uitvoeren om te verifiëren of de verandering statistisch significant is.

# Sample Sizes
N = 25

# Degrees of freedom  
dof = N - 1

# Gaussian distributed data with mean = 10.5 and var = 1  
x = np.random.randn(N) + 10.5

# Gaussian distributed data with mean = 9.9 and var = 1  
y = np.random.randn(N) + 9.9

t_stat, p_val = stats.ttest_rel(x,y)
print("t-statistic = " + str(t_stat))  
print("p-value = " + str(p_val))
t-statistic = 3.446152658909739
p-value = 0.0021043953630465787

Interpretatie van de testresultaten

De lage p-waarde geeft aan dat de nulhypothese wordt verworpen, oftewel dat er een verandering is in de diameter van de kogellagers na de introductie van de nieuwe gietmachine. 

Kanttekeningen bij een paired t-test

De aannames van de paired t-test gelden voor de verschillen van de paren en niet voor de oorspronkelijke observaties. Het is dus belangrijk om te zorgen dat de verschillen tussen de paren symmetrisch verdeeld zijn en geen uitschieters bevatten. 

Welch-toets uitvoeren in Python

Na een succesvolle pilot met de nieuwe gietmachine in één fabriek wil het bedrijf een tweede pilot proberen in de andere fabriek met een nieuwe polijstmachine. Deze machine staat bekend om zeer nauwkeurige kogellagers, maar is gevoelig voor temperatuurschommelingen en spanningsfluctuaties. Het bedrijf moet vaststellen of de kogellagers uit de twee fabrieken van elkaar verschillen door 21 steekproeven uit de eerste fabriek te vergelijken met 25 uit de tweede fabriek. 

Voorbeeld Welch-toets in Python

Het gemiddelde van de diameter uit de eerste fabriek blijkt 9,9 cm met een standaarddeviatie van 1 cm, terwijl het gemiddelde uit de tweede fabriek 10 cm is met een standaarddeviatie van 3 cm.  Aangezien de standaarddeviaties van de twee steekproeven verschillen, gebruiken we de Welch-toets.

# Sample Sizes
N1, N2 = 21, 25

# Degrees of freedom  
dof = min(N1,N2) - 1

# Gaussian distributed data with mean = 9.9 and var = 1  
x = np.random.randn(N1) + 9.9

# Gaussian distributed data with mean = 10 and var = 3
y = 3*np.random.randn(N2) + 10

## Using SciPy Package  
t_stat, p_val = stats.ttest_ind(x, y, equal_var = False) 
print("t-statistic = " + str(t_stat))  
print("p-value = " + str(p_val))
t-statistic = 1.3828843424092643
p-value = 0.17753505304053804

Interpretatie van de testresultaten

De geobserveerde p-waarde is groter dan het significantieniveau van 0,05, wat aangeeft dat we de nulhypothese niet verwerpen en dus dat de lagers uit de twee fabrieken identiek zijn. Door de hoge standaarddeviatie van de steekproeven uit de tweede fabriek kunnen we echter niet zeker zijn van de resultaten; we zullen daarom meer steekproeven moeten verzamelen om de z-toets uit te voeren. 

Kanttekeningen bij de Welch-toets 

In tegenstelling tot andere t-toetsen is de Welch-toets toepasbaar bij ongelijke populatievarianties

Conclusie

Data kan het onderliggende verschijnsel dat zakelijke beslissingen beïnvloedt blootleggen, maar alleen als je de juiste vragen stelt. Daarvoor is een robuust begrip nodig van verschillende statistische toetsen en wanneer je welke toepast. Deze tutorial richt zich op t-toetsen en legt de onderliggende aannames uit, zoals onafhankelijke en identiek verdeelde observaties en normale verdeling. 

Naast een korte introductie in hypothesetoetsing biedt deze tutorial ook een compleet overzicht van verschillende soorten t-toetsen aan de hand van een voorbeeld. We raden je sterk aan om te oefenen met het uitvoeren van een t-toets in Python en te beoordelen welke toets je moet gebruiken om de statistische significantie van jouw experiment vast te stellen.    

Referenties en aanbevolen bronnen:

Onderwerpen
Python
Data-analyse
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 BekijkenMeer Bekijken