Bladwijzers    
Kans A en B    
nPr en nCr    
Ronde tafel    
Met herhaling    
Gemiddelde    
SD berekenen    
Z-score    
P-waarde    
Percentage    
Verschil in %    
Verhoudingen    
Korting    
Btw berekenen    
Winstmarge    
Snelheid    
Dichtheid    
Molariteit    
Molaire massa    
Wet van Ohm    
Schoenmaat    
Staartdeling    
Kgv berekenen    
Ggd berekenen    
Priemfactoren    
Diofantisch    
Gemengd getal    
Afronden    
Abc-formule    
Logaritme    
Poolvorm    
De Moivre    
Rc berekenen    
Evenredigheid    
3D-afstand    
Punt tot lijn    
Afstand GPS    
Kegelsneden    
Kruisproduct    
Determinant    
Sin cos tan    
Opp. driehoek    
Pythagoras    
Cirkelsector    
Omtrekshoek    
Inhoud kubus    
Inhoud balk    
Opp. cilinder    
Inhoud bol    
Inhoud bolkap    
Opp. bolkap    
Inhoud kegel    
Inhoud buis    
Opp. capsule    
Dagen tellen    
Uren vanaf nu    
Tijd optellen    
Tijdsverschil    
Eindwaarde    
ROI berekenen    
IRR berekenen    
Bbp berekenen    
CTR berekenen    
LTV berekenen    
CAC berekenen    
Churn rate    
A/B-test    
SEO-verkeer    
BMI berekenen    
BMR berekenen    
Vetpercentage    
Eiwit per dag    
Koolhydraten    
Vet berekenen    
Golfhandicap    
1RM berekenen    
Hitte-index    
Windchill    
Dauwpunt    
Talstelsels    
Downloadtijd    
Stroomkosten    
kWh naar euro    
Airco kosten    
Kosten kachel    
Gas of stroom    
Besparing led    
Maandbudget    
Laadkosten    
EV vs benzine    
Bandenmaat    
Thuisbatterij    
Aantal tegels    
Gevelopervlak    
Mortel mengen    
Zaagplan hout    
Vloer op rol    
Gordijnmaat    
Graszoden    
Betonblokken    
Bakstenen    
Vlonder    
Hellingbaan    
Voorboren    
Raam opmeten    
Ophanghoogte    
Afschot buis    
Kit berekenen    
Warmteverlies    
Verhuisdozen    
Opbergruimte    
   Toevoegen
Kansrekening en willekeurige getallen: rekenmachines
Kans A en B
Kans A en B
Kans terugrekenen
Kans terugrekenen
Herhaalde kans
Herhaalde kans
Stelling van Bayes
Stelling van Bayes
Verwachtingswaarde
Verwachtingswaarde
Binomiale kans
Binomiale kans
nPr en nCr
nPr en nCr
Ronde tafel
Ronde tafel
Met herhaling
Met herhaling
Willekeurig getal
Willekeurig getal
Gemiddelden en statistiek: rekenmachines
Gemiddelde
Gemiddelde
Modus en mediaan
Modus en mediaan
SD berekenen
SD berekenen
Kwartielen & IQR
Kwartielen & IQR
Frequentietabel
Frequentietabel
Correlatie (r)
Correlatie (r)
Normale verdeling
Normale verdeling
Z-score
Z-score
Interval (95%)
Interval (95%)
Steekproefgrootte
Steekproefgrootte
Vangst-hervangst
Vangst-hervangst
P-waarde
P-waarde
Procenten en verhoudingen: rekenmachines
Percentage
Percentage
Verandering in %
Verandering in %
Verschil in %
Verschil in %
Afwijking in %
Afwijking in %
Verhoudingen
Verhoudingen
Korting
Korting
Btw berekenen
Btw berekenen
Winstmarge
Winstmarge
Snelheid: rekenmachines
Snelheid
Snelheid
Dichtheid en concentratie: rekenmachines
Dichtheid
Dichtheid
Molariteit
Molariteit
Molaire massa
Molaire massa
Natuurkunde en elektriciteit: rekenmachines
Wet van Ohm
Wet van Ohm
Watt naar ampère
Watt naar ampère
Weerstand kleur
Weerstand kleur
Spanningsverlies
Spanningsverlies
Eenheden omrekenen: rekenmachines
Gewicht omrekenen
Gewicht omrekenen
Schoenmaat
Schoenmaat
Gehele getallen: rekenmachines
Staartdeling
Staartdeling
Kgv berekenen
Kgv berekenen
Ggd berekenen
Ggd berekenen
Negatieve getallen
Negatieve getallen
Priemfactoren
Priemfactoren
Diofantisch
Diofantisch
Modulo rekenen
Modulo rekenen
Delers berekenen
Delers berekenen
Romeinse cijfers
Romeinse cijfers
Breuken, decimalen en afronden: rekenmachines
Breuken rekenen
Breuken rekenen
Gemengd getal
Gemengd getal
Vereenvoudigen
Vereenvoudigen
Breuk omzetten
Breuk omzetten
Decimaal naar breuk
Decimaal naar breuk
Afronden
Afronden
Vergelijkingen en ongelijkheden: rekenmachines
Vergelijking (x)
Vergelijking (x)
Stelsel oplossen
Stelsel oplossen
Abc-formule
Abc-formule
Absolute waarde
Absolute waarde
Ongelijkheid x²
Ongelijkheid x²
Veeltermen: rekenmachines
Binomium Newton
Binomium Newton
Wortels: rekenmachines
Wortel herleiden
Wortel herleiden
Wortel berekenen
Wortel berekenen
Machten en logaritmen: rekenmachines
Machten berekenen
Machten berekenen
Logaritme
Logaritme
Aantal cijfers
Aantal cijfers
Wetensch. notatie
Wetensch. notatie
Rekenen ×10ⁿ
Rekenen ×10ⁿ
Halveringstijd
Halveringstijd
Complexe getallen: rekenmachines
Complexe getal
Complexe getal
Poolvorm
Poolvorm
De Moivre
De Moivre
Functies en grafieken: rekenmachines
Rc berekenen
Rc berekenen
Lineaire functie
Lineaire functie
Evenredigheid
Evenredigheid
y = ax² berekenen
y = ax² berekenen
Afstandsformule
Afstandsformule
3D-afstand
3D-afstand
Verdelingspunt
Verdelingspunt
Punt tot lijn
Punt tot lijn
Afstand GPS
Afstand GPS
Kwadraat afsplitsen
Kwadraat afsplitsen
Cirkelvergelijking
Cirkelvergelijking
Kegelsneden
Kegelsneden
Poolcoördinaten
Poolcoördinaten
Rijen: rekenmachines
Rekenkundige rij
Rekenkundige rij
Meetkundige rij
Meetkundige rij
Rij van Fibonacci
Rij van Fibonacci
Recursieve rij
Recursieve rij
Vectoren: rekenmachines
Vectoren berekenen
Vectoren berekenen
Kruisproduct
Kruisproduct
Matrices: rekenmachines
Matrix berekenen
Matrix berekenen
Determinant
Determinant
Inverse matrix
Inverse matrix
Vlakke meetkunde: rekenmachines
Sin cos tan
Sin cos tan
Graden ⇔ radialen
Graden ⇔ radialen
a sin θ + b cos θ
a sin θ + b cos θ
Driehoek berekenen
Driehoek berekenen
Opp. driehoek
Opp. driehoek
Rechthoekige driehoek
Rechthoekige driehoek
Pythagoras
Pythagoras
Hoeken veelhoek
Hoeken veelhoek
Gelijkvormigheid
Gelijkvormigheid
Evenwijdige lijnen
Evenwijdige lijnen
Oppervlakte rechthoek
Oppervlakte rechthoek
Parallellogram
Parallellogram
Oppervlakte trapezium
Oppervlakte trapezium
Cirkel berekenen
Cirkel berekenen
Cirkelsector
Cirkelsector
Omtrekshoek
Omtrekshoek
Oppervlakte ellips
Oppervlakte ellips
Ruimtemeetkunde: rekenmachines
Inhoud kubus
Inhoud kubus
Oppervlakte kubus
Oppervlakte kubus
Inhoud balk
Inhoud balk
Oppervlakte balk
Oppervlakte balk
Inhoud cilinder
Inhoud cilinder
Opp. cilinder
Opp. cilinder
Inhoud bol
Inhoud bol
Oppervlakte bol
Oppervlakte bol
Inhoud bolkap
Inhoud bolkap
Opp. bolkap
Opp. bolkap
Inhoud ellipsoïde
Inhoud ellipsoïde
Opp. ellipsoïde
Opp. ellipsoïde
Inhoud piramide
Inhoud piramide
Piramideoppervlak
Piramideoppervlak
Inhoud kegel
Inhoud kegel
Oppervlakte kegel
Oppervlakte kegel
Inhoud kegelstomp
Inhoud kegelstomp
Opp. kegelstomp
Opp. kegelstomp
Inhoud buis
Inhoud buis
Inhoud capsule
Inhoud capsule
Opp. capsule
Opp. capsule
Datum en tijd: rekenmachines
Leeftijd berekenen
Leeftijd berekenen
Dagen tellen
Dagen tellen
Datum berekenen
Datum berekenen
Uren vanaf nu
Uren vanaf nu
Dag van de week
Dag van de week
Tijd optellen
Tijd optellen
Tijdzones omrekenen
Tijdzones omrekenen
Werktijd berekenen
Werktijd berekenen
Tijdsverschil
Tijdsverschil
Urenregistratie
Urenregistratie
Financiën en economie: rekenmachines
Rente op rente
Rente op rente
Enkelvoudige rente
Enkelvoudige rente
Rente berekenen
Rente berekenen
TVM-rekenmachine
TVM-rekenmachine
Contante waarde
Contante waarde
Eindwaarde
Eindwaarde
ROI berekenen
ROI berekenen
IRR berekenen
IRR berekenen
Terugverdientijd
Terugverdientijd
Gem. rendement
Gem. rendement
Bbp berekenen
Bbp berekenen
Online marketing en advertentiecijfers: rekenmachines
CTR berekenen
CTR berekenen
Conversie (CVR)
Conversie (CVR)
CPC, CPM en CPA
CPC, CPM en CPA
ROAS berekenen
ROAS berekenen
Break-even-CPA
Break-even-CPA
LTV berekenen
LTV berekenen
CAC berekenen
CAC berekenen
Churn rate
Churn rate
A/B-test
A/B-test
A/B-steekproef
A/B-steekproef
SEO-verkeer
SEO-verkeer
Break-evenpunt
Break-evenpunt
Marge en opslag
Marge en opslag
CAGR berekenen
CAGR berekenen
Gezondheid en fitness: rekenmachines
BMI berekenen
BMI berekenen
Slaapcalculator
Slaapcalculator
Caloriebehoefte
Caloriebehoefte
BMR berekenen
BMR berekenen
TDEE berekenen
TDEE berekenen
Ideaal gewicht
Ideaal gewicht
Vetpercentage
Vetpercentage
Vetvrije massa
Vetvrije massa
Calorieverbruik
Calorieverbruik
Eiwit per dag
Eiwit per dag
Macro’s berekenen
Macro’s berekenen
Koolhydraten
Koolhydraten
Vet berekenen
Vet berekenen
Lengte voorspellen
Lengte voorspellen
Sport: rekenmachines
Golfhandicap
Golfhandicap
Tempo berekenen
Tempo berekenen
1RM berekenen
1RM berekenen
Streefhartslag
Streefhartslag
Weer: rekenmachines
Hitte-index
Hitte-index
Windchill
Windchill
Dauwpunt
Dauwpunt
Informatica: rekenmachines
Talstelsels
Talstelsels
Subnetcalculator
Subnetcalculator
Downloadtijd
Downloadtijd
Energie in huis en budget: rekenmachines
Stroomkosten
Stroomkosten
kWh naar euro
kWh naar euro
Kosten per jaar
Kosten per jaar
Airco vermogen
Airco vermogen
Airco kosten
Airco kosten
Kosten kachel
Kosten kachel
Gas of stroom
Gas of stroom
Besparing led
Besparing led
Salaris omrekenen
Salaris omrekenen
Maandbudget
Maandbudget
Auto: rekenmachines
Brandstofkosten
Brandstofkosten
Laadkosten
Laadkosten
EV vs benzine
EV vs benzine
Verbruik berekenen
Verbruik berekenen
Bandenmaat
Bandenmaat
Zonne-energie en batterijen: rekenmachines
Zonne-opbrengst
Zonne-opbrengst
Aantal panelen
Aantal panelen
Terugverdientijd
Terugverdientijd
Thuisbatterij
Thuisbatterij
Wonen en klussen: rekenmachines
Aantal tegels
Aantal tegels
Trap berekenen
Trap berekenen
Beton berekenen
Beton berekenen
Wandoppervlakte
Wandoppervlakte
Behang berekenen
Behang berekenen
Verf berekenen
Verf berekenen
Vloer berekenen
Vloer berekenen
Gevelopervlak
Gevelopervlak
Grind en split
Grind en split
Mortel mengen
Mortel mengen
Helling berekenen
Helling berekenen
Zaagplan hout
Zaagplan hout
Bebouwing en FSI
Bebouwing en FSI
Vloer op rol
Vloer op rol
Isolatie berekenen
Isolatie berekenen
Gordijnmaat
Gordijnmaat
Tv kijkafstand
Tv kijkafstand
Potgrond berekenen
Potgrond berekenen
Graszoden
Graszoden
Betonblokken
Betonblokken
Bakstenen
Bakstenen
Vlonder
Vlonder
Hellingbaan
Hellingbaan
Voorboren
Voorboren
Ventilatievoud
Ventilatievoud
Verf verdunnen
Verf verdunnen
Plint berekenen
Plint berekenen
Raam opmeten
Raam opmeten
Ophanghoogte
Ophanghoogte
Afschot buis
Afschot buis
Aantal schroeven
Aantal schroeven
Houtvolume (m³)
Houtvolume (m³)
Palen en panelen
Palen en panelen
Krimp van hout
Krimp van hout
Kit berekenen
Kit berekenen
Warmteverlies
Warmteverlies
Past het door?
Past het door?
Verhuisdozen
Verhuisdozen
Opbergruimte
Opbergruimte
Zaagplan platen
Zaagplan platen
Doorbuiging plank
Doorbuiging plank

