Ga naar hoofdinhoud

Introductie tot Maximum Likelihood Estimation (MLE)

Leer wat Maximum Likelihood Estimation (MLE) is, begrijp de wiskundige basis, bekijk praktische voorbeelden en ontdek hoe je MLE in Python implementeert.
Bijgewerkt 2 jun 2026  · 13 min lezen

Parameters schatten is een fundamentele stap in statistische analyse en machine learning. Van de vele beschikbare methoden is Maximum Likelihood Estimation (MLE) een van de meest gebruikte benaderingen dankzij de intuïtieve aard, wiskundige degelijkheid en brede toepasbaarheid op verschillende soorten data en modellen.

In dit artikel leer je wat MLE is, verken je de wiskundige basis met gedetailleerde afleidingen en voorbeelden, en ontdek je praktische computationele methoden om MLE effectief te implementeren.

Wat is Maximum Likelihood Estimation (MLE)?

Maximum likelihood estimation (MLE) is een belangrijke statistische methode om de parameters van een kansverdeling te schatten door de likelihood-functie te maximaliseren.

Stroomschema met geobserveerde data, statistische modellen en parameter-schatmethoden waaronder MLE

Als we kijken waar MLE past binnen de statistische inferentie, is het een van de meest gebruikelijke methoden om parameters te schatten.

Je zou hier echter nog een vraag kunnen hebben. Wat is een likelihood-functie? Laten we dat verder bespreken.

Wat is de likelihood-functie?

Je kunt de likelihood-functie zien als een manier om te meten hoe goed een bepaalde set parameters de data verklaart die je hebt geobserveerd.

Met andere woorden, het beantwoordt de vraag: “Gegeven deze parameterwaarden, hoe waarschijnlijk is het dat ik deze data zou zien?” Maar er is een veelvoorkomend misverstand tussen kans en likelihood:

  • Kans gaat over het voorspellen van data op basis van parameters
  • Likelihood meet hoe plausibel verschillende parameterwaarden zijn, gegeven de geobserveerde data. Het is een functie van parameters bij vaste data. Ter contrast: kans is een functie van data bij vaste parameters.

Samengevat neemt de likelihood-functie de parameters van je model als invoer en geeft een getal dat weergeeft hoe plausibel die parameters zijn, gegeven je data.

Hoe hoger de waarde van de likelihood-functie, hoe beter die parameters je data verklaren.

Nog eenvoudiger gezegd: de likelihood-functie helpt ons verschillende parameterkeuzes te “scoren”, zodat we de waarden kunnen kiezen die onze geobserveerde data het meest waarschijnlijk maken.

Nu we het verschil tussen kans en likelihood, en het doel van MLE begrijpen, gaan we door naar de onderliggende wiskunde. Diagram dat laat zien dat kans data voorspelt vanuit parameters, terwijl likelihood parameters afleidt uit data.

Hoe leid je de MLE-formule af?

Voordat we specifieke voorbeelden induiken, bekijken we hoe de maximum likelihood-schatting (MLE) in het algemeen wordt afgeleid. We lopen elke stap door en lichten de redenering toe.

Stap 1: Definieer het kansmodel

Stel dat we een dataset hebben: x₁, x₂, ..., xₙ. We nemen aan dat deze datapunten afkomstig zijn van een kansverdeling die afhangt van een onbekende parameter θ (theta). Ons hoofddoel is θ te schatten. 

Als onze dataset bijvoorbeeld over muntworpen gaat, kan θ de kans op kop zijn. Als de dataset continu is, zoals de lengtes van studenten in de klas, kan θ het gemiddelde van een normale verdeling zijn.

Stap 2: Schrijf de likelihood-functie op

De likelihood-functie meet hoe waarschijnlijk het is om je data te observeren voor verschillende waarden van θ. Ze is gedefinieerd als:

Intuïtief vragen we: gegeven dat de parameter θ een specifieke waarde heeft, wat is de kans om precies deze dataset te observeren? 

Deze dataset wordt weergegeven als de gezamenlijke kans op het observeren van de individuele datapunten (x₁, x₂, ..., xₙ), ervan uitgaande dat ze zijn gegenereerd onder het model geparametriseerd door θ. 

Met behulp van de kettingregel van de kansrekening kunnen we de bovenstaande vergelijking als volgt uitschrijven:

Dit is echter een vrij ingewikkelde vergelijking! Daarom nemen we aan dat de datapunten onafhankelijk zijn — meer specifiek, conditioneel onafhankelijk

