Statistiek voor Data Science 2026: Kansrekening, Hypothesetoetsen en Sollicitatievragen
Gids voor statistische concepten in data science sollicitaties: kansverdelingen, hypothesetoetsen, betrouwbaarheidsintervallen en veelgestelde vragen bij Google, Meta en Netflix.

Statistiek vormt de wiskundige basis van elke data science functie. Interviewers bij bedrijven zoals Google, Meta en Netflix testen statistisch redeneren omdat het kandidaten onderscheidt die modellen kunnen bouwen van degenen die begrijpen waarom die modellen werken.
Statistiekvragen beoordelen drie vaardigheden: bedrijfsproblemen vertalen naar statistische frameworks, de juiste test kiezen voor de data, en resultaten interpreteren zonder overhaaste conclusies te trekken.
Kansverdelingen die elke Data Scientist moet kennen
Kansverdelingen beschrijven hoe datapunten zich verspreiden over mogelijke waarden. Interviewers verwachten bekendheid met deze verdelingen omdat ze de basis vormen voor steekproeftrekking, A/B-testen en modelaannames.
De normale verdeling (Gaussiaanse verdeling) verschijnt overal: meetfouten, lengte, testscores. De klokvormige curve centreert zich rond het gemiddelde, met 68% van de data binnen één standaarddeviatie en 95% binnen twee. Wanneer steekproefgroottes groter zijn dan 30, garandeert de Centrale Limietstelling dat steekproefgemiddelden een normale verdeling volgen, ongeacht de vorm van de oorspronkelijke populatie.
De binomiale verdeling modelleert succes-/mislukkingsproeven. Doorklikratio's, conversiegebeurtenissen en kwaliteitscontroles met geslaagd/niet-geslaagd volgen binomiale patronen. Voor n proeven met succeskans p is de verwachte waarde np en de variantie np(1-p).
De Poissonverdeling telt zeldzame gebeurtenissen over vaste intervallen: websitebezoeken per minuut, defecten per batch, oproepen per uur. De enkele parameter λ vertegenwoordigt zowel gemiddelde als variantie. Wanneer gebeurtenissen onafhankelijk optreden met een constante gemiddelde snelheid, past Poisson.
# distributions_demo.py
import numpy as np
from scipy import stats
# Normal: customer spend follows N(μ=50, σ=15)
normal_samples = stats.norm.rvs(loc=50, scale=15, size=1000)
prob_above_80 = 1 - stats.norm.cdf(80, loc=50, scale=15) # P(X > 80)
# Binomial: 100 users, 5% conversion rate
binom_samples = stats.binom.rvs(n=100, p=0.05, size=1000)
prob_at_least_10 = 1 - stats.binom.cdf(9, n=100, p=0.05) # P(X >= 10)
# Poisson: 3 support tickets per hour on average
poisson_samples = stats.poisson.rvs(mu=3, size=1000)
prob_zero_tickets = stats.poisson.pmf(0, mu=3) # P(X = 0)Deze drie verdelingen dekken de meeste praktische scenario's. Interviewers vragen vaak welke verdeling past bij een bepaalde bedrijfscontext, dus oefen met het koppelen van echte problemen aan het juiste model.
Hypothesetoetsen: Het Framework achter A/B-Tests
Hypothesetoetsen bieden een formele structuur voor het nemen van beslissingen op basis van data. Het framework begint met een nulhypothese (H₀) die geen effect of geen verschil vertegenwoordigt, en een alternatieve hypothese (H₁) die vertegenwoordigt wat het experiment probeert te detecteren.
Een typische A/B-test nulhypothese stelt: "De nieuwe functie heeft geen effect op de conversieratio." Het alternatief beweert dat er een effect bestaat. De test berekent hoe waarschijnlijk de waargenomen data zou zijn als de nulhypothese waar zou zijn.
De p-waarde kwantificeert deze waarschijnlijkheid. Een p-waarde van 0,03 betekent dat er een kans van 3% is om resultaten zo extreem te zien als de nulhypothese geldt. Wanneer de p-waarde onder het significantieniveau valt (gewoonlijk α = 0,05), wordt de nulhypothese verworpen.
# ab_test_analysis.py
import numpy as np
from scipy import stats
# A/B test data: control vs treatment conversion rates
control_conversions = 120
control_visitors = 2000
treatment_conversions = 145
treatment_visitors = 2000
# Proportions
p_control = control_conversions / control_visitors # 0.060
p_treatment = treatment_conversions / treatment_visitors # 0.0725
# Pooled proportion under null hypothesis
p_pooled = (control_conversions + treatment_conversions) / (control_visitors + treatment_visitors)
# Standard error
se = np.sqrt(p_pooled * (1 - p_pooled) * (1/control_visitors + 1/treatment_visitors))
# Z-statistic
z_stat = (p_treatment - p_control) / se
# Two-tailed p-value
p_value = 2 * (1 - stats.norm.cdf(abs(z_stat)))
print(f"Z-statistic: {z_stat:.3f}") # Z-statistic: 1.681
print(f"P-value: {p_value:.4f}") # P-value: 0.0928Met een p-waarde van 0,0928 verwerpt deze test de nulhypothese niet bij α = 0,05. Het waargenomen verschil kan willekeurige variatie zijn. Meer data of een grotere effectgrootte zou nodig zijn om statistische significantie te bereiken.
Type I en Type II Fouten: De Afwegingen die Interviewers Onderzoeken
Statistische tests balanceren twee soorten fouten. Een Type I fout (vals positief) treedt op wanneer een ware nulhypothese wordt verworpen. Een Type II fout (vals negatief) treedt op wanneer een valse nulhypothese niet wordt verworpen.
Het significantieniveau α controleert direct de Type I fout waarschijnlijkheid. Het instellen van α = 0,05 betekent het accepteren van een 5% kans op vals positieven. Het verlagen van α naar 0,01 vermindert vals positieven maar verhoogt vals negatieven.
Statistisch vermogen (1 - β) meet de waarschijnlijkheid van het correct verwerpen van een valse nulhypothese. Vermogen hangt af van effectgrootte, steekproefgrootte en significantieniveau. De industriestandaard richt zich op 80% vermogen, wat een 20% kans betekent om echte effecten te missen.
Kandidaten verwarren vaak "geen significant verschil" met "er bestaat geen verschil". Het niet verwerpen van de nulhypothese bewijst niet dat de nulhypothese waar is. De test kan onvoldoende vermogen hebben om een klein maar echt effect te detecteren.
Steekproefgrootteberekeningen balanceren deze zorgen. Voor een A/B-test gericht op een 2% stijging in conversie (van 5% naar 7%) met 80% vermogen en α = 0,05:
# sample_size_calculation.py
from statsmodels.stats.power import zt_ind_solve_power
# Baseline conversion: 5%, expected lift: 2 percentage points
baseline = 0.05
expected = 0.07
effect_size = (expected - baseline) / np.sqrt(baseline * (1 - baseline)) # Cohen's h
# Required sample size per group
n_per_group = zt_ind_solve_power(
effect_size=effect_size,
alpha=0.05,
power=0.80,
alternative='two-sided'
)
print(f"Sample size per group: {int(np.ceil(n_per_group))}") # ~1,570 per groupTests met onvoldoende vermogen verspillen middelen door experimenten uit te voeren die realistische effecten niet kunnen detecteren.
Betrouwbaarheidsintervallen: Onzekerheid Kwantificeren
Een 95% betrouwbaarheidsinterval betekent: als hetzelfde steekproefproces vele malen zou worden herhaald, zou 95% van de geconstrueerde intervallen de ware parameter bevatten. Betrouwbaarheidsintervallen communiceren onzekerheid beter dan puntschattingen alleen.
Voor gemiddelden met bekende populatievariantie gebruikt het interval de z-verdeling. Voor kleine steekproeven of onbekende variantie is de t-verdeling van toepassing. De t-verdeling heeft zwaardere staarten dan de normale verdeling en produceert bredere intervallen die rekening houden met extra onzekerheid.
# confidence_intervals.py
import numpy as np
from scipy import stats
# Sample data: response times in milliseconds
response_times = np.array([245, 312, 278, 299, 256, 334, 287, 301, 265, 289])
n = len(response_times)
mean = np.mean(response_times) # 286.6
std_err = stats.sem(response_times) # Standard error of the mean
# 95% confidence interval using t-distribution (df = n-1)
t_critical = stats.t.ppf(0.975, df=n-1)
margin_of_error = t_critical * std_err
ci_lower = mean - margin_of_error
ci_upper = mean + margin_of_error
print(f"Mean: {mean:.1f}ms") # Mean: 286.6ms
print(f"95% CI: [{ci_lower:.1f}, {ci_upper:.1f}]ms") # 95% CI: [265.4, 307.8]msSmallere intervallen duiden op preciezere schattingen. Steekproefgrootte bepaalt de precisie: het verviervoudigen van n halveert de foutmarge.
Klaar om je Data Science & ML gesprekken te halen?
Oefen met onze interactieve simulatoren, flashcards en technische tests.
Bayesiaans vs Frequentistisch: Sollicitatievragen over Statistische Filosofie
Interviewers onderzoeken soms het begrip van concurrerende statistische paradigma's. Frequentistische statistiek behandelt kans als langetermijnfrequentie: parameters zijn vast en data varieert over herhaalde experimenten. P-waarden en betrouwbaarheidsintervallen komen uit deze traditie.
Bayesiaanse statistiek behandelt kans als mate van overtuiging: voorkennis combineert met data om posterior overtuigingen te produceren. Het framework maakt het mogelijk om domeinexpertise te incorporeren en produceert direct kansuitspraken over parameters.
A/B-testen gebruiken steeds vaker Bayesiaanse methoden omdat ze de vraag beantwoorden die stakeholders daadwerkelijk stellen: "Wat is de kans dat behandeling B beter presteert dan behandeling A?" in plaats van "Hoe verrassend is deze data als er geen verschil zou zijn?"
# bayesian_ab_test.py
import numpy as np
from scipy import stats
# Prior: Beta(1, 1) = uniform prior for conversion rate
# Posterior: Beta(alpha + successes, beta + failures)
control_successes, control_failures = 120, 1880
treatment_successes, treatment_failures = 145, 1855
# Posterior distributions
posterior_control = stats.beta(1 + control_successes, 1 + control_failures)
posterior_treatment = stats.beta(1 + treatment_successes, 1 + treatment_failures)
# Monte Carlo estimation: P(treatment > control)
samples_control = posterior_control.rvs(100000)
samples_treatment = posterior_treatment.rvs(100000)
prob_treatment_better = np.mean(samples_treatment > samples_control)
print(f"P(treatment > control): {prob_treatment_better:.2%}") # ~95%Bayesiaanse resultaten communiceren direct: "Er is een 95% kans dat de conversieratio van de behandeling die van de controle overtreft." Frequentistische resultaten vereisen zorgvuldigere interpretatie.
Veelvoorkomende Sollicitatievragen over Statistische Inferentie
Deze vragen verschijnen frequent in data science sollicitaties bij technologiebedrijven. Elke vraag test een specifiek statistisch concept.
"Leg de Centrale Limietstelling uit en waarom het belangrijk is."
De CLS stelt dat steekproefgemiddelden van elke populatie (met eindige variantie) een normale verdeling benaderen naarmate de steekproefgrootte toeneemt. Dit is belangrijk omdat normaliteitsaannames in hypothesetoetsen gelden voor grote steekproeven, ongeacht de onderliggende verdeling. Steekproefgroottes van 30+ zijn doorgaans voldoende.
"Wat is p-hacking en hoe voorkom je het?"
P-hacking verhoogt vals positieve percentages door meerdere hypothesen te testen totdat significantie wordt gevonden, of door dataverzameling te stoppen wanneer resultaten significant worden. Preventiestrategieën: analyseplannen vooraf registreren, correcties voor meervoudige vergelijkingen toepassen (Bonferroni, FDR) en steekproefgroottes vaststellen voordat data wordt verzameld.
"Wanneer zou je een t-test versus een Mann-Whitney U-test gebruiken?"
De t-test neemt normaal verdeelde data aan (of grote steekproeven via CLS) en vergelijkt gemiddelden. De Mann-Whitney U is een niet-parametrisch alternatief dat verdelingen vergelijkt zonder normaliteitsaannames. Gebruik Mann-Whitney voor kleine steekproeven met duidelijk niet-normale data of bij het vergelijken van ordinale metingen.
"Hoe ga je om met meervoudige vergelijkingen in A/B-testen?"
Het testen van meerdere varianten verhoogt de Type I fout. Met 20 vergelijkingen bij α = 0,05 overschrijdt de kans op minstens één vals positief resultaat 60%. De Bonferroni-correctie deelt α door het aantal tests. De Benjamini-Hochberg-procedure controleert de valse ontdekkingsratio terwijl meer vermogen behouden blijft dan bij Bonferroni.
De Paradox van Simpson: Een Favoriet Sollicitatieonderwerp
De paradox van Simpson treedt op wanneer trends in geaggregeerde data omkeren op subgroepniveau. Interviewers houden van dit onderwerp omdat het causaal redeneren test, niet alleen statistische mechanica.
Een klassiek voorbeeld: Ziekenhuis A heeft een hoger algemeen sterftecijfer dan Ziekenhuis B. Maar Ziekenhuis A heeft lagere sterfte voor zowel milde als ernstige gevallen. De paradox ontstaat omdat Ziekenhuis A meer ernstige gevallen behandelt, die hogere sterfte hebben ongeacht de ziekenhuiskwaliteit.
# simpsons_paradox.py
import pandas as pd
# Hospital mortality data
data = {
'Hospital': ['A', 'A', 'B', 'B'],
'Severity': ['Mild', 'Severe', 'Mild', 'Severe'],
'Patients': [200, 800, 800, 200],
'Deaths': [10, 160, 48, 50]
}
df = pd.DataFrame(data)
df['Mortality'] = df['Deaths'] / df['Patients']
# Subgroup mortality
print(df[['Hospital', 'Severity', 'Mortality']])
# Hospital A: Mild 5%, Severe 20%
# Hospital B: Mild 6%, Severe 25%
# Aggregate mortality
agg = df.groupby('Hospital').agg({'Deaths': 'sum', 'Patients': 'sum'})
agg['Mortality'] = agg['Deaths'] / agg['Patients']
print(agg['Mortality'])
# Hospital A: 17%, Hospital B: 9.8%De oplossing vereist het identificeren van de verstorende variabele (ernst) en het afzonderlijk analyseren van subgroepen. Geaggregeerde analyse misleidt wanneer subgroepverhoudingen verschillen.
Statistische Concepten voor Feature Engineering
Statistische kennis verbetert direct feature engineering. Begrip van verdelingen stuurt transformaties; begrip van relaties stuurt feature-creatie.
Scheefheid (skewness) meet de asymmetrie van de verdeling. Rechts-scheve data (inkomen, prijzen) profiteert van logtransformaties die de verdeling normaliseren en modelprestaties verbeteren. Links-scheve data gebruikt kwadratische of exponentiële transformaties.
Correlatie kwantificeert lineaire relaties. Pearson-correlatie neemt normaliteit en lineariteit aan. Spearman-correlatie behandelt monotone niet-lineaire relaties. Sterk gecorreleerde features veroorzaken multicollineariteit in lineaire modellen, dus wordt er typisch één verwijderd.
Uitbijters beïnvloeden gemiddelden en standaarddeviaties onevenredig. Robuuste statistieken (mediaan, IQR) weerstaan de invloed van uitbijters. Beslissing: uitbijters verwijderen, afkappen of transformeren, afhankelijk van of ze fouten of echte extreme waarden vertegenwoordigen.
Voor meer informatie over het toepassen van deze concepten op machine learning modellen, zie de feature engineering sollicitatiegids en verken de oefenmodule voor inferentiële statistiek.
Begin met oefenen!
Test je kennis met onze gespreksimulatoren en technische tests.
Wat Sterke Kandidaten Onderscheidt bij Statistiekvragen
Statistische competentie in data science sollicitaties vereist meer dan leerboekdefinities. Sterke kandidaten demonstreren deze vaardigheden:
- Statistiek verbinden met bedrijfsresultaten: A/B-testresultaten formuleren in termen van omzetimpact of gebruikersbetrokkenheid, niet alleen p-waarden
- De aannames kennen: elke test heeft voorwaarden (onafhankelijkheid, normaliteit, gelijke variantie) en kandidaten moeten aangeven wanneer deze voorwaarden mogelijk niet gelden
- Onzekerheid kwantificeren: puntschattingen zonder betrouwbaarheidsintervallen of geloofwaardige intervallen laten stakeholders raden over betrouwbaarheid
- Causaliteitsgrenzen herkennen: observationele data toont correlatie, en kandidaten moeten articuleren welk experimenteel ontwerp causaliteit zou vaststellen
- De juiste test kiezen: datatype (continu vs categoriaal), steekproefgrootte en onderzoeksvraag matchen aan de juiste statistische methode
- Resultaten helder communiceren: statistische bevindingen vertalen naar uitvoerbare aanbevelingen die niet-technische stakeholders kunnen begrijpen en waarop zij kunnen handelen
Zie jij de bug in Data Science & ML?
Een echt codefragment, een verborgen bug, één poging per dag. Zonder account uit te proberen.

Geschreven door
Anthony Fillion-MailletOprichter van SharpSkill
Al meer dan 10 jaar fullstack-ontwikkelaar. Hij leidt SharpSkill en staat in voor alles wat hier verschijnt.
Bijgewerkt op 21 augustus 2026
Delen
Gerelateerde artikelen

Computer Vision met PyTorch in 2026: CNNs, Transfer Learning en Sollicitatievragen
Computer vision met PyTorch: bouw CNNs vanaf nul, pas transfer learning toe met voorgetrainde modellen en bereid je voor op technische sollicitatiegesprekken.

LangChain voor Data Scientists in 2026: LLMs, Agents en Sollicitatievragen
Beheers LangChain 0.3 voor data science: LCEL-chains, RAG-patronen, ReAct-agents en memory-systemen. Inclusief sollicitatievragen en productie-deployment strategieën.

MLOps in 2026: MLflow, Model Registry en technische sollicitatievragen
MLOps-sollicitatievragen over de ML-levenscyclus, MLflow experiment tracking, promotie in de model registry, uitrolpatronen, driftmonitoring en systeemontwerp voor 2026, met Python-code en antwoorden.