A/B-test significantie berekenen (conversiepercentages, p-waarde en betrouwbaarheidsinterval)

Vul de bezoekers en conversies in voor groep A (de originele versie) en groep B (de aangepaste versie). Naast elk conversiepercentage, het verschil en de relatieve uplift voert de calculator een z-toets voor twee proporties uit voor de z-score en de p-waarde, en geeft hij een oordeel “significant / niet significant” bij het significantieniveau dat je kiest.

Bezoekers kunnen klikken, sessies of gebruikers zijn, maar tel ze in beide groepen op dezelfde manier. Vul gehele getallen in. Kies het significantieniveau en eenzijdig of tweezijdig zoals je vóór de start van de test hebt besloten (ze aanpassen nadat je de resultaten hebt gezien is geen geldig gebruik).
Resultaat en grafiek
Vul links de bezoekers en conversies van groep A en B in en klik op “Berekenen”. Het oordeel en een grafiek verschijnen hier.

Wat je op deze pagina kunt doen

  • Vul de bezoekers (klikken of sessies kan ook) en conversies van groep A en B in en krijg in één keer elk conversiepercentage, het verschil in conversiepercentages en de relatieve uplift
  • “B lijkt beter, maar kan het gewoon toeval zijn?” Een z-toets voor twee proporties beantwoordt dit (z-score, tweezijdige en eenzijdige p-waarden en een oordeel bij een significantieniveau van 5%, 1% of 10%)
  • Je krijgt ook het betrouwbaarheidsinterval voor het verschil (zoals 95%) en de marge waarmee de z-score de significantiegrens haalt (of mist)
  • Een grafiek van de standaardnormale verdeling laat zien waar je z-score valt en kleurt het kritieke gebied in (significant als de z-score daar terechtkomt)
  • Op deze pagina vind je ook een heldere uitleg van de formules en formules om te kopiëren voor Excel, Google Spreadsheets en Python
Deze pagina is alleen bedoeld om te beoordelen of de conversiepercentages (proporties) van groep A en B verschillen. Wil je alleen een z-score omrekenen naar een p-waarde, gebruik dan de calculator voor de p-waarde; voor een betrouwbaarheidsinterval van een gemiddelde de calculator voor het betrouwbaarheidsinterval; en voor het aantal mensen dat je nodig hebt om één proportie te onderzoeken de calculator voor de steekproefgrootte. “Statistisch significant” garandeert niet dat het effect echt of groot is (zie “Het belangrijkste idee” hieronder en het begrippenoverzicht).

Waarvoor is deze berekening handig?

Landingspagina’s en advertentieteksten verbeteren (online marketing)

“Versie B met een andere kleur voor de knop verhoogde het conversiepercentage van 2,0% naar 2,5%.” Controleren of dit verschil niet zomaar toeval is, is de significantie van een A/B-test, die elke dag in online marketing wordt gedaan. Met 10.000 bezoekers per groep is de tweezijdige p-waarde ongeveer 0,017, “significant bij 5%”. Maar bij vergelijkbare conversiepercentages met 500 bezoekers per groep (10 conversies tegenover 12 of 13) is de p-waarde ongeveer 0,5 tot 0,7 en kun je alleen zeggen “het kan toeval zijn”.
Als je overstapt omdat “B er beter uitziet”, gebeurt het vaak dat de resultaten de volgende maand terugzakken. Eerst het aantal bezoekers bepalen en beoordelen op een significantieniveau voorkomt dit (ervan uitgaand dat bezoekers willekeurig worden verdeeld).