Hierdoor kunnen we de gezamenlijke kans schrijven als het product van individuele kansen:

Aangezien onze geobserveerde datapunten conditioneel onafhankelijk zijn gegeven θ, weten we dat de volgende vergelijking geldt:

Dit komt doordat we aannemen dat, zodra we de waarde van θ kennen, de datapunten x₁ en x₂ conditioneel onafhankelijk zijn.

Stap 3: Vind de waarde van θ die de likelihood maximaliseert

We zijn nu op het punt dat we de waarden van θ moeten vinden die de likelihood-functie maximaliseren (m.a.w. die de geobserveerde data het meest waarschijnlijk maken):

Onthoud echter dat onze likelihood-functie een product bevat. Werken met producten kan lastig worden, vooral bij veel datapunten. Om te vereenvoudigen nemen we het logaritme van de likelihood-functie, omdat dit het product omzet in een som.

Dit levert de log-likelihood op, die enkele gunstige eigenschappen heeft:

  • De log zet producten om in sommen, wat veel makkelijker is om mee te werken, vooral bij differentiëren.
  • De logfunctie is monotoon, dus het maximaliseren van de log-likelihood geeft dezelfde θ als het maximaliseren van de likelihood.

Grafiek van de log(x)-functie

Stap 4: Vind de optimale waarde

We zijn nu op het punt dat we kunnen differentiëren, maar in machine learning willen we verliesfuncties meestal minimaliseren. Gelukkig is dat makkelijk op te lossen. 

Door een minteken toe te voegen (d.w.z. vermenigvuldigen met -1) aan het begin van onze functie, moeten we nu onze verliesfunctie minimaliseren, die nu de Negative Log-Likelihood Loss Function wordt genoemd.

Grafiek van de -log(x)-functie

Nu kunnen we calculus gebruiken om de waarde van θ te verkrijgen. We nemen de afgeleide van de log-likelihood naar θ, zetten die gelijk aan nul en lossen op naar θ. Dit omdat het minimum van een functie ligt waar de afgeleide nul is (en de tweede afgeleide positief).

Daarom is de uiteindelijke vergelijking voor MLE:

Uitgewerkte MLE-voorbeelden

Nu we de MLE-vergelijking hebben afgeleid, bekijken we enkele uitgewerkte voorbeelden om ons begrip te versterken.

Dobbelsteenworpen

We beginnen met een eenvoudig, discreet voorbeeld: het schatten van de kans op het gooien van een zes met een mogelijk oneerlijke dobbelsteen.

Stel dat we 12 keer met een dobbelsteen gooien en de resultaten noteren. We willen deze data modelleren met een categorische verdeling, maar we focussen op het schatten van de kans θ (theta) op het gooien van een zes. In dit voorbeeld:

  • Parameter (θ): De waarde die je wilt schatten — kans op het gooien van een zes
  • Data (x): De geobserveerde resultaten — 4 zessen in 12 worpen

Nu berekenen we de likelihood-functie. Omdat we 4 zessen uit 12 worpen kregen, verkrijgen we:

Dit krijgen we omdat we van de 12 worpen 4 keer een zes hebben — vandaar θ⁴ — en 8 keer geen zes — vandaar de term (1 - θ)⁸. 

Onthoud dat we deze termen hebben vermenigvuldigd omdat we aannamen dat ze conditioneel onafhankelijk zijn. 

Vervolgens nemen we de negatieve log-likelihood zoals eerder besproken, wat deze vergelijking oplevert:

Ten slotte differentiëren we de vergelijking naar θ en zetten die gelijk aan 0 (omdat we het minimum willen vinden):

Uit deze vergelijking kunnen we concluderen dat θ gelijk is aan ⅓. 

Let op: Als we meerdere oplossingen voor θ zouden krijgen, dan moeten we ook de tweede afgeleide bepalen en kijken welke θ-waarden een positieve uitkomst geven (om te bevestigen dat we een minimum hebben gevonden). Dit wordt geïllustreerd in de voorbeeldfunctie hieronder:

Voorbeeld dat laat zien dat de tweede afgeleide bij een minimum positief is.

Lengte-voorbeeld

Kijk nu naar een continu voorbeeld — het schatten van het gemiddelde van een normale (Gaussische) verdeling.

