Methodologie
Magistra Bijwerkingen Voorspeller™ — Versie 5.41 (dual-track)
Laatst bijgewerkt: september 2026 | Open voor peer review
Uitnodiging aan onderzoekers
Deze methodologie is bewust transparant. Wij nodigen biostatistici, epidemiologen, klinisch onderzoekers en ML-onderzoekers uit om onze aanpak te bekritiseren, verbeteringen voor te stellen, of samen te werken. Alle feedback wordt publiek erkend in toekomstige versies.
Geef feedback ↓1. Dual-track architectuur
In plaats van klinische en gemeenschapsdata te mengen in één getal (wat de bewijshiërarchie verbergt), berekenen wij twee parallelle schattingen per bijwerking:
Klinisch
Alleen gepubliceerde klinische studies + regelgevende rapporten. Conservatief. Alle modifiers uit peer-reviewed bronnen.
Echte wereld
Meldingsfrequentie uit posts op de communityplatforms zelf: van alle afzonderlijke community-meldingen in ons corpus, welk aandeel noemt deze bijwerking. Resultaten van nieuwsaggregators tellen niet mee — de live platformlijst staat op /nl/data en in /api/data. Geen gemeten incidentie — één anekdote is geen percentage.
De twee tracks meten verschillende dingen en worden bewust niet vergeleken als één schatting: klinisch is een incidentiepercentage, echte-wereld is een meldingsfrequentie (hoe vaak iets ter sprake komt, niet hoe vaak het gebeurt). Een hoge meldingsfrequentie bij een lage klinische schatting is een signaal dat patiënten actief over iets praten — nuttig als aanwijzing, geen bewijs van een hogere werkelijke incidentie. (Herzien 2026-08-14: eerdere versies van deze pagina beschreven de echte-wereld track als een incidentieschatting die zou moeten 'convergeren' met klinische data — dat berustte op het middelen van zelfgerapporteerde percentages uit forumposts, waaronder één X/Twitter-post die 76% haaruitval claimde en een 2-bronnen gemiddelde naar 39% trok.)
2. Dataverzameling
Dagelijks verzamelen 17 scrapers data uit vier broncategorieën. Claude Haiku extraheert gestructureerde datapunten met een betrouwbaarheidsniveau (high/medium/low):
- • Klinisch: PubMed, ClinicalTrials.gov, Cochrane (PubMed-geïndexeerd), NICE-richtlijnen, preprints
- • Regelgevend: FDA FAERS (directe API — wordt dagelijks bevraagd, maar levert sinds 2026-08-13 geen nieuwe rijen: zie de opmerking hieronder), EMA (directe pagina's ema.europa.eu)
- • Gebruikersrapporten: Reddit (26 subreddits), Trustpilot, Drugs.com, Quora
- • Nieuws: Google News-zoekresultaten (incl. berichtgeving over WHO/MHRA/EMA-veiligheidsacties — géén rechtstreekse feed van die instanties)
Elk datapunt behoudt zijn sourceType voor filtering in de twee tracks. Deduplicatie gebeurt op de samengestelde sleutel (sourceUrl + sideEffect), voor ClinicalTrials.gov-registerrijen uitgebreid met drie extra onderscheidende velden uit de rij zelf: het armlabel, de MedDRA-voorkeursterm van het register en welke van de twee bijwerkingentabellen (SERIOUS of OTHER) de rij uit komt. Alle andere bronnen leveren de niet-uitgebreide sleutel op — zie de preprint, §2.2. Extractie is conservatief: alleen expliciet vermelde frequenties, geen inferentie.
Een geconfigureerde scraper is niet hetzelfde als een producerende bron, en een geslaagde query is niet hetzelfde als een opgeslagen rij: Reddit wordt sinds 2026-05-28 geblokkeerd met een HTTP 403, en de FDA FAERS-query slaagt elke dag maar levert sinds 2026-08-13 niets nieuws op, omdat openFDA voor elke bijwerkingenterm van een middel dezelfde zoek-URL teruggeeft en onze dedupe-sleutel die URL plus de bijwerking is — een al opgeslagen paar wordt dus nooit opnieuw gelezen. Actuele aantallen per bron, met datum van het laatste datapunt en een stale-markering, staan in /api/data?q=overview.
3. Statistische aanpak
Voor de klinische track:
- Filter datapunten op patiëntprofiel: geslacht en dosisniveau, waarbij records die deze gegevens niet vermelden behouden blijven (de engine kan ook op etniciteit en beweging filteren, maar de bijwerkingenvoorspeller vraagt daar niet naar)
- Gewogen gemiddelde (gewicht = steekproefgrootte × extractiebetrouwbaarheid, gecapt op 1 voor systematische reviews/meta-analyses — hun steekproefgrootte beschrijft deelnemers over vele studies samen, niet een cohort voor de ene vermelde ratio; toekomstig werk: inverse-variantie meta-analytische weging per studiekwaliteit)
- Winsorisatie bij 5e/95e percentiel indien n > 10 (grenzen expliciet gelogd)
- Dosisschaling indien data geen dosisspecificiteit heeft
- Log-odds modifier toepassing (gelimiteerd op totale shift van 2.5 log-odds)
- Random-effects betrouwbaarheidsinterval (vereenvoudigde, ongewogen τ² — geïnspireerd door DerSimonian-Laird, niet inverse-variantie gewogen)
De echte-wereld-track wordt niet zo berekend: de meldingsfrequentie telt alle community-meldingen in het corpus, met een Wilson-interval, en wordt niet op profiel gefilterd.
4. Zelf-evoluerend model
Dagelijks draait een statistische analyse die empirische odds ratios berekent voor elke dimensie × bijwerking met voldoende citeerbaar bewijs (≥10 in aanmerking komende cijfers). 14 van de 15 bijwerkingen halen die drempel en worden dagelijks gefit — maar elke fit is degeneratief: de cijfers waarop ze rusten bevatten geen enkele demografische covariaat (geslacht niet gespecificeerd, geen leeftijdsband), dus elke gefitte coëfficiënt komt uit op een odds ratio van 1,0 en kan geen modifier in productie veranderen. Elke modifier in productie is daarom nog steeds de handmatig gecodeerde seedwaarde van 12-04-2026, en er is nog nooit een automatische bijwerking toegepast of gevlagd (de modelconfiguratie staat inmiddels op v7, uitsluitend handmatige correcties). Waarborgen voor wanneer het bewijs verandert:
- • FDR-correctie (Benjamini-Hochberg) over alle hypothesetests
- • Auto-update alleen bij n ≥ 30, gecorrigeerde p < 0.01, en verandering < 0.3 OR
- • Grotere veranderingen worden gevlagd voor menselijke review
- • Nieuwe parameters (etniciteit, BMI, dieet) worden 'gepromoveerd' wanneer ze significant zijn voor 2+ bijwerkingen
- • Max 5 auto-updates per dag; alle wijzigingen worden gelogd met provenance
- • Elke toegepaste of gevlagde wijziging archiveert de vorige configuratieversie (geen bewaartermijn) — nog nooit gebeurd, er is nog geen automatische wijziging toegepast of gevlagd
5. Eerlijke beperkingen
Wij publiceren onze beperkingen omdat verborgen zwaktes gevaarlijker zijn dan zichtbare:
- Bewijsbasis (niet de corpusgrootte): Het corpus telt 3.669 datapunten over de 15 gepubliceerde bijwerkingen, maar slechts 2612 daarvan vermelden een percentage, en na onze geschiktheidsregels blijven 1961 percentages uit 89 afzonderlijke studies over die een gepubliceerde schatting mogen dragen. Uitgesloten: 150 seed unverified, 66 spontaneous report share, 14 aggregator result, 421 placebo comparator arm. Percentages worden samengevoegd tot één vermelding per bron per bijwerking (614 vermeldingen in totaal); het sitebrede aantal telt sinds 2026-09-08 per studie-URL, zodat één register-record of paper één keer telt, hoeveel bijwerkingen het ook rapporteert. Veel bijwerkingen rusten daardoor op één bron — dat staat per schatting vermeld. (Correctie 2026-08-31: de seeding van april 2026 bleek ook rijen te hebben geschreven die onze eigen statische literatuurtabel herhalen onder échte studie-URL's die nooit door extractie zijn gelezen; een URL-controle vangt zulke rijen niet. Alle 150 seed-rijen zijn nu gelabeld en uitgesloten — de geschikte basis halveerde daardoor ruwweg, en vijf bijwerkingen vielen terug op een gelabelde literatuurwaarde. Eerdere basiscijfers moeten niet meer geciteerd worden.)
- FAERS is geen incidentie: FAERS-aandelen worden apart gerapporteerd en nooit in een incidentieschatting gemiddeld. Let op wat de noemer is: onze collector telt de 30 meest gemelde reactietermen van een geneesmiddel op en deelt de telling van elke term door die som, dus het gepubliceerde aandeel is een aandeel van term-vermeldingen — niet van meldingen en niet van patienten (een melding die drie reacties noemt, telt onder alle drie mee, en elke term buiten de top 30 zit noch in de teller noch in de noemer).
- Reviews tellen niet als extra studies: Een systematische review of netwerk-meta-analyse die de percentages van reeds gepoolde trials herhaalt, mag geen eigen pooling-gewicht dragen — anders zou de reeds-gepoolde n van de review (duizenden tot tienduizenden deelnemers over vele trials) zwaarder wegen dan de individuele registeropnames waaruit ze put. Elke bron waarvan de titel of het abstract zichzelf als systematische review of (netwerk-)meta-analyse beschrijft, krijgt daarom een pooling-gewicht van 1, hetzelfde vloerniveau als één community-post. Gecontroleerd op 2026-09-18: alle bronnen die deze regel raakt, zijn zelf-beschreven reviews (0 primaire trials ten onrechte gecapt); dit is een tekst-detectie, geen garantie, dus het blijft een erkend restrisico.
- Populaties en telvensters lopen door elkaar: Een gepoolde klinische rate combineert trials van elke indicatie onder de trials die wij poolen — obesitas, diabetes type 2, cardiovasculaire uitkomsten en ook diabetes type 1 naast insuline — en elke trial telt bijwerkingen minstens één keer binnen zijn eigen venster, dat loopt van dagen tot jaren. Het venster verandert het getal: korte fase-1-studies leveren veel rijen maar weinig gewicht, en het meeste gewicht komt van trials van een jaar of langer. Lees een gepoolde rate daarom als een aandeel over ruwweg één tot enkele jaren. De indicatie- en venstermix achter elke schatting staat per bijwerking in /api/data (indicationMix, windowMix); wij herwegen op geen van beide, omdat daar geen bewijsbasis voor bestaat. Let op het gewicht, niet het aantal rijen: zeven cardiovasculaire-uitkomstentrials (deelnemers met diabetes type 2 en bestaande hart- en vaatziekte of hoog cardiovasculair risico, of bij SELECT bestaande hart- en vaatziekte met overgewicht of obesitas, zonder diabetes) dragen op 2 oktober 2026 63% van het gepoolde gewicht voor misselijkheid, obesitastrials 15%.
- Onder de 5% ontbreken trials: De meeste registertrials die wij poolen vermelden een niet-ernstige bijwerking alleen als die in minstens één arm boven 5% uitkwam. Een trial waarin een term in elke arm op of onder 5% bleef, levert er geen rij voor. Voor bijwerkingen met een gepoolde rate rond of onder 5% kan de basis dus vooral alleen trials bevatten waarin de term werd vermeld: het aantal trials is een ondergrens voor hoeveel trials de bijwerking zagen, en de gepoolde rate ligt waarschijnlijk hoger dan over alle trials. Tabellen met ernstige bijwerkingen hebben geen drempel. Rijen per drempel staan per bijwerking in /api/data (thresholdMix).
- Demografische gaten: Vrouwelijke bias (81% van de 151 datapunten met een gespecificeerd geslacht), minimale etnische diversiteit in bronnen. Slechts 151 van 3.884 datapunten vermelden een geslacht.
- Modifierbronnen: Alle modifiers die nu worden toegepast zijn handmatig gecodeerd bij de seed van 2026-04-12 en voor geen enkele is een citatie vastgelegd — behandel elke odds ratio dus als een expert-gecodeerde prior, niet als een gefundeerde schatting. De voorspeller toont nu bij elke aangepaste waarde welke modifiers zijn toegepast en waar ze vandaan komen. Nul zijn tot nu toe vervangen door empirisch geschatte waarden, omdat geen enkele bijwerking de drempel van 10 citeerbare percentages haalt. Doelarchitectuur: inverse-variantie meta-analytisch raamwerk met formele studiekwaliteitsbeoordeling (Cochrane Risk of Bias).
- Geen interactietermen: Modifiers worden onafhankelijk toegepast. Interacties (bijv. geslacht × leeftijd) worden niet gemodelleerd — wij cappen cumulatieve log-odds shifts om stapelbias te beperken.
- Kalibratietests: Nog niet formeel gevalideerd tegen onafhankelijke uitkomstdata. Gepland zodra n ≥ 500 per bijwerking.
- LLM-extractie: Imperfect. Goud-standaard handmatige auditing is gepland op een steekproef van 50 bronnen per bijwerking.
- Journey-voorspeller: Het gewichtstrajectmodel neemt zijn totale verlies sinds 2026-09-12 uit de ClinicalTrials.gov-arm die hoort bij het gekozen molecuul, de dosering en de diabetesstatus (semaglutide: STEP; tirzepatide: NCT04184622/NCT04657003; liraglutide: NCT01272219/NCT01272232, lagere doseringen geschaald via NCT00422058); de vorm van de curve en alle modifiers voor leeftijd, geslacht, inspanning en BMI blijven voor elk molecuul op semaglutide-STEP gekalibreerd. De spierbehoud- en na-stoppen-modellen gebruiken volledig STEP-trial constanten met expert-gecodeerde modifiers. Geen van deze drie is empirisch gevalideerd.
- Niet causaal: Dit zijn populatiegemiddelde conditionele risico's, geen individuele causale voorspellingen.
6. Publicatie-roadmap
- • Fase 1 (huidig): dual-track framework, open methodologie, community feedback
- • Fase 2: n ≥ 100 per bijwerking, formele kalibratietesting
- • Fase 3: n ≥ 500, externe validatie op onafhankelijke dataset
- • Fase 4: pre-registratie bij OSF.io, ingediend bij peer-reviewed tijdschrift (doel: Nature Medicine)
Wij zijn een kleine team en onze methodologie heeft onvermijdelijk zwaktes. Als u iets ziet dat verkeerd of verbeterbaar is, laat het ons weten.
Feedback van onderzoekers
Als u een biostatisticus, epidemioloog, klinisch onderzoeker of ML-wetenschapper bent: bekritiseer onze aanpak. Wij erkennen alle bijdragers in toekomstige versies en houden een openbaar wijzigingenlog bij.
Open reviewverzoek, met de vijf vragen die we het liefst beantwoord zien: GitHub-issue #1 →
Een bron indienen
Kent u een gepubliceerd trialresultaat of artikel dat wij missen? Geef de bron en de getallen voor één arm en één bijwerking. Wij controleren het tegen het gepubliceerde record voordat het gebruikt kan worden.
Open source op GitHub
De volledige methodologie, broncode en preprint zijn gepubliceerd onder Apache 2.0. Bekijk, kloon of dien een pull request in.
github.com/saurabhgoyal75/magistra-predictor →Citeer deze methodologie
Deze pagina is de canonieke, doorlopend bijgewerkte versie van de methodologie. Een gearchiveerde versie staat op Zenodo met DOI 10.5281/zenodo.23138788 (alle versies; v5.41 is 10.5281/zenodo.23138789).
Werkt u met het corpus zelf? De gedateerde momentopname achter deze schattingen — de volledige dataset-CSV met een PDF-brief en methodologiebijlage — is te koop als eenmalige aankoop, naast de gratis publieke API. Data & API.
Magistra Side Effects Predictor™ — Statistische indicator, geen medisch advies.