Onderwerpregels en verzendtijden van e-mails testen (e-mailmarketing)

Stuur dezelfde e-mail met twee verschillende onderwerpregels naar elk de helft van de lijst en vergelijk openpercentages van 48% en 52%. Ook dit is een toets op het verschil tussen twee proporties. Bij 5.000 e-mails per groep heeft het verschil van 4 punten een z-score van ongeveer 4, een verschil dat moeilijk met toeval te verklaren is.
Grotere proporties zoals openpercentages zijn bij hetzelfde aantal e-mails makkelijker te beoordelen dan kleine zoals conversiepercentages (het verschil is vaak groot ten opzichte van de standaardfout). Deze formule geeft je een gevoel voor hoe de maatstaf die je vergelijkt het aantal benodigde verzendingen verandert.

Responspercentages van behandelingen vergelijken (medisch onderzoek)

Verbeterpercentages van twee groepen vergelijken, zoals “60% knapte op met de standaardbehandeling en 70% met de nieuwe”, is een basistoets in klinisch onderzoek (echte studies gebruiken strenge opzetten zoals randomisatie en blindering).
Artikelen achter geneesmiddelregistraties en behandelrichtlijnen vermelden altijd p-waarden en betrouwbaarheidsintervallen. Als je deze formule begrijpt, laat je je niet leiden door het ene woord “significant”; je kunt ook lezen “hoe groot is het verschil?” en “waren er genoeg patiënten?”.

Uitvalpercentages op een productielijn vergelijken (kwaliteitscontrole)

Lijkt een nieuw proces B het uitvalpercentage te verlagen van 1,5% naar 1,0%, dan verandert het oordeel met het volume: bij 2.000 stuks per groep is het “binnen toeval” en bij 20.000 stuks per groep “een significante verbetering”. Deze berekening voorkomt dat beslissingen over apparatuur en procesveranderingen door toeval in kleine steekproeven worden gestuurd.
Bij kleine proporties zoals uitvalpercentages wordt de normale benadering ruw als het verwachte aantal defecten (stuks × uitvalpercentage) onder 5 komt, dus kies je in plaats daarvan een exacte toets die de binomiale verdeling rechtstreeks gebruikt (zoals de exacte toets van Fisher).

Het effect van lesmateriaal en lesmethoden meten (onderwijs)

Dezelfde toets werkt voor vergelijkingen als “klassen met het nieuwe leerboek hadden een slagingspercentage van 75%, tegenover 65% met het oude”. Maar als je leerboeken per klas toewijst, zijn leerlingen niet willekeurig verdeeld en raken verschillen tussen docenten en leerlingen vermengd met het resultaat.
In onderwijs- en sociaal onderzoek telt, naast het controleren van de significantie met deze formule, ook de opzet: zijn groepen willekeurig verdeeld, en heeft iemand de manier van vergelijken veranderd nadat de resultaten bekend waren? Als je de aannames achter de formule kent, laat je je niet voor de gek houden door cijfers.

Formule