Stel dat we een dataset hebben met de lengtes van 5 personen: 160, 165, 170, 175, 180 (in cm). We nemen aan dat deze getrokken zijn uit een normale verdeling met een onbekend gemiddelde μ (mu) en bekende variantie σ² (neem σ² = 25 voor de eenvoud).

  • Parameter (μ): De waarde die je wilt schatten (de gemiddelde lengte)
  • Data (x₁, x₂, ..., x₅): De geobserveerde lengtes

De likelihood-functie voor de normale verdeling (met bekende variantie) is: 

Dit is erg ingewikkeld, maar de negatieve log nemen maakt het eenvoudiger. Hopelijk zie je nu de kracht van de logfunctie in onze vergelijking. De vergelijking die we krijgen is:

We krijgen hier twee termen, maar let erop dat de tweede term kan worden genegeerd bij het differentiëren, omdat we differentieëren naar μ, en de tweede term geen μ bevat. 

We zijn er bijna, maar kijk naar μ tussen de haakjes. 

Omdat het een constante is, kunnen we die eenvoudig vermenigvuldigen met n; μ n keer optellen is simpelweg n*μ. 

Het uiteindelijke antwoord moet intuïtief aanvoelen, want wiskundig staat er dat je alle waarden van x optelt en deelt door n (het aantal observaties), en dat is ook precies de definitie van het gemiddelde!

Door onze datapunten in te vullen in deze vergelijking, krijgen we een gemiddelde van 170 cm. 

Om dit visueler te maken, zie je hier een animatie die laat zien hoe de likelihood verandert als we μ variëren:

Animatie toont hoe het veranderen van het gemiddelde van een Gaussische verdeling de log-likelihood beïnvloedt. De log-likelihood is het hoogst wanneer de kans op het observeren van die data het hoogst is.

In beide voorbeelden gaf MLE ons de parameterwaarde die onze geobserveerde data het meest waarschijnlijk maakte onder het gekozen model. Uiteraard kan MLE ook meerdere parameterwaarden opleveren, al is de berekening dan iets langer!

MLE coderen

Nu we de onderliggende structuur van MLE begrijpen, kijken we hoe je dit in Python codeert. We coderen de oplossing van het vorige (lengte-)voorbeeld. 

# Importing libraries 
import numpy as np # used for handling arrays and mathematical operations.
from scipy.optimize import minimize # function that minimizes another function

# This is our sample data 
data = np.array([160, 165, 170, 175, 180])

# This was the variance we had assumed before
sigma_squared = 25

# Negative Log-Likelihood function
def negative_log_likelihood(mu):
    n = len(data) # Number of data points
    return 0.5 * n * np.log(2 * np.pi * sigma_squared) + \
           np.sum((data - mu)**2) / (2 * sigma_squared) # The NLL is for the Univariate Gaussian Distribution

# Optimizing the NLL
result = minimize(negative_log_likelihood, x0=170)  # initial guess

# Our final estimated mean
estimated_mu = result.x[0]
print(f"MLE estimate of mu: {estimated_mu}")

Computationele strategieën en algoritmen

Merk op dat we in het vorige codevoorbeeld een functie negative_log_likelihood() hebben gemaakt met de kernlogica voor het berekenen van de MLE van een univariate Gaussische verdeling

Enerzijds kun je stellen dat we deze vergelijking uiteindelijk hardcodeerden en scipy.optimize gebruikten om die functie te minimaliseren. Dit is uiteraard een prima oplossing, aangezien de Gaussische verdeling een gesloten vormoplossing heeft. 

Laten we andere methoden verkennen om oplossingen voor MLE te berekenen.

Gesloten vormoplossingen en wanneer ze gelden

Zoals we hierboven bespraken, kunnen we in gelukkige gevallen de MLE-vergelijkingen analytisch oplossen, wat betekent dat we een exacte formule voor de parameterschattingen kunnen afleiden. Dit noemen we gesloten vormoplossingen; ze zijn vaak eenvoudig, intuïtief en snel te programmeren en te berekenen.

Een belangrijke vraag is nu: wanneer bestaan gesloten vormoplossingen?

  1. Wanneer de log-likelihood-functie differentieerbaar, concaa f en algebraïsch hanteerbaar is.
  2. Wanneer het model eenvoudig genoeg is; typisch met één of twee parameters en zonder verborgen variabelen.

Verdeling

Geschatte parameter

Gesloten-vorm MLE-oplossing

Bernoulli

p

\hat{p} = #aantal successen/n

Binomiaal

p

\hat{p} = x/n

Poisson

λ

λ = 1/n*Σx_i

Gaussisch/Normaal

μ

μ = 1/n*Σx_i

Numerieke optimalisatietechnieken

