Methodologie¶
Deze sectie legt per model uit hoe het werkt, waarom deze keuze is gemaakt en wanneer je de output kritisch moet beoordelen.
Verhouding tot de Radboud-implementatie
De methodologie op deze pagina's komt voort uit het model dat oorspronkelijk bij Radboud is ontwikkeld. Die productie-implementatie draait intern en is niet publiek toegankelijk; deze CEDA-versie is de publieke, generieke variant.
Concreet betekent dat:
- Modelkeuzes (features, parameters, ensemble-gewichten) zijn dezelfde als die in de Radboud-implementatie en worden hier per pagina onderbouwd.
- Radboud-specifieke configuratie (faculteitsnamen, programma-lijsten) is uit de gedeelde code gehaald en moet door elke instelling zelf worden ingevuld via
configuration.json. - Waar de aanpak afwijkt van een rechttoe rechtaan implementatie — bijvoorbeeld de vaste week-38 override voor 2021 — wordt dat expliciet vermeld.
Modellen in het ensemble¶
| Model | Pagina | Rol in de pipeline |
|---|---|---|
| Individueel model (classifier + SARIMA) | Individueel model | End-to-end spoor: kans per student → geaggregeerde curve → extrapolatie naar week 38 |
| SARIMA / ETS / Theta / AutoARIMA | Tijdreeksmodellen | Tijdreeksextrapolatie op basis van historische aanmeldpatronen |
| XGBoost classifier | XGBoost | Kans per individuele student dat deze zich inschrijft |
| XGBoost / Ridge / Random Forest | Regressiemodellen | Vertaling van vooraanmelders naar verwachte inschrijvingen |
| Ratio-model | Ratio-model | Eenvoudige historische ratio als referentiemodel |
| Ensemble | Ensemble | Gewogen combinatie van bovenstaande modellen |
| Benchmarks | Benchmarks | Vergelijking van alternatieve modellen |
Het cumulatieve spoor is configureerbaar: via model_config.cumulative_timeseries en model_config.cumulative_regressor in de configuratie kies je welk tijdreeksmodel en welk regressiemodel wordt gebruikt.
Datasporen¶
flowchart LR
SL["Studielink\ntelbestanden"] --> CUM["Cumulatief spoor\n(-d c)"]
SIS["Osiris / Usis\nper-student"] --> IND["Individueel spoor\n(-d i)"]
CUM & IND --> ENS["Ensemble\n(-d b)"]
De twee sporen zijn bewust onafhankelijk van elkaar ontworpen zodat instellingen die geen toegang hebben tot individuele aanmelddata toch een voorspelling kunnen maken via het cumulatieve spoor. Een end-to-end uitleg van het individueel spoor staat op Individueel model.
Welk model draait per modus?¶
| Modus | SARIMA | XGBoost regr. | Ratio | Ensemble-samenvoeging |
|---|---|---|---|---|
-d c |
✅ | ✅ | ✅ | ❌ (twee losse kolommen) |
-d i |
✅ | ✅ (classifier) | ❌ | ❌ |
-d b |
✅ | ✅ | ✅ | ✅ |
Alleen in -d b worden SARIMA_individual en SARIMA_cumulative samengevoegd tot één Ensemble_prediction; in -d c blijven het twee losse outputkolommen en in -d i is er maar één spoor en dus niets om te combineren. Zie Ensemble voor de gewichtenlogica.
Cumulatief spoor: wekelijkse telbestanden → SARIMA-extrapolatie → XGBoost regressor → voorspelde studenten (demodata)
Individueel spoor: per-student records → XGBoost classifier → ΣP = verwacht cohort (demodata)
Aannames en beperkingen¶
- Het model extrapoleert op basis van historische patronen. Structurele breuken (bijv. nieuwe opleiding, COVID-jaar) worden niet automatisch gedetecteerd.
- Ensemble-gewichten worden bepaald op historische fouten; een model dat in het verleden goed presteerde krijgt meer gewicht, ook al is de situatie veranderd.
- De SARIMA-parameters zijn per opleiding gefixed. Bij opleidingen met weinig historische data is de modelfit minder betrouwbaar.
Dashboard-visualisatie¶
Na het opslaan van de resultaten genereert de pipeline een interactief Plotly-dashboard per modus. Het dashboard biedt grafieken per opleiding (voorspellingen, foutmaten, feature importance) en wordt opgeslagen als zelfstandig HTML-bestand onder data/output/visualisaties/. Zie Output begrijpen voor details.