Conversiepercentage van elke groep
Wiskundige notatie (de gebruikelijke schrijfwijze)
\(\hat{p}_A\) \(=\) \(x_A\) \(\div\) \(n_A\)
In woorden (symbolen vervangen door woorden)
③ \(\hat{p}_A\): conversiepercentage van A \(=\) ① \(x_A\): conversies in A \(\div\) ② \(n_A\): bezoekers in A
De formule in woorden
① Neem de \(x_A\): conversies in A
② deel ze door de \(n_A\): bezoekers in A , en je krijgt het
③ \(\hat{p}_A\): conversiepercentage van A (dezelfde formule voor B, \(\hat{p}_B = x_B \div n_B\))
Een eenvoudig voorbeeld
Heeft A 200 conversies uit 10.000 bezoekers en B 250 conversies uit 10.000 bezoekers, dan zijn de conversiepercentages
conversiepercentage van A \(\hat{p}_A\) \(=\) conversies (200) \(\div\) bezoekers (10.000)
\(200 \div 10.000 = 0{,}02\ \ (2\%)\)
\(250 \div 10.000 = 0{,}025\ \ (2{,}5\%)\)
Het belangrijkste idee
De noemer van het conversiepercentage (bezoekers) kan uit klikken, sessies of gebruikers bestaan, maar tel A en B altijd op dezelfde manier. In de formules zijn proporties decimale getallen tussen 0 en 1, zoals \(0{,}02\), en pas voor de weergave worden ze percentages. Het symbool \(\hat{p}\) (p-dak) staat voor “het werkelijke conversiepercentage \(p\), geschat uit de gegevens die je hebt”. Ook als 10.000 mensen dezelfde pagina zien, schommelt het aantal conversies door toeval een beetje. “Het was 2% deze keer” is dus niet “het werkelijke conversiepercentage is precies 2%”; het is alleen een schatting in de buurt. De toets hieronder is de manier om met deze toevallige schommeling goed om te gaan.
Verschil in conversiepercentages en relatieve uplift
Wiskundige notatie (de gebruikelijke schrijfwijze)
\(d\) \(=\) \(\hat{p}_B\) \(-\) \(\hat{p}_A\)
\(L\) \(=\) \(d\) \(\div\) \(\hat{p}_A\) \(\times\) \(100\)
In woorden (symbolen vervangen door woorden)
③ \(d\): verschil in conversiepercentages \(=\) ① \(\hat{p}_B\): conversiepercentage van B \(-\) ② \(\hat{p}_A\): conversiepercentage van A
⑦ \(L\): relatieve uplift (%) \(=\) ④ \(d\): verschil in conversiepercentages \(\div\) ⑤ \(\hat{p}_A\): conversiepercentage van A \(\times\) ⑥ \(100\): het geheel (100%)
De formule in woorden
① Trek van het \(\hat{p}_B\): conversiepercentage van B ,
② het \(\hat{p}_A\): conversiepercentage van A af, en je krijgt het
③ \(d\): verschil in conversiepercentages (getoond maal 100, in procentpunten).
④ Deel het \(d\): verschil in conversiepercentages
⑤ door het \(\hat{p}_A\): conversiepercentage van A ,
⑥ vermenigvuldig met \(100\): het geheel (100%) om er een percentage van te maken, en je krijgt de
⑦ \(L\): relatieve uplift (%)
Een eenvoudig voorbeeld
Is het conversiepercentage van A 0,02 (2%) en dat van B 0,025 (2,5%), dan zijn het verschil en de relatieve uplift
verschil \(d\) \(=\) conversiepercentage van B (0,025) \(-\) conversiepercentage van A (0,02)
relatieve uplift \(L\) (%) \(=\) verschil (0,005) \(\div\) conversiepercentage van A (0,02) \(\times\) \(100\)
\(0{,}025 - 0{,}02 = 0{,}005\ \ (0{,}5\ \text{procentpunt})\)
\(0{,}005 \div 0{,}02 \times 100 = 25\ \ (25\%)\)
Het belangrijkste idee
“Van 2% naar 2,5%” is als verschil 0,5 procentpunten en als verhouding een stijging van 25%. Om verwarring te voorkomen heet het resultaat van het aftrekken van het ene percentage van het andere “procentpunten” (pp), niet “%” (2,5% − 2% = 0,5 procentpunten). De relatieve uplift laat zien “met hoeveel % B de conversies verhoogt ten opzichte van A”, dus hij sluit direct aan op schattingen van advertentie-uitgaven en omzet en wordt in de praktijk veel gebruikt. Maar deze twee getallen zijn het verschil dat in deze steekproef is waargenomen; het werkelijke verschil hoeft niet precies hetzelfde te zijn. De toets die volgt controleert dat.
Gepoold conversiepercentage (één percentage voor beide groepen samen)
Wiskundige notatie (de gebruikelijke schrijfwijze)
\(\hat{p}\) \(=\) \((x_A + x_B)\) \(\div\) \((n_A + n_B)\)
In woorden (symbolen vervangen door woorden)
③ \(\hat{p}\): gepoold conversiepercentage \(=\) ① \((x_A + x_B)\): totaal aantal conversies \(\div\) ② \((n_A + n_B)\): totaal aantal bezoekers
De formule in woorden
① Neem het \((x_A + x_B)\): totaal aantal conversies
② deel dat door het \((n_A + n_B)\): totaal aantal bezoekers , en je krijgt het
③ \(\hat{p}\): gepoold conversiepercentage
Een eenvoudig voorbeeld
Heeft A 200 conversies uit 10.000 bezoekers en B 250 uit 10.000, dan is het gepoolde conversiepercentage
gepoold conversiepercentage \(\hat{p}\) \(=\) totaal aantal conversies (200 + 250) \(\div\) totaal aantal bezoekers (10.000 + 10.000)
\((200 + 250) \div (10.000 + 10.000) = 450 \div 20.000 = 0{,}0225\ \ (2{,}25\%)\)
Het belangrijkste idee
De toets begint bij de hypothese dat “A en B werkelijk hetzelfde conversiepercentage hebben” (de nulhypothese). Als ze hetzelfde zijn, komen de gegevens van beide groepen uit één conversiepercentage, dus je combineert (poolt) beide groepen om het te schatten. Dit is het gepoolde conversiepercentage, dat wordt gebruikt bij de berekening van de standaardfout die hierna komt. “Ga ervan uit dat ze gelijk zijn, reken het door, en een verschil zo groot zou bijna nooit mogen voorkomen”: vind je dat, dan ga je twijfelen aan de aanname (geen verschil). Dat is de logica van een hypothesetoets.
Standaardfout en z-score (z-toets voor twee proporties)
Wiskundige notatie (de gebruikelijke schrijfwijze)
\(\mathrm{SE}\) \(=\) \(\sqrt{\hat{p}(1-\hat{p})\left(\dfrac{1}{n_A}+\dfrac{1}{n_B}\right)}\)
\(z\) \(=\) \(d\) \(\div\) \(\mathrm{SE}\)
In woorden (symbolen vervangen door woorden)
② \(\mathrm{SE}\): standaardfout \(=\) ① wortel uit: de spreiding van het gepoolde percentage \(\hat{p}(1-\hat{p})\) × de som van de omgekeerden van de bezoekers \(\left(\dfrac{1}{n_A}+\dfrac{1}{n_B}\right)\)
⑤ \(z\): z-score \(=\) ③ \(d\): verschil in conversiepercentages \(\div\) ④ \(\mathrm{SE}\): standaardfout
De formule in woorden
① De wortel uit de spreiding van het gepoolde percentage \(\hat{p}(1-\hat{p})\) maal de som van de omgekeerden van de bezoekers \(\left(\dfrac{1}{n_A}+\dfrac{1}{n_B}\right)\) is de
② \(\mathrm{SE}\): standaardfout (een maat voor hoeveel het verschil door toeval schommelt).
③ Deel het \(d\): verschil in conversiepercentages
④ door de \(\mathrm{SE}\): standaardfout , en je krijgt de
⑤ \(z\): z-score (hoeveel keer de toevallige schommeling het verschil is)
Een eenvoudig voorbeeld
Bij een gepoold conversiepercentage van 0,0225, 10.000 bezoekers in elke groep en een verschil van 0,005 zijn de standaardfout en z-score
standaardfout \(\mathrm{SE}\) \(=\) wortel uit “0,0225 × (1 − 0,0225) × (1/10.000 + 1/10.000)”
z-score \(z\) \(=\) verschil (0,005) \(\div\) standaardfout (0,002097)
\(0{,}0225 \times (1 - 0{,}0225) \times \left(\dfrac{1}{10.000} + \dfrac{1}{10.000}\right) = 0{,}02199375 \times 0{,}0002 \approx 0{,}0000043988\)
\(\mathrm{SE} = \sqrt{0{,}0000043988} \approx 0{,}002097\)
\(z = 0{,}005 \div 0{,}002097 \approx 2{,}384\)
Het belangrijkste idee
De z-score laat zien hoeveel keer de toevallige schommeling (de standaardfout) het waargenomen verschil is. Als er geen verschil is, volgt de z-score de standaardnormale verdeling met gemiddelde 0 en standaardafwijking 1, dus een verschil met \(|z|\) boven 2 komt zelden (ongeveer 5% van de keren of minder) door toeval voor als er geen werkelijk verschil is. De omgekeerde van het aantal bezoekers \(1/n\) staat in de formule van de standaardfout, dus hoe meer bezoekers, hoe kleiner de standaardfout en hoe groter de z-score bij hetzelfde verschil van 0,5 procentpunt (het wordt sneller significant). Bij weinig bezoekers kun je zelfs bij een groot verschil alleen zeggen “misschien toeval”. Deze formule benadert de spreiding van het aantal conversies (een binomiale verdeling) met een normale verdeling. Als richtlijn moeten de verwachte conversies \(n\hat{p}\) en de verwachte niet-conversies \(n(1-\hat{p})\) in elke groep allemaal 5 of meer zijn (liefst 10 of meer); anders toont het resultaat een waarschuwing.
P-waarden (tweezijdig en eenzijdig)
Wiskundige notatie (de gebruikelijke schrijfwijze)
\(p_2\) \(=\) \(2\) \(\times\) \((\) \(1\) \(-\) \(\Phi(|z|)\) \()\)
\(p_1\) \(=\) \(1\) \(-\) \(\Phi(z)\)
In woorden (symbolen vervangen door woorden)
④ \(p_2\): tweezijdige p-waarde \(=\) ③ \(2\): voor beide staarten \(\times\) \((\) ① \(1\): totale kans \(-\) ② \(\Phi(|z|)\): cumulatieve kans tot \(|z|\) \()\)
⑦ \(p_1\): eenzijdige p-waarde \(=\) ⑤ \(1\): totale kans \(-\) ⑥ \(\Phi(z)\): cumulatieve kans tot \(z\)
De formule in woorden
① Trek van de \(1\): totale kans ,
② de \(\Phi(|z|)\): cumulatieve kans tot \(|z|\) af (zo houd je de oppervlakte van één staart over),
③ vermenigvuldig met \(2\): voor beide staarten , en je krijgt de
④ \(p_2\): tweezijdige p-waarde .
⑤ Trek van de \(1\): totale kans ,
⑥ de \(\Phi(z)\): cumulatieve kans tot \(z\) , en je krijgt de
⑦ \(p_1\): eenzijdige p-waarde (voor de hypothese “B is hoger dan A”)
Een eenvoudig voorbeeld
Bij een z-score van 2,384 (de cumulatieve kans van de standaardnormale verdeling is \(\Phi(2{,}384) \approx 0{,}99144\)) zijn de tweezijdige en eenzijdige p-waarden
tweezijdige p-waarde \(p_2\) \(=\) \(2\) \(\times\) \((\) \(1\) \(-\) \(\Phi(2{,}384)\) (0,99144) \()\)
\(p_2 = 2 \times (1 - 0{,}99144) = 2 \times 0{,}00856 \approx 0{,}0171\)
\(p_1 = 1 - 0{,}99144 \approx 0{,}0086\)
Het belangrijkste idee
De p-waarde is “de kans op een verschil dat minstens zo groot is door toeval, als er werkelijk geen verschil is”. Een tweezijdige p-waarde van 0,0171 zegt: “als er geen verschil was, zou een verschil zo groot (in beide richtingen) maar ongeveer 1,7 keer op de 100 voorkomen”. Dat is lager dan het significantieniveau van 5% (0,05), dus het oordeel is “statistisch significant”; het is hoger dan 1% (0,01), dus “niet significant bij 1%”. Een tweezijdige toets vraagt “is er een verschil tussen A en B (welke ook hoger is)?”, en een eenzijdige toets vraagt alleen “is B hoger dan A?”. De eenzijdige p-waarde is de helft van de tweezijdige, dus hij wordt sneller significant, maar je mag hem alleen gebruiken als je vóór de start van de test hebt besloten dat je niet naar B lager kijkt. Na het zien van de resultaten overstappen op eenzijdig is geen geldig gebruik. Om dezelfde reden maakt het steeds opnieuw bekijken van de resultaten en stoppen zodra het significant wordt (tussentijds kijken), of het tegelijk testen van veel versies of meetwaarden en alles overnemen wat significant wordt (meervoudig toetsen), de kans op een “significant” resultaat zonder werkelijk verschil veel groter dan 5%. De basisregel is vooraf het benodigde aantal bezoekers en de meetwaarden te bepalen, tot dan te wachten en maar één keer te oordelen. \(\Phi\) (phi) is de cumulatieve verdelingsfunctie van de standaardnormale verdeling: de kans dat de z-score die waarde of lager is, de oppervlakte links onder de klokkromme. Je kunt de waarden uit een tabel halen of met de functie NORM.S.VERD van Excel (de calculator op deze pagina berekent ze numeriek).
Betrouwbaarheidsinterval voor het verschil in conversiepercentages
Wiskundige notatie (de gebruikelijke schrijfwijze)
\(d_L,\ d_U\) \(=\) \(d\) \(\pm\) \(z_{\alpha/2}\) \(\times\) \(\sqrt{\dfrac{\hat{p}_A(1-\hat{p}_A)}{n_A}+\dfrac{\hat{p}_B(1-\hat{p}_B)}{n_B}}\)
In woorden (symbolen vervangen door woorden)
④ \(d_L,\ d_U\): onder- en bovengrens van het betrouwbaarheidsinterval \(=\) ① \(d\): verschil in conversiepercentages \(\pm\) ② \(z_{\alpha/2}\): bepaald door het betrouwbaarheidsniveau \(\times\) ③ \(\mathrm{SE}_d\): standaardfout uit de spreiding van elke groep
De formule in woorden
① Ga rond het \(d\): verschil in conversiepercentages , omhoog en omlaag met
② de \(z_{\alpha/2}\): bepaald door het betrouwbaarheidsniveau (1,96 bij 95%) keer de
③ \(\mathrm{SE}_d\): standaardfout uit de spreiding van elke groep , en je krijgt de
④ \(d_L,\ d_U\): onder- en bovengrens van het betrouwbaarheidsinterval
Een eenvoudig voorbeeld
Is het conversiepercentage van A 0,02 (10.000 bezoekers), dat van B 0,025 (10.000 bezoekers) en het verschil 0,005, dan is het 95%-betrouwbaarheidsinterval voor het verschil
onder \(d_L\), boven \(d_U\) \(=\) verschil (0,005) \(\pm\) \(z_{\alpha/2}\) (1,96) \(\times\) standaardfout (0,002097)
\(\mathrm{SE}_d = \sqrt{\dfrac{0{,}02 \times 0{,}98}{10.000} + \dfrac{0{,}025 \times 0{,}975}{10.000}} = \sqrt{0{,}00000196 + 0{,}0000024375} \approx 0{,}002097\)
\(0{,}005 \pm 1{,}96 \times 0{,}002097 = 0{,}005 \pm 0{,}00411\)
\(0{,}00089 \le d \le 0{,}00911\ \ (0{,}09\ \text{tot}\ 0{,}91\ \text{procentpunt})\)
Het belangrijkste idee
Een toets beantwoordt alleen ja of nee: “is er een verschil?”. Een betrouwbaarheidsinterval vertelt je ook de grootte: “het werkelijke verschil ligt waarschijnlijk ongeveer in dit bereik”. In dit voorbeeld is het 95%-betrouwbaarheidsinterval 0,09 tot 0,91 procentpunten. Het bevat 0 niet, dus je kunt zeggen “B is hoger”, maar het laat ook zien dat het bereik te breed is om te beweren “het is precies 0,5 punt gestegen”. Gebruik voor de standaardfout de spreiding van het eigen conversiepercentage van elke groep, niet de gepoolde waarde van de toets (het interval gaat niet uit van “geen verschil”). \(z_{\alpha/2}\) is de standaardnormale waarde bij het betrouwbaarheidsniveau: 1,645 bij 90%, 1,96 bij 95% en 2,576 bij 99%. Kies je als betrouwbaarheidsniveau “100 − significantieniveau” (95% bij een significantieniveau van 5%), dan komen het tweezijdige oordeel en de vraag of het interval 0 bevat vrijwel altijd overeen (bij een eenzijdige toets komen ze niet overeen; ook gebruikt de toets de gepoolde standaardfout en het interval die van elke groep, dus ze kunnen bij de grens zelden verschillen).
De z-score is het verschil in conversiepercentages gedeeld door de toevallige schommeling (standaardfout) als je ervan uitgaat dat er geen verschil is, en de p-waarde is de kans op een verschil dat minstens zo groot is door toeval. Is de p-waarde lager dan het significantieniveau (zoals 5%), dan is het oordeel “statistisch significant”, en het betrouwbaarheidsinterval voor het verschil laat zien waar het werkelijke verschil waarschijnlijk ligt. Statistisch significant zegt “moeilijk met toeval te verklaren”; het zegt niet “het effect is zeker of groot”.