Voor complexere modellen bestaan analytische oplossingen niet of zijn ze te ingewikkeld om af te leiden. In die gevallen gebruiken we numerieke optimalisatiemethoden — iteratieve algoritmen die zoeken naar de parameters die de log-likelihood maximaliseren. Kort uitgelegd:

  1. Newton-Raphson-methode: Deze methode gebruikt zowel:
  • De eerste afgeleide (gradiënt) om de helling te bepalen, en
  • De tweede afgeleide (Hessiaan) om de kromming te schatten en de stapgrootte dienovereenkomstig aan te passen.
  • De update-regel is als volgt:
  • Het belangrijkste voordeel is de snelle convergentie nabij het optimum.
  • Maar het vereist het berekenen van tweede afgeleiden, wat instabiel of kostbaar kan zijn in hoge dimensies.
  1. Quasi-Newton-methoden (bijv. BFGS):
  • Benaderen de Hessiaan met alleen eerste-orde-afgeleiden
  • Gebruikt in populaire libraries zoals scipy.optimize.minimize in Python (met BFGS als standaard).
  • Meer numeriek stabiel en breder toepasbaar dan Newton-Raphson.
  1. Expectation-Maximization (EM)-algoritme:
  • Gespecialiseerde optimalisatietechniek voor data met latente (verborgen) variabelen — waarden die we niet direct observeren maar die de data beïnvloeden.
  • Het algoritme heeft twee stappen:
    • E-stap (Expectation): Bereken de verwachte waarde van de log-likelihood met de huidige parameterschattingen en geobserveerde data.
    • M-stap (Maximization): Maximaliseer deze verwachte log-likelihood om de parameterschattingen te updaten.

Eigenschappen van MLE

Uit onze voorbeelden en berekeningen blijkt duidelijk dat MLE nuttig is. Formeel heeft MLE de volgende eigenschappen: 

  1. Consistentie: Als de steekproefomvang toeneemt, convergeert de MLE naar de werkelijke waarde van de parameter.
  2. Asymptotische normaliteit: Voor grote steekproeven wordt de verdeling van de MLE ongeveer normaal (klokvormig) rond de werkelijke parameterwaarde. Dit vormt de basis voor het bouwen van betrouwbaarheidsintervallen.
  3. Efficiëntie: Onder alle ongekleurde schatters bereikt de MLE de laagst mogelijke variantie (bereikt de Cramér-Rao ondergrens, ten minste asymptotisch).
  4. Invariantie: Als θ̂ de MLE is voor θ, dan is voor elke functie g, g(θ̂) de MLE voor g(θ). Met andere woorden: MLE’s blijven behouden onder transformaties.

Er zijn echter scenario’s waarin MLE niet de beste optie is:

  1. Kleine steekproeven: MLE kan biased zijn wanneer de steekproef klein is. Zo onderschat de MLE voor de variantie (σ̂²) vaak de werkelijke variantie (σ²).
  2. Robuustheid: MLE is gevoelig voor uitschieters en modelmisspecificatie. Alternatieven zoals M-schatters kunnen robuustere schattingen geven.
  3. Bayesiaans alternatief: Maximum a posteriori (MAP) combineert prior-informatie met de likelihood, biedt een Bayesiaans perspectief en soms stabielere schattingen, vooral bij beperkte data.

Toepassingen binnen statistische modellering

In deze sectie verkennen we waar MLE daadwerkelijk gebruikt wordt in Machine Learning en AI.

Regressie en classificatie

Een van de belangrijkste plekken waar MLE verschijnt is bij logistische regressie. Hierbij schatten we de kans dat een uitkomst tot een bepaalde klasse behoort (zoals klantverloop) en doen we dit door parameters te fitten die de likelihood maximaliseren van de geobserveerde uitkomsten.

Zelfs bij lineaire regressie, als we normaal verdeelde fouten aannemen, blijkt de kleinste-kwadratenoplossing ook de MLE te zijn. 

Hypothesetoetsing en modelselectie

MLE kan ook worden gebruikt om modellen te vergelijken. 

Zo helpt de likelihood ratio test (LRT) ons te controleren of het toevoegen van extra variabelen aan een model de prestaties significant verbetert. Dit gebeurt door de likelihoods van twee modellen te vergelijken: één eenvoudiger (nulmodel) en één complexer (alternatief).

We hebben ook het Akaike Information Criterion (AIC), dat complexiteit afstraft om overfitting te vermijden. Deze tools worden veel gebruikt in bijvoorbeeld finance, geneeskunde en marketing.