Symbolen en begrippen

Symbolen

\(n_A,\ n_B\) n index A, n index B Bezoekers (klikken of sessies) in groep A en B. \(n\) staat voor het Engelse “number” (aantal), de gebruikelijke letter in de statistiek voor de steekproefgrootte.
\(x_A,\ x_B\) x index A, x index B Conversies in groep A en B. \(x\) gebruiken voor het aantal successen is gebruikelijk bij de binomiale verdeling.
\(\hat{p}_A,\ \hat{p}_B\) p-dak index A, p-dak index B Conversiepercentages van groep A en B (proporties uit de steekproef). \(p\) staat voor “proportie” of “kans” en het “\(\hat{}\)” (dakje) erboven geeft aan dat het een uit de steekproef geschatte waarde is voor de werkelijke waarde \(p\).
\(\hat{p}\) p-dak Gepoold conversiepercentage. Eén geschat conversiepercentage uit beide groepen samen, ervan uitgaand dat er geen verschil is: \(\hat{p} = (x_A + x_B) \div (n_A + n_B)\).
\(d\) dee Verschil in conversiepercentages (\(\hat{p}_B - \hat{p}_A\)), van het Engelse “difference”. Deze pagina toont het maal 100, in procentpunten.
\(L\) el Relatieve uplift (%), van de eerste letter van “lift”. Met hoeveel % het conversiepercentage van B is gestegen ten opzichte van dat van A.
\(\mathrm{SE}\) es-ee Standaardfout. Een maat voor hoeveel een waarde uit de steekproef (hier het verschil in conversiepercentages) door toeval schommelt; het is de standaardafwijking van die steekproefwaarde. De toets gebruikt het gepoolde conversiepercentage en het betrouwbaarheidsinterval gebruikt \(\mathrm{SE}_d\) uit het conversiepercentage van elke groep.
\(z\) zet z-score (toetsingsgrootheid). Het verschil gedeeld door de standaardfout: hoeveel keer de toevallige schommeling het verschil is. Zonder verschil volgt hij de standaardnormale verdeling (gemiddelde 0, standaardafwijking 1), dus de p-waarde volgt uit hoe groot hij is.
\(|z|\) absolute waarde van z De grootte van de z-score zonder teken. Een tweezijdige toets let niet op de richting van het verschil, dus gebruikt de absolute waarde.
\(\Phi\) hoofdletter fi De cumulatieve verdelingsfunctie van de standaardnormale verdeling. \(\Phi(z)\) is de kans dat een standaardnormale waarde \(z\) of lager is, de oppervlakte onder de klokkromme links van \(z\). De Griekse hoofdletter fi is het gebruikelijke symbool daarvoor.
\(p_2,\ p_1\) p index 2, p index 1 De tweezijdige en eenzijdige p-waarden. De indices 2 en 1 staan voor “twee staarten” en “één staart”, een aanduiding die alleen op deze pagina wordt gebruikt; statistiekboeken schrijven gewoon \(p\).
\(\alpha\) alfa Het significantieniveau: de vooraf gekozen grens waarbij “is de p-waarde kleiner, dan verwerp je de nulhypothese”. 5% (0,05) is gebruikelijk. Griekse letter alfa; het is de kans op een type I-fout (een verschil echt noemen terwijl er geen is).
\(z_{\alpha/2}\) z index alfa gedeeld door 2 De grens-z-score (kritieke waarde) die in beide staarten samen een kans van \(\alpha\) overlaat. 1,96 bij een 95%-betrouwbaarheidsinterval (\(\alpha = 0{,}05\)) en 2,576 bij 99%. Voor één staart is het \(z_\alpha\) (1,645 bij 5%).
\(d_L,\ d_U\) d index L, d index U De onder- en bovengrens van het betrouwbaarheidsinterval voor het verschil: de twee uiteinden van het bereik waarin het werkelijke verschil waarschijnlijk ligt.

Begrippen

A/B-test Een experiment waarbij je bezoekers willekeurig de originele versie (A) of een aangepaste versie (B) laat zien in dezelfde periode en de resultaten vergelijkt. Veel gebruikt voor websites, advertenties en e-mail. Door willekeurig te verdelen zijn andere factoren dan de versie (dag van de week, verkeersbron enzovoort) in beide groepen gelijk.
conversiepercentage (CVR) Het deel van de bezoeken (klikken) dat tot een resultaat (conversie) zoals een aankoop of aanmelding leidde. Om één conversiepercentage te berekenen of terug te rekenen, zie de calculator voor het conversiepercentage.
nulhypothese De hypothese die de toets probeert te verwerpen: “A en B hebben werkelijk hetzelfde conversiepercentage” (\(p_A = p_B\)). De toets kijkt hoe onwaarschijnlijk het waargenomen verschil zou zijn als dit waar was.
alternatieve hypothese De hypothese die je wilt aantonen, het tegenovergestelde van de nulhypothese. Bij een tweezijdige toets is het “A en B verschillen” (\(p_A \neq p_B\)); bij een eenzijdige toets “B is hoger dan A” (\(p_B > p_A\)).
significantieniveau De grens die je vóór de toets kiest: is de p-waarde kleiner, dan verwerp je de nulhypothese. 5% is gebruikelijk; gebruik 1% voor een strengere toets. “Significant bij 5%” zegt: “de kans op een verschil zo groot zonder werkelijk verschil is minder dan 5%”.
p-waarde De kans op een verschil dat minstens zo groot is door toeval, als de nulhypothese (geen verschil) waar is. Hoe kleiner, hoe moeilijker het resultaat met toeval te verklaren is. Let op dat het niet “de kans dat B beter is” is (een veelvoorkomend misverstand).
statistisch significant De p-waarde is lager dan het significantieniveau, dus het verschil is moeilijk met toevallige schommeling te verklaren. Het belooft niet dat het verschil groot of het effect zeker is; bij een enorm aantal bezoekers wordt zelfs een piepklein verschil significant.
toetsingsgrootheid Eén getal dat uit de gegevens voor de toets wordt berekend. Op deze pagina is het de z-score, “verschil ÷ standaardfout”. Hoe extreem hij is, bepaalt de p-waarde.
z-toets voor twee proporties Een toets die de normale verdeling gebruikt om te controleren of de proporties (zoals conversiepercentages) van twee groepen verschillen. Het is de meest basale manier om de significantie van een A/B-test te beoordelen. Je kunt vrijwel hetzelfde doen met een 2×2-chikwadraattoets; de tweezijdige p-waarden komen overeen.
standaardfout De standaardafwijking van een statistiek uit een steekproef (hier het verschil in conversiepercentages): hoeveel hij door toeval schommelt afhankelijk van de steekproef. Hij wordt kleiner met de wortel uit het aantal bezoekers, dus om de standaardfout te halveren heb je 4 keer zoveel bezoekers nodig.
gepoold (poolen) De gegevens van beide groepen combineren tot één schatting van het conversiepercentage, ervan uitgaand dat er geen verschil is. De standaardfout voor de toets gebruikt deze gepoolde waarde.
betrouwbaarheidsinterval Het bereik waarin het werkelijke verschil waarschijnlijk ligt. Een 95%-betrouwbaarheidsinterval is een manier om intervallen zo te bouwen dat bij vele herhalingen van het experiment 95% ervan het werkelijke verschil bevat. Bevat het interval 0 niet, dan komt dat vrijwel altijd overeen met significantie in een tweezijdige toets bij 5%.
tweezijdige toets Een toets van “is er een verschil (welke ook hoger is)?”. Gebruik hem voor een gewone A/B-test waarbij je niet weet welke kant het opgaat.
eenzijdige toets Een toets met een vaste richting, zoals “is B hoger dan A?”. De p-waarde is de helft van die van de tweezijdige, dus hij wordt sneller significant; gebruik hem alleen als je de richting vóór de test hebt besloten.
kritiek gebied Het staartgebied van de standaardnormale verdeling waarin je de nulhypothese verwerpt als de z-score daar terechtkomt. Bij tweezijdig 5% zijn het de twee staarten \(z < -1{,}96\) en \(z > 1{,}96\), met een totale oppervlakte van 0,05. Het is het gekleurde deel van de grafiek op deze pagina.
kritieke waarde De z-score aan de rand van het kritieke gebied. 1,96 bij tweezijdig 5%, 2,576 bij tweezijdig 1% en 1,645 bij eenzijdig 5%. De “marge van de z-score” in het resultaat laat zien hoeveel deze z-score boven (of onder) de kritieke waarde ligt.
normale benadering Het aantal conversies volgt eigenlijk een binomiale verdeling, maar bij veel bezoekers benadert een normale verdeling (klokkromme) die goed. De z-toets gebruikt deze benadering, dus als richtlijn moeten de verwachte conversies \(n\hat{p}\) en de verwachte niet-conversies \(n(1-\hat{p})\) in elke groep 5 of meer zijn (liefst 10 of meer).
onderscheidend vermogen (power) De kans dat de toets een werkelijk verschil als significant herkent. Bij weinig bezoekers is het onderscheidend vermogen laag, en komt zelfs een echt effect vaak “niet significant” uit. “Niet significant” bewijst niet “geen verschil”.
type I-fout Een resultaat significant noemen terwijl er werkelijk geen verschil is (een vals positief). Het significantieniveau \(\alpha\) is de kans op deze fout die je accepteert; bij 5%: “doe 100 toetsen zonder werkelijk verschil en ongeveer 5 zijn toevallig significant”.
meervoudig toetsen Veel versies of meetwaarden tegelijk testen. Zelfs bij een significantieniveau van 5% komt bij 20 meetwaarden waarschijnlijk één “significant” uit door toeval. Je moet de meetwaarden vooraf beperken of een strenger significantieniveau gebruiken (Bonferroni-correctie en andere).
tussentijds kijken (peeking) Tijdens de test steeds opnieuw naar de resultaten kijken en stoppen zodra het significant lijkt. De p-waarde gaat tijdens een test op en neer, dus als je blijft “stoppen zodra hij onder 5% komt”, komt de kans op significantie zonder werkelijk verschil ver boven 5%. De basisregel is eerst het benodigde aantal bezoekers te bepalen en te wachten tot je het hebt.
relatieve uplift Met hoeveel % het conversiepercentage van B is gestegen ten opzichte van dat van A: het verschil \(d\) gedeeld door het conversiepercentage van A, maal 100. “25% hoger” is makkelijker om te zetten in schattingen van extra conversies en omzet dan “0,5 punt hoger”.
procentpunt De eenheid voor het resultaat van het aftrekken van het ene percentage van het andere (afgekort pp). Gebruikt zoals in “2,5% − 2% = 0,5 procentpunt”; “0,5%” schrijven zou kunnen worden opgevat als “0,5% van 2%”.

Handig om vooraf te weten

Dit helpt je om de berekening op deze pagina echt te begrijpen, in plaats van alleen op de knop te drukken.
Loop je vast, dan is het herhalen van deze onderwerpen de snelste weg vooruit.

Procenten (groep 7–8, 10-12 jaar)
  • Weten dat je een percentage vindt als “deel ÷ geheel” (conversiepercentage = conversies ÷ bezoekers)
  • Kunnen wisselen tussen percentages en decimale getallen (\(2{,}5\% = 0{,}025\))
  • Weten dat een verschil tussen percentages in procentpunten wordt uitgedrukt (2,5% − 2% = 0,5 procentpunten)
Omgekeerden en wortels (groep 8–klas 2, 11-14 jaar)
  • Omgekeerden kunnen optellen, zoals \(\dfrac{1}{5000} + \dfrac{1}{5000} = 0{,}0004\)
  • Wortels begrijpen en eenvoudige wortels kunnen bepalen, zoals \(\sqrt{0{,}0001} = 0{,}01\)
De normale verdeling en standaardafwijking (havo/vwo wiskunde A/C, 15-18 jaar)
  • Weten dat de standaardnormale verdeling (gemiddelde 0, standaardafwijking 1) klokvormig is en dat “de kans op \(z\) of lager”, \(\Phi(z)\), de oppervlakte links onder de kromme is
  • Bij benadering waarden uit een z-tabel kunnen aflezen, zoals \(\Phi(1{,}96) \approx 0{,}975\)
  • Een gevoel voor “de kans om 2 of meer standaardafwijkingen van het gemiddelde te belanden is ongeveer 5%”
De logica van hypothesetoetsen (havo/vwo wiskunde A/C, 15-18 jaar)
  • De stappen begrijpen: een nulhypothese van “geen verschil” opstellen en oordelen naar hoe onwaarschijnlijk het waargenomen resultaat daaronder zou zijn
  • Begrijpen hoe significantieniveau, p-waarde en kritiek gebied samenhangen (de p-waarde is lager dan het significantieniveau ⇔ de z-score valt in het kritieke gebied)
De binomiale verdeling en de normale benadering (vwo wiskunde A/C, 16-18 jaar)
  • Weten dat “het aantal successen bij \(n\) pogingen van iets met kans \(p\)” een binomiale verdeling volgt en dat voor grote \(n\) een normale verdeling die benadert

Berekenen met Excel