Als je geïnteresseerd bent in het verder verkennen van manieren om verschillen tussen kansverdelingen te meten, voorbij alleen likelihood, bekijk dan mijn tutorial: KL-divergentie uitgelegd.

Beperkingen en alternatieven voor MLE

Hoewel MLE krachtig is, heeft het ook nadelen. Laten we kort doornemen waar het moeite mee heeft en wat je in plaats daarvan kunt gebruiken.

Belangrijke beperkingen van MLE

  • Gevoelig voor modelmisspecificatie: Als ons model verkeerd is (bijv. een normale verdeling gebruiken voor scheve data), geeft MLE misleidende resultaten.
  • Uitschieter-gevoeligheid: Een paar slechte datapunten kunnen je schattingen volledig verstoren.
  • Rekenlast: Voor grote modellen, zeker met veel parameters of beperkingen, kan het optimaliseren van de likelihood traag of instabiel zijn.
  • Meerdere oplossingen: Soms heeft het likelihood-oppervlak meerdere pieken (lokale maxima), wat het vinden van de beste oplossing lastig maakt.

Alternatieven voor maximum likelihood-schatting

Wanneer MLE minder goed werkt, zijn dit opties:

  • MAP (Maximum a Posteriori): Lijkt op MLE, maar voegt een prior toe. Dit kan schattingen stabiliseren bij beperkte data.
  • Momentenmethode: Matcht steekproefmomenten (zoals gemiddelde of variantie) met theoretische. Minder precies dan MLE maar heel eenvoudig te berekenen.
  • Kleinste kwadraten: In gevallen zoals lineaire regressie met Gaussische fouten, vallen kleinste kwadraten en MLE samen. Maar kleinste kwadraten kan nuttig blijven wanneer MLE te complex is.

Verschillende methoden werken beter in verschillende situaties. MLE is niet altijd het antwoord, maar vaak wel een uitstekend startpunt.

Conclusie

Maximum Likelihood Estimation is een van de meest natuurlijke en wijdverspreide methoden voor parameterschatting. Het draait om het zo waarschijnlijk mogelijk maken van de geobserveerde data en is daardoor in veel scenario’s inzetbaar, zoals muntworpen, Gaussische lengtes, enz. 

MLE past zich aan over modellen heen en schaalt met data, en biedt zowel wiskundige elegantie als praktische kracht. Hoewel het zijn eigen nadelen heeft, vooral bij kleine of rommelige datasets, blijft het een fundamenteel hulpmiddel bij het leren van Machine Learning en AI

Als je bezig bent met je machine-learningreis, bekijk dan zeker ons Machine Learning Scientist in Python-careertrack, waarin supervised, unsupervised en deep learning aan bod komen. 

Klaar om je begrip van Maximum Likelihood Estimation te verdiepen met praktische oefeningen? Deze resources helpen je je kennis toe te passen en hands-on ervaring op te doen:

Maximum Likelihood Estimation FAQ's

Hoe verschilt likelihood van kans?

Kans begint met een parameter en vraagt: “Welke data mag ik verwachten?” Likelihood begint met de data en vraagt: “Welke parameter maakt deze data het meest geloofwaardig?”

Waarom nemen we de log van de likelihood?

De log zet een lange productterm om in een eenvoudige som, waardoor de wiskunde overzichtelijker wordt terwijl het maximum op dezelfde plek blijft.

Vindt MLE altijd de echte parameter?

Met veel schone, onafhankelijke data convergeert het naar de waarheid. Met kleine of rommelige steekproeven kan het afwijken of licht biased blijven.

Wat als mijn datapunten niet onafhankelijk zijn?

Standaard MLE veronderstelt onafhankelijkheid, dus voor tijdreeks- of ruimtelijke data heb je een ander model nodig dat die verbanden vastlegt.

Hoe is MLE gekoppeld aan kleinste kwadraten?

Wanneer regressieresiduen verondersteld worden normaal verdeeld te zijn, is het minimaliseren van de kwadratische fouten (kleinste kwadraten) gelijkwaardig aan het maximaliseren van de likelihood (MLE).


Vaibhav Mehra's photo
Author
Vaibhav Mehra
LinkedIn
Onderwerpen

Topcursussen bij DataCamp

Leerpad

Basisprincipes van machine learning in Python

16 Hr
Leer de kunst van machine learning en word een expert in voorspellingen, patroonherkenning en de basis van deep learning en reinforcement learning.
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