Kopieer de hele tabel hieronder en plak die in cel A1 van Excel. Het werkt direct.
Tabel voor elk conversiepercentage
Bezoekers in A n_A 10000
Conversies in A x_A 200
Bezoekers in B n_B 10000
Conversies in B x_B 250
Conversiepercentage van A p̂_A =B2/B1
Conversiepercentage van B p̂_B =B4/B3
Tabel voor het verschil en de relatieve uplift
Conversiepercentage van A p̂_A 0,02
Conversiepercentage van B p̂_B 0,025
Verschil d =B2-B1
Relatieve uplift L (%) =B3/B1*100
Tabel voor het gepoolde conversiepercentage
Conversies in A x_A 200
Conversies in B x_B 250
Bezoekers in A n_A 10000
Bezoekers in B n_B 10000
Gepoold conversiepercentage p̂ =(B1+B2)/(B3+B4)
Tabel voor de standaardfout en z-score
Gepoold conversiepercentage p̂ 0,0225
Bezoekers in A n_A 10000
Bezoekers in B n_B 10000
Verschil d 0,005
Standaardfout SE =WORTEL(B1*(1-B1)*(1/B2+1/B3))
z-score z =B4/B5
Tabel voor de p-waarden (tweezijdig en eenzijdig)
z-score z 2,384
Tweezijdige p-waarde p₂ =2*(1-NORM.S.VERD(ABS(B1);WAAR))
Eenzijdige p-waarde p₁ =1-NORM.S.VERD(B1;WAAR)
Tabel voor het betrouwbaarheidsinterval voor het verschil
Conversiepercentage van A p̂_A 0,02
Bezoekers in A n_A 10000
Conversiepercentage van B p̂_B 0,025
Bezoekers in B n_B 10000
Verschil d 0,005
Betrouwbaarheidsniveau (0,95 = 95%) 0,95
z_(α/2) =NORM.S.INV(1-(1-B6)/2)
Standaardfout SE_d =WORTEL(B1*(1-B1)/B2+B3*(1-B3)/B4)
Ondergrens d_L =B5-B7*B8
Bovengrens d_U =B5+B7*B8
Na het plakken zijn de bovenste rijen je invoer en worden de rijen met formules automatisch berekend. Proporties zijn decimale getallen tussen 0 en 1, zoals 0,02; vermenigvuldig met 100 voor een percentage.
In de eerste tabel toont B5 het conversiepercentage van A, 0,02, en B6 dat van B, 0,025. De tweede tabel geeft een verschil van 0,005 (0,5 procentpunten) en een uplift van 25, de derde een gepoold conversiepercentage van 0,0225 en de vierde een standaardfout van ongeveer 0,002097 en een z-score van ongeveer 2,384.
In de vijfde tabel geeft NORM.S.VERD(z; WAAR) de standaardnormale cumulatieve kans Φ(z); de tweezijdige p-waarde is ongeveer 0,0171 en de eenzijdige p-waarde ongeveer 0,0086. In de zesde tabel vindt NORM.S.INV de z-score uit een cumulatieve kans (1,96 bij een betrouwbaarheidsniveau van 95%), wat een ondergrens van ongeveer 0,0009 en een bovengrens van ongeveer 0,0091 geeft (0,09 tot 0,91 procentpunten).

Berekenen met Google Spreadsheets

Kopieer de hele tabel hieronder en plak die in cel A1 van Google Spreadsheets. Het werkt direct.
Tabel voor elk conversiepercentage
Bezoekers in A n_A 10000
Conversies in A x_A 200
Bezoekers in B n_B 10000
Conversies in B x_B 250
Conversiepercentage van A p̂_A =B2/B1
Conversiepercentage van B p̂_B =B4/B3
Tabel voor het verschil en de relatieve uplift
Conversiepercentage van A p̂_A 0,02
Conversiepercentage van B p̂_B 0,025
Verschil d =B2-B1
Relatieve uplift L (%) =B3/B1*100
Tabel voor het gepoolde conversiepercentage
Conversies in A x_A 200
Conversies in B x_B 250
Bezoekers in A n_A 10000
Bezoekers in B n_B 10000
Gepoold conversiepercentage p̂ =(B1+B2)/(B3+B4)
Tabel voor de standaardfout en z-score
Gepoold conversiepercentage p̂ 0,0225
Bezoekers in A n_A 10000
Bezoekers in B n_B 10000
Verschil d 0,005
Standaardfout SE =WORTEL(B1*(1-B1)*(1/B2+1/B3))
z-score z =B4/B5
Tabel voor de p-waarden (tweezijdig en eenzijdig)
z-score z 2,384
Tweezijdige p-waarde p₂ =2*(1-STAND.NORM.VERD(ABS(B1)))
Eenzijdige p-waarde p₁ =1-STAND.NORM.VERD(B1)
Tabel voor het betrouwbaarheidsinterval voor het verschil
Conversiepercentage van A p̂_A 0,02
Bezoekers in A n_A 10000
Conversiepercentage van B p̂_B 0,025
Bezoekers in B n_B 10000
Verschil d 0,005
Betrouwbaarheidsniveau (0,95 = 95%) 0,95
z_(α/2) =STAND.NORM.INV(1-(1-B6)/2)
Standaardfout SE_d =WORTEL(B1*(1-B1)/B2+B3*(1-B3)/B4)
Ondergrens d_L =B5-B7*B8
Bovengrens d_U =B5+B7*B8
Bijna dezelfde formules als in Excel werken. Schrijf de standaardnormale cumulatieve kans als STAND.NORM.VERD(z) en de inverse als STAND.NORM.INV(p) (ze doen hetzelfde als NORM.S.VERD en NORM.S.INV van Excel). Kopieer de hele tabel, plak die in cel A1 en vervang de invoer door je eigen getallen.

Berekenen met Python

import math

visits_a, conversions_a = 10000, 200   # bezoekers en conversies in A
visits_b, conversions_b = 10000, 250   # bezoekers en conversies in B
alpha = 0.05                           # significantieniveau (5%)

def normal_cdf(z):
    # standaardnormale cumulatieve verdelingsfunctie Φ(z)
    return 0.5 * math.erfc(-z / math.sqrt(2))

def normal_ppf(p):
    # inverse van Φ (bisectie; gebruikt om z_(α/2) te vinden)
    low, high = -10.0, 10.0
    for _ in range(100):
        mid = (low + high) / 2
        if normal_cdf(mid) < p:
            low = mid
        else:
            high = mid
    return (low + high) / 2

cvr_a = conversions_a / visits_a
cvr_b = conversions_b / visits_b
diff = cvr_b - cvr_a
lift = diff / cvr_a * 100
pooled = (conversions_a + conversions_b) / (visits_a + visits_b)
se_pooled = math.sqrt(pooled * (1 - pooled) * (1 / visits_a + 1 / visits_b))
z = diff / se_pooled
p_two_sided = 2 * (1 - normal_cdf(abs(z)))
p_one_sided = 1 - normal_cdf(z)

se_diff = math.sqrt(cvr_a * (1 - cvr_a) / visits_a + cvr_b * (1 - cvr_b) / visits_b)
z_half = normal_ppf(1 - alpha / 2)
ci_low, ci_high = diff - z_half * se_diff, diff + z_half * se_diff

print(f"Conversiepercentage A: {cvr_a * 100:.2f}%  Conversiepercentage B: {cvr_b * 100:.2f}%")
print(f"Verschil: {diff * 100:.2f} procentpunten  Relatieve uplift: {lift:.1f}%")
print(f"z-score: {z:.3f}  tweezijdige p-waarde: {p_two_sided:.4f}  eenzijdige p-waarde: {p_one_sided:.4f}")
print("Oordeel (tweezijdig):", "statistisch significant" if p_two_sided < alpha else "niet statistisch significant")
print(f"{(1 - alpha) * 100:.0f}%-betrouwbaarheidsinterval voor het verschil: {ci_low * 100:.2f} tot {ci_high * 100:.2f} procentpunten")
Draait met alleen de standaardbibliotheek (math.erfc geeft de standaardnormale cumulatieve kans). In dit voorbeeld drukt het een z-score af van 2,384, een tweezijdige p-waarde van 0,0171, een eenzijdige p-waarde van 0,0086, het oordeel “statistisch significant” en een 95%-betrouwbaarheidsinterval voor het verschil van 0,09 tot 0,91 procentpunten. Pas bovenaan de vier getallen en het significantieniveau aan en voer het uit. Heb je scipy, dan kun je in plaats daarvan scipy.stats.norm.cdf en norm.ppf gebruiken.

De formule in LaTeX en andere wiskundenotaties (om te kopiëren)

Conversiepercentage van elke groep
p̂_A = x_A ÷ n_A
\hat{p}_A = \dfrac{x_A}{n_A}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub>
    <mo>=</mo>
    <mfrac>
      <msub><mi>x</mi><mi>A</mi></msub>
      <msub><mi>n</mi><mi>A</mi></msub>
    </mfrac>
  </mrow>
</math>
hat(p)_A = x_A / n_A
xA/nA
pA := xA/nA;
pA = xA/nA;
p̂_A = x_A/n_A
Verschil in conversiepercentages en relatieve uplift
d = p̂_B − p̂_A,  L = d ÷ p̂_A × 100
d = \hat{p}_B - \hat{p}_A, \quad L = \dfrac{d}{\hat{p}_A} \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>d</mi><mo>=</mo>
    <msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub>
    <mo>&#x2212;</mo>
    <msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub>
    <mo>,</mo><mspace width="1em"/>
    <mi>L</mi><mo>=</mo>
    <mfrac><mi>d</mi><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub></mfrac>
    <mo>&#xD7;</mo><mn>100</mn>
  </mrow>
</math>
d = hat(p)_B - hat(p)_A, L = d / hat(p)_A xx 100
d = pB - pA; d/pA*100
d := pB - pA; L := d/pA*100;
d = pB - pA; L = d/pA*100;
d = p̂_B − p̂_A, L = d/p̂_A × 100
Gepoold conversiepercentage (één percentage voor beide groepen samen)
p̂ = (x_A + x_B) ÷ (n_A + n_B)
\hat{p} = \dfrac{x_A + x_B}{n_A + n_B}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mover accent="true"><mi>p</mi><mo>^</mo></mover>
    <mo>=</mo>
    <mfrac>
      <mrow><msub><mi>x</mi><mi>A</mi></msub><mo>+</mo><msub><mi>x</mi><mi>B</mi></msub></mrow>
      <mrow><msub><mi>n</mi><mi>A</mi></msub><mo>+</mo><msub><mi>n</mi><mi>B</mi></msub></mrow>
    </mfrac>
  </mrow>
</math>
hat(p) = (x_A + x_B) / (n_A + n_B)
(xA + xB)/(nA + nB)
pPool := (xA + xB)/(nA + nB);
pPool = (xA + xB)/(nA + nB);
p̂ = (x_A + x_B)/(n_A + n_B)
Standaardfout en z-score (z-toets voor twee proporties)
SE = √(p̂(1 − p̂)(1/n_A + 1/n_B)),  z = d ÷ SE
\mathrm{SE} = \sqrt{\hat{p}(1-\hat{p})\left(\dfrac{1}{n_A}+\dfrac{1}{n_B}\right)}, \quad z = \dfrac{d}{\mathrm{SE}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>z</mi><mo>=</mo>
    <mfrac>
      <mrow><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub><mo>&#x2212;</mo><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub></mrow>
      <msqrt>
        <mover accent="true"><mi>p</mi><mo>^</mo></mover>
        <mo>(</mo><mn>1</mn><mo>&#x2212;</mo><mover accent="true"><mi>p</mi><mo>^</mo></mover><mo>)</mo>
        <mo>(</mo>
        <mfrac><mn>1</mn><msub><mi>n</mi><mi>A</mi></msub></mfrac>
        <mo>+</mo>
        <mfrac><mn>1</mn><msub><mi>n</mi><mi>B</mi></msub></mfrac>
        <mo>)</mo>
      </msqrt>
    </mfrac>
  </mrow>
</math>
SE = sqrt(hat(p)(1 - hat(p))(1/n_A + 1/n_B)), z = d / SE
se = Sqrt[pPool*(1 - pPool)*(1/nA + 1/nB)]; z = d/se
SE := sqrt(pPool*(1 - pPool)*(1/nA + 1/nB)); z := d/SE;
SE = sqrt(pPool*(1 - pPool)*(1/nA + 1/nB)); z = d/SE;
SE = √(p̂(1 − p̂)(1/n_A + 1/n_B)), z = d/SE
P-waarden (tweezijdig en eenzijdig)
p₂ = 2(1 − Φ(|z|)),  p₁ = 1 − Φ(z)
p_2 = 2\left(1 - \Phi(|z|)\right), \quad p_1 = 1 - \Phi(z)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>p</mi><mn>2</mn></msub><mo>=</mo>
    <mn>2</mn><mo>(</mo><mn>1</mn><mo>&#x2212;</mo>
    <mi>&#x3A6;</mi><mo>(</mo><mo>|</mo><mi>z</mi><mo>|</mo><mo>)</mo><mo>)</mo>
    <mo>,</mo><mspace width="1em"/>
    <msub><mi>p</mi><mn>1</mn></msub><mo>=</mo>
    <mn>1</mn><mo>&#x2212;</mo><mi>&#x3A6;</mi><mo>(</mo><mi>z</mi><mo>)</mo>
  </mrow>
</math>
p_2 = 2(1 - Phi(|z|)), p_1 = 1 - Phi(z)
p2 = 2*(1 - CDF[NormalDistribution[0, 1], Abs[z]]); p1 = 1 - CDF[NormalDistribution[0, 1], z]
p2 := 2*(1 - Statistics:-CDF(Normal(0, 1), abs(z))); p1 := 1 - Statistics:-CDF(Normal(0, 1), z);
p2 = 2*(1 - normcdf(abs(z))); p1 = 1 - normcdf(z);
p_2 = 2(1 − Φ(|z|)), p_1 = 1 − Φ(z)
Betrouwbaarheidsinterval voor het verschil in conversiepercentages
d ± z_(α/2) × √(p̂_A(1 − p̂_A)/n_A + p̂_B(1 − p̂_B)/n_B)
d \pm z_{\alpha/2}\sqrt{\dfrac{\hat{p}_A(1-\hat{p}_A)}{n_A}+\dfrac{\hat{p}_B(1-\hat{p}_B)}{n_B}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>d</mi><mo>&#xB1;</mo>
    <msub><mi>z</mi><mrow><mi>&#x3B1;</mi><mo>/</mo><mn>2</mn></mrow></msub>
    <msqrt>
      <mfrac>
        <mrow><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub><mo>)</mo></mrow>
        <msub><mi>n</mi><mi>A</mi></msub>
      </mfrac>
      <mo>+</mo>
      <mfrac>
        <mrow><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub><mo>)</mo></mrow>
        <msub><mi>n</mi><mi>B</mi></msub>
      </mfrac>
    </msqrt>
  </mrow>
</math>
d +- z_(alpha/2) sqrt((hat(p)_A(1 - hat(p)_A))/n_A + (hat(p)_B(1 - hat(p)_B))/n_B)
seD = Sqrt[pA*(1 - pA)/nA + pB*(1 - pB)/nB]; {d - zHalf*seD, d + zHalf*seD}
seD := sqrt(pA*(1 - pA)/nA + pB*(1 - pB)/nB); [d - zHalf*seD, d + zHalf*seD];
seD = sqrt(pA*(1 - pA)/nA + pB*(1 - pB)/nB); ci = [d - zHalf*seD, d + zHalf*seD];
d ± z_(α/2) √(p̂_A(1 − p̂_A)/n_A + p̂_B(1 − p̂_B)/n_B)

Zo laat je ChatGPT  de berekening doen

Je bent een rekenassistent voor statistiek (hypothesetoetsen). Voer de volgende berekening uit door daadwerkelijk Python-code uit te voeren en baseer je antwoord alleen op de getallen uit het resultaat van de uitvoering (geef geen antwoord uit je hoofd of op basis van een gok).

De resultaten van de A/B-test zijn:
- Groep A: 10000 bezoekers, 200 conversies
- Groep B: 10000 bezoekers, 250 conversies
Bereken elk van de volgende punten:
1. Het conversiepercentage van elke groep (%), het verschil in conversiepercentage (procentpunten) en de relatieve uplift (%)
2. Het gepoolde conversiepercentage en de gepoolde standaardfout SE = √(p̂(1−p̂)(1/n_A + 1/n_B))
3. De z-score = verschil ÷ SE, en de tweezijdige en eenzijdige p-waarden (standaardnormale verdeling)
4. Of het verschil statistisch significant is bij een significantieniveau van 5% (tweezijdig)
5. Het 95%-betrouwbaarheidsinterval voor het verschil (met de standaardfout uit het conversiepercentage van elke groep, √(p̂_A(1−p̂_A)/n_A + p̂_B(1−p̂_B)/n_B))

Gebruik in Python math.erfc (of scipy.stats.norm) en laat de gebruikte formules en de getallen uit het resultaat van de uitvoering zien.

Zo werkt het
  1. 1
    Vul je getallen in
    Typ de getallen waarmee je wilt rekenen in de invoervelden
  2. 2
    Bereken
    Klik op de knop “Berekenen”
  3. 3
    Bekijk het resultaat
    Het resultaat verschijnt meteen. Op dezelfde pagina vind je ook de uitwerking van de berekening en de uitleg van de formule
  Kenmerken van DataChef
Eenvoudig en gratis
Onbeperkt gratis converteren
Geen voorkennis nodig – intuïtieve en eenvoudige bediening
Geen registratie nodig
Direct te gebruiken
Zonder persoonlijke gegevens op te geven
Veilig en betrouwbaar
Sterk versleutelde verbinding (SSL)
Bestand wordt automatisch verwijderd zodra je op "Downloaden" klikt
Snel
Snelle laadtijden en snelle conversie
Zonder watermerk
Geen watermerk
Geen bronvermelding vereist
Commercieel gebruik toegestaan
Gratis voor commercieel gebruik
Geen toestemming vooraf nodig