Um den Stichprobenumfang zu berechnen, geben Sie die Basis-CVR, den MDE, das Signifikanzniveau und die Teststärke ein und klicken Sie auf „Berechnen“. Sie erhalten den Stichprobenumfang je Gruppe für A und B (aufgerundet) und die Summe, dazu die nötigen Tage, wenn Sie Ihre Besucher pro Tag eingeben. Stellen Sie „Gesucht“ auf Teststärke, um den Stichprobenumfang je Gruppe festzulegen und stattdessen die Teststärke 1 − β zu berechnen.
Inhaltsverzeichnis
-
Was Sie auf dieser Seite tun können
-
Wofür ist diese Berechnung nützlich?
-
Anleitung
-
Formeln und Abbildungen
-
Symbole und Begriffe
-
Was Sie vorab wissen sollten
-
Mit Excel berechnen
-
Mit Google Tabellen berechnen
-
Mit Python berechnen
-
Die Formel in LaTeX und anderen mathematischen Schreibweisen (zum Kopieren)
-
Die Berechnung von ChatGPT ausführen lassen
-
Die Vorteile von DataChef
-
Verwandte Funktionen
-
Alle NumberChef-Rechner
Was Sie auf dieser Seite tun können
- Geben Sie die Basis-CVR (die Conversion-Rate Ihrer aktuellen Version A), den minimal nachweisbaren Effekt (MDE, als relativen Prozentwert oder in Prozentpunkten), das Signifikanzniveau \(\alpha\) (zwei- oder einseitig) und die Teststärke \(1-\beta\) ein. Sie erhalten den Stichprobenumfang, den jede Gruppe Ihres A/B-Tests braucht (aufgerundet), und die Summe
- „Meine Seite konvertiert mit 3 %. Wie viele Besucher brauchen A und B jeweils, um eine Steigerung um 10 % (3 % auf 3,3 %) nachzuweisen?“ Diese Seite beantwortet die wichtigste Frage, die Sie vor dem Start eines Tests stellen sollten
- Geben Sie Ihre Besucher pro Tag ein (optional), um auch zu sehen, wie viele Tage es dauert, bis dieser Stichprobenumfang erreicht ist (aufgerundet)
- Können Sie pro Gruppe nur eine feste Zahl an Besuchern erreichen, legen Sie den Stichprobenumfang fest und berechnen die Teststärke \(1-\beta\) zurück (die Wahrscheinlichkeit, einen Unterschied zu finden, wenn es wirklich einen gibt)
- Ein Diagramm, wie sich der Stichprobenumfang mit dem MDE ändert, eine leicht verständliche Erklärung der Formeln sowie Formeln zum Kopieren für Excel, Google Tabellen und Python finden Sie ebenfalls auf dieser Seite
Wofür ist diese Berechnung nützlich?
Angenommen, die Produktseite eines Onlineshops konvertiert mit 2 %, und Sie möchten mit einem neuen Buttontext eine relative Steigerung um 10 % (2 % auf 2,2 %) nachweisen. Bei einem Signifikanzniveau von 5 % (zweiseitig) und 80 % Teststärke brauchen Sie etwa 80.682 Besucher pro Gruppe, insgesamt etwa 161.364.
Der Vergleich einiger Dutzend oder Hundert Besucher („B war letzte Woche besser“) kann einen zufälligen von einem echten Unterschied nicht trennen. Wer den Stichprobenumfang vor dem Start berechnet, verhindert, dass er Wochen für einen Test aufwendet, der keine Antwort liefern kann.
Eine Landingpage erhält Demo-Anfragen mit einer CVR von 5 %. Um eine Steigerung um 1 Punkt (5 % auf 6 %) nachzuweisen, brauchen Sie 8.158 Besucher pro Gruppe, insgesamt 16.316. Bei 300 Besuchen am Tag sind das \(16316 \div 300 \approx 54{,}4\), also 55 Tage oder 8 Wochen, wenn Sie die Wochentage ausgleichen möchten.
Verlangt jemand Ergebnisse in 2 Wochen, können Sie mit dieser Rechnung in Zahlen erklären: „In 2 Wochen (4.200 Besucher, 2.100 pro Gruppe) bräuchten wir einen deutlich größeren MDE, etwa 3 Punkte (5 % auf 8 %, das braucht 1.059 pro Gruppe).“
Hat Ihr Newsletter eine Öffnungsrate von 20 % und Sie möchten mit einer neuen Betreffzeile eine Steigerung um 2 Punkte (20 % auf 22 %) nachweisen, müssen Sie an 6.510 Personen pro Gruppe senden, insgesamt 13.020 (5 % Signifikanzniveau, 80 % Teststärke).
Eine Kennzahl mit hohem Anteil wie die Öffnungsrate braucht weniger Personen, um einen Unterschied zu zeigen, als eine CVR von wenigen Prozent. Das liegt am Teil \(p(1-p)\) der Formel: Dieselben „2 Punkte“ brauchen für jede Kennzahl einen anderen Stichprobenumfang.
Angenommen, ein Test, der auf eine relative Steigerung um 10 % bei einer Seite mit 3 % CVR zielte, lief mit 5.000 Besuchern pro Gruppe und zeigte „keinen signifikanten Unterschied“. Rechnen Sie die Teststärke zurück, sind es nur etwa 13,5 %. Der Test war so angelegt, dass er eine echte Verbesserung in mehr als 8 von 10 Fällen übersieht.
Die richtige Schlussfolgerung lautet hier nicht „es hatte keine Wirkung“, sondern „dieser Stichprobenumfang konnte es nicht erkennen“. Wer die Teststärke zurückrechnet, liest einen Test nicht falsch und wirft keine gute Idee weg.
Eine App hat eine Next-Day-Retention von 40 %. Um mit einem neuen Tutorial eine relative Steigerung um 10 % (40 % auf 44 %) nachzuweisen, genügen etwa 2.389 neue Nutzer pro Gruppe, insgesamt etwa 4.778 (5 % Signifikanzniveau, 80 % Teststärke).
Eine Kennzahl nahe 50 %, etwa die Retention, hat eine große Streuung, aber auch die Differenz der Anteile (4 Punkte) ist groß, sodass Ergebnisse schneller vorliegen als bei einem Test auf eine CVR von wenigen Prozent. Den Stichprobenumfang je Kennzahl zu schätzen, hilft auch bei der Entscheidung, welche Verbesserung Sie zuerst angehen.
Bei einem Test, bei dem das Übersehen einer guten Idee teuer wäre, etwa bei einer geänderten Preisdarstellung, können Sie die Teststärke von 80 % auf 90 % erhöhen. Bei einer CVR von 3 % und einer relativen Steigerung um 10 % steigt der Stichprobenumfang je Gruppe von 53.211 auf 71.233 (etwa das 1,34-Fache).
Diese Rechnung zeigt genau, wie viele Besucher mehr es braucht, um die Fehlerquote beim Übersehen zu halbieren (von 20 % auf 10 %), sodass Sie Stichprobenumfang und Testdauer an die Bedeutung des Tests anpassen können.
Formeln und Abbildungen
Symbole und Begriffe
Symbole
| \(p_1\) | p Index 1 | Die Basis-CVR (die Conversion-Rate der aktuellen Version A). \(p\) steht für Anteil (proportion) oder Wahrscheinlichkeit (probability). In den Formeln werden 3 % als Dezimalzahl 0,03 geschrieben. |
| \(p_2\) | p Index 2 | Die Ziel-CVR (die Conversion-Rate, die Version B erreichen soll). Sie ist \(p_1 (1 + r/100)\) bei einem relativen Prozentwert und \(p_1 + d\) bei Prozentpunkten. |
| \(\bar{p}\) | p quer | Der Durchschnitt der beiden CVRs, \((p_1 + p_2) \div 2\). Es ist die gemeinsame CVR, die Sie annehmen, wenn es keinen Unterschied gibt. In der Statistik kennzeichnet der Balken oben einen Durchschnitt. |
| \(r\) | r | Der als relativer Prozentwert angegebene MDE. Er steht für ratio (Verhältnis) und sagt, um wie viel Prozent sich die Basis-CVR verbessert (3 % auf 3,3 % ergibt \(r = 10\)). |
| \(d\) | d | Der in Prozentpunkten angegebene MDE. Er steht für difference (Differenz) und ist die reine Differenz der CVR (3 % auf 3,3 % ergibt \(d = 0{,}3\) Punkte). |
| \(p_2 - p_1\) | p2 minus p1 | Die nachzuweisende Differenz, in Prozentpunkten als Dezimalzahl geschrieben (0,3 Punkte sind 0,003). Der Stichprobenumfang wird durch ihr Quadrat geteilt, je kleiner die Differenz, desto schneller wächst er also. |
| \(\alpha\) | Alpha | Das Signifikanzniveau: die Wahrscheinlichkeit, eine Differenz als real zu werten, obwohl es keine gibt (die Wahrscheinlichkeit eines Fehlers 1. Art). Üblich sind 5 % (0,05). Alpha ist der erste griechische Buchstabe und wird in der Statistik für die Wahrscheinlichkeit der „ersten“ Fehlerart verwendet. |
| \(\beta\) | Beta | Die Wahrscheinlichkeit, einen Unterschied zu übersehen, der wirklich vorhanden ist (die Wahrscheinlichkeit eines Fehlers 2. Art). Beta ist der zweite griechische Buchstabe und wird für die Wahrscheinlichkeit der „zweiten“ Fehlerart verwendet. |
| \(1-\beta\) | eins minus Beta | Die Teststärke: die Wahrscheinlichkeit, einen Unterschied zu finden, wenn es wirklich einen gibt. Üblich sind 80 % oder 90 %. |
| \(z_{\alpha/2}\) | z Alpha halbe | Der z-Wert zum Signifikanzniveau \(\alpha\) bei einem zweiseitigen Test (der Punkt, über dem \(\alpha/2\) der Standard-Normalverteilung liegen). Er beträgt 1,9600 bei 5 %, 2,5758 bei 1 % und 1,6449 bei 10 %. Ein einseitiger Test verwendet stattdessen \(z_{\alpha}\) (1,6449 bei 5 %). |
| \(z_{\beta}\) | z Beta | Der z-Wert zur Teststärke \(1-\beta\) (der Punkt, unter dem die Wahrscheinlichkeit \(1-\beta\) der Standard-Normalverteilung liegt). Er beträgt 0,8416 bei 80 % und 1,2816 bei 90 %. |
| \(z_{1-\beta}\) | z eins minus Beta | In der Formel für die Teststärke der aus dem Stichprobenumfang zurückgerechnete z-Wert. Setzen Sie ihn in \(\Phi\) ein, erhalten Sie die Teststärke. (Es ist dasselbe wie \(z_{\beta}\), nur aus Sicht des gesuchten Werts geschrieben.) |
| \(\Phi\) | Phi | Die Verteilungsfunktion der Standard-Normalverteilung. Sie liefert die Wahrscheinlichkeit, dass ein z-Wert höchstens so groß ist wie ein vorgegebener Wert: \(\Phi(1{,}96) \approx 0{,}975\) und \(\Phi(0{,}8416) \approx 0{,}80\). Der griechische Großbuchstabe Phi ist das übliche Symbol für diese Funktion. |
| \(n\) | n | Der Stichprobenumfang je Gruppe (für Version A und Version B jeweils). Er steht für number (Anzahl). Die Summe für A und B ist \(2n\). |
| \(\sqrt{\ \ }\) | Wurzel | Die Quadratwurzel: die positive Zahl, die quadriert die Zahl darin ergibt, zum Beispiel \(\sqrt{30000} \approx 173{,}205\). Sie taucht auf, wenn man die Streuung (Standardabweichung) einer CVR bestimmt. |
| \(V\) | V | Besucher pro Tag (alle Besuche der getesteten Seite, A und B zusammen). Es steht für visits (Besuche). |
| \(D\) | D | Die nötigen Tage. Es steht für days (Tage). |
| \(\lceil\ \rceil\) | Aufrunden | Das Symbol für das Aufrunden (die Aufrundungsfunktion). Sie liefert die kleinste ganze Zahl, die größer oder gleich der Zahl darin ist (\(\lceil 53{,}211 \rceil = 54\)). |
Begriffe
| A/B-Test | Ein Experiment, bei dem Besucher im selben Zeitraum zufällig auf die aktuelle Version (A) und eine neue Version (B) aufgeteilt werden, um zu sehen, welche besser abschneidet (zum Beispiel eine höhere CVR hat). Damit prüfen Sie mit Daten statt mit Bauchgefühl, ob eine Änderung wie eine Buttonfarbe, eine Überschrift, die Darstellung eines Preises oder das Layout einer Landingpage wirklich hilft. |
| CVR (Conversion-Rate) | Der Anteil der Besucher oder Klicks, der in einer Zielhandlung endet (einer Conversion), etwa einem Kauf oder einer Anmeldung. In den Formeln auf dieser Seite ist die CVR der Version A \(p_1\) und die der Version B \(p_2\). |
| MDE (minimal nachweisbarer Effekt) | Die kleinste Steigerung, die Sie nachweisen können wollen. Es ist der erste Wert, den Sie bei der Planung eines A/B-Tests festlegen. Je kleiner er ist, desto schneller wächst der Stichprobenumfang (er ist umgekehrt proportional zum Quadrat der Differenz), wählen Sie also die kleinste Steigerung, die für Ihr Geschäft eine Rolle spielt. |
| Signifikanzniveau | Die Wahrscheinlichkeit \(\alpha\) für den Fehler, den Sie hinnehmen - einen zufälligen Unterschied sehen und ihn als real werten, obwohl es keinen gibt. 5 % sind üblich, das lässt einen Fehlalarm etwa 1-mal in 20 zu. Ein strengeres Niveau (1 %) braucht einen größeren Stichprobenumfang. |
| Teststärke (Power) | Die Wahrscheinlichkeit \(1-\beta\), einen Unterschied zu finden, wenn es wirklich einen gibt. 80 % sind üblich, das nimmt in Kauf, eine echte Steigerung etwa 1-mal in 5 zu übersehen. Meldet ein Test mit geringer Teststärke „kein Unterschied“, ist das kein Beleg dafür, dass es keinen Unterschied gibt. |
| Fehler 1. Art | Der Fehler, eine Differenz als real zu werten, obwohl es keine gibt (ein falsch positives Ergebnis). Die Wahrscheinlichkeit, die Sie dafür zulassen, ist das Signifikanzniveau \(\alpha\). Er ist die Kehrseite eines Fehlers 2. Art (eines Übersehens): Drückt man den einen, steigt tendenziell der andere. Der grundlegendste Weg, beide klein zu halten, ist ein größerer Stichprobenumfang. |
| Fehler 2. Art | Der Fehler, einen Unterschied zu übersehen, der wirklich vorhanden ist (ein falsch negatives Ergebnis). Seine Wahrscheinlichkeit ist \(\beta\), und \(1-\beta\) ist die Teststärke. Er ist die Kehrseite eines Fehlers 1. Art (eines Fehlalarms): Drückt man den einen, steigt tendenziell der andere. Der grundlegendste Weg, beide klein zu halten, ist ein größerer Stichprobenumfang. |
| Nullhypothese | Die Hypothese „die Versionen A und B haben dieselbe CVR“, die der Test widerlegen will. Der Test fragt, wie ungewöhnlich die Daten wären, wenn die Nullhypothese stimmte. Sind sie ungewöhnlich genug, wird die Nullhypothese verworfen, und das Ergebnis lautet „ein Unterschied“. |
| Alternativhypothese | Die Hypothese „die Versionen A und B haben unterschiedliche CVRs“, die der Test zeigen will. Sie wird angenommen, wenn die Nullhypothese (kein Unterschied) verworfen wird. |
| zweiseitiger Test | Ein Test, der sowohl „B ist höher“ als auch „B ist niedriger“ als Unterschied zählt. Er wird bei einem normalen A/B-Test verwendet, bei dem Sie nicht wissen, in welche Richtung es geht. Er braucht einen größeren Stichprobenumfang als ein einseitiger Test, erfasst aber auch, wenn B schlechter abschneidet. |
| einseitiger Test | Ein Test, der nur nach „B ist höher“ sucht. Er braucht einen kleineren Stichprobenumfang als ein zweiseitiger Test, kann aber nicht erfassen, wenn B schlechter abschneidet, deshalb müssen Sie ihn vor dem Start des Tests wählen. (Nach dem Blick auf die Ergebnisse auf einseitig umzustellen, ist nicht zulässig.) |
| z-Test für zwei Anteile | Ein Test, der prüft, ob sich zwei Gruppen in einem Anteil (etwa der CVR) unterscheiden, mit einem z-Wert (der standardisierten Differenz) und der Standard-Normalverteilung. Die Formeln auf dieser Seite bestimmen den Stichprobenumfang für diesen Test. Die Normalapproximation funktioniert, wenn jede Gruppe genügend Conversions hat (als Faustregel mindestens 5 bis 10). |
| Standard-Normalverteilung | Die Normalverteilung mit Mittelwert 0 und Standardabweichung 1 (eine symmetrische Glockenform). Ein z-Wert ist ein Punkt auf ihrer horizontalen Achse, und jedem z-Wert entspricht genau eine Wahrscheinlichkeit, etwa „die Fläche rechts von 1,96 beträgt 2,5 %“. |
| Verteilungsfunktion | Eine Funktion, die die Wahrscheinlichkeit liefert, einen vorgegebenen Wert oder weniger zu erhalten. Die der Standard-Normalverteilung wird \(\Phi\) geschrieben und steht am Ende der Formel für die Teststärke. In Excel ist es NORM.S.VERT (mit WAHR als zweitem Argument), in Python NormalDist().cdf. |
| Standardabweichung (Streuung) | Wie stark Daten streuen. Die Streuung eines Anteils \(p\) ist proportional zu \(\sqrt{p(1-p)}\). Die beiden Wurzelausdrücke in den Formeln sind die Streuung der Differenz zwischen den CVRs der beiden Gruppen. |
| multiples Testen | Mehrere B-Versionen oder mehrere Kennzahlen gleichzeitig vergleichen. Je mehr Vergleiche, desto wahrscheinlicher sieht mindestens einer zufällig signifikant aus, daher ist eine Anpassung nötig, etwa das Signifikanzniveau durch die Zahl der Vergleiche zu teilen (die Bonferroni-Korrektur). |
| Peeking (vorzeitiger Abbruch) | Die Ergebnisse immer wieder ansehen, bevor der nötige Stichprobenumfang erreicht ist, und abbrechen, sobald das Ergebnis signifikant aussieht. Dadurch werden zufällige Unterschiede leicht erwischt, und ein Test mit gedachten 5 % Signifikanzniveau liegt in Wahrheit weit öfter falsch. Die Formeln auf dieser Seite setzen voraus, dass Sie den Stichprobenumfang zuerst festlegen und warten, bis Sie ihn erreichen. |
Was Sie vorab wissen sollten
Hier steht, was Ihnen hilft, die Berechnung auf dieser Seite mit echtem Verständnis zu nutzen, statt nur auf die Schaltfläche zu klicken.
Wenn Sie nicht weiterkommen, ist das Wiederholen dieser Themen der schnellste Weg.
| Prozente (Klasse 6–7, 11–13 Jahre) |
|
| Wurzeln (Klasse 8–9, 13–15 Jahre) |
|
| Stochastik-Basics (Klasse 7 bis Sek. II) |
|
| Normalverteilung, z-Werte (Sek. II) |
|
| Testlogik (Sek. II oder Grundstudium) |
|
| Aufrunden (Klasse 4, 9–10 Jahre) |
|
Mit Excel berechnen
| Basis-CVR p1 (%) | 3 |
| Relative Steigerung r (%) | 10 |
| Ziel-CVR p2 (%) | =B1*(1+B2/100) |
| Basis-CVR p1 (%) | 3 |
| Ziel-CVR p2 (%) | 3,3 |
| Signifikanzniveau α (%, zweiseitig) | 5 |
| Teststärke 1−β (%) | 80 |
| z_α/2 | =NORM.S.INV(1-B3/100/2) |
| z_β | =NORM.S.INV(B4/100) |
| Durchschnittliche CVR p̄ | =(B1+B2)/2/100 |
| Stichprobenumfang je Gruppe n (aufgerundet) | =AUFRUNDEN((B5*WURZEL(2*B7*(1-B7))+B6*WURZEL(B1/100*(1-B1/100)+B2/100*(1-B2/100)))^2/((B2-B1)/100)^2;0) |
| Stichprobenumfang je Gruppe n | 53211 |
| Besucher pro Tag V (A + B zusammen) | 2000 |
| Nötige Tage D (aufgerundet) | =AUFRUNDEN(2*B1/B2;0) |
| Basis-CVR p1 (%) | 3 |
| Ziel-CVR p2 (%) | 3,3 |
| Signifikanzniveau α (%, zweiseitig) | 5 |
| Stichprobenumfang je Gruppe n | 30000 |
| z_α/2 | =NORM.S.INV(1-B3/100/2) |
| Durchschnittliche CVR p̄ | =(B1+B2)/2/100 |
| z_1−β | =(ABS(B2-B1)/100*WURZEL(B4)-B5*WURZEL(2*B6*(1-B6)))/WURZEL(B1/100*(1-B1/100)+B2/100*(1-B2/100)) |
| Teststärke 1−β (%) | =NORM.S.VERT(B7;WAHR)*100 |
Die erste Tabelle zeigt in B3 den Wert 3,3 (eine Ziel-CVR von 3,3 %), die zweite in B8 den Wert 53211 (den Stichprobenumfang je Gruppe), die dritte in B3 den Wert 54 (die nötigen Tage) und die vierte in B8 etwa 55,71 (eine Teststärke von 55,71 %).
NORM.S.INV macht aus einer Wahrscheinlichkeit einen z-Wert, und NORM.S.VERT (mit WAHR als zweitem Argument) macht aus einem z-Wert eine Wahrscheinlichkeit. Für einen einseitigen Test löschen Sie das „/2“ in der Formel für z_α/2, sodass sie =NORM.S.INV(1-B3/100) lautet. AUFRUNDEN(…;0) rundet auf.
Mit Google Tabellen berechnen
| Basis-CVR p1 (%) | 3 |
| Relative Steigerung r (%) | 10 |
| Ziel-CVR p2 (%) | =B1*(1+B2/100) |
| Basis-CVR p1 (%) | 3 |
| Ziel-CVR p2 (%) | 3,3 |
| Signifikanzniveau α (%, zweiseitig) | 5 |
| Teststärke 1−β (%) | 80 |
| z_α/2 | =NORM.S.INV(1-B3/100/2) |
| z_β | =NORM.S.INV(B4/100) |
| Durchschnittliche CVR p̄ | =(B1+B2)/2/100 |
| Stichprobenumfang je Gruppe n (aufgerundet) | =AUFRUNDEN((B5*WURZEL(2*B7*(1-B7))+B6*WURZEL(B1/100*(1-B1/100)+B2/100*(1-B2/100)))^2/((B2-B1)/100)^2;0) |
| Stichprobenumfang je Gruppe n | 53211 |
| Besucher pro Tag V (A + B zusammen) | 2000 |
| Nötige Tage D (aufgerundet) | =AUFRUNDEN(2*B1/B2;0) |
| Basis-CVR p1 (%) | 3 |
| Ziel-CVR p2 (%) | 3,3 |
| Signifikanzniveau α (%, zweiseitig) | 5 |
| Stichprobenumfang je Gruppe n | 30000 |
| z_α/2 | =NORM.S.INV(1-B3/100/2) |
| Durchschnittliche CVR p̄ | =(B1+B2)/2/100 |
| z_1−β | =(ABS(B2-B1)/100*WURZEL(B4)-B5*WURZEL(2*B6*(1-B6)))/WURZEL(B1/100*(1-B1/100)+B2/100*(1-B2/100)) |
| Teststärke 1−β (%) | =NORM.S.VERT(B7;WAHR)*100 |
Mit Python berechnen
from math import sqrt, ceil
from statistics import NormalDist
base_cvr = 3.0 # Basis-CVR (%)
relative_mde = 10.0 # nachzuweisender MDE (relativer Prozentwert)
alpha = 0.05 # Signifikanzniveau (zweiseitig)
power = 0.80 # Teststärke
daily_visits = 2000 # Besucher pro Tag (A + B zusammen)
p1 = base_cvr / 100
p2 = p1 * (1 + relative_mde / 100) # Ziel-CVR
z_alpha = NormalDist().inv_cdf(1 - alpha / 2) # bei einseitigem Test 1 - alpha verwenden
z_beta = NormalDist().inv_cdf(power)
p_bar = (p1 + p2) / 2
n_exact = (z_alpha * sqrt(2 * p_bar * (1 - p_bar))
+ z_beta * sqrt(p1 * (1 - p1) + p2 * (1 - p2))) ** 2 / (p2 - p1) ** 2
n_per_group = ceil(n_exact) # Stichprobenumfang je Gruppe (aufgerundet)
days = ceil(2 * n_per_group / daily_visits) # nötige Tage
print(f"Ziel-CVR: {p2 * 100:.4g} %")
print(f"Stichprobenumfang je Gruppe: {n_per_group} (insgesamt {2 * n_per_group})")
print(f"Nötige Tage: {days}")
# Umgekehrt gerechnet: Teststärke bei 30.000 Besuchern pro Gruppe
n_fixed = 30000
z_power = (abs(p2 - p1) * sqrt(n_fixed) - z_alpha * sqrt(2 * p_bar * (1 - p_bar))) \
/ sqrt(p1 * (1 - p1) + p2 * (1 - p2))
print(f"Teststärke bei {n_fixed} pro Gruppe: {NormalDist().cdf(z_power) * 100:.2f} %")
Die Formel in LaTeX und anderen mathematischen Schreibweisen (zum Kopieren)
p₂ = p₁ × (1 + r/100)
p_2 = p_1 \left(1 + \dfrac{r}{100}\right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>p</mi><mn>2</mn></msub>
<mo>=</mo>
<msub><mi>p</mi><mn>1</mn></msub>
<mo>(</mo><mn>1</mn><mo>+</mo><mfrac><mi>r</mi><mn>100</mn></mfrac><mo>)</mo>
</mrow>
</math>
p_2 = p_1 (1 + r/100)
p1*(1 + r/100)
p2 := p1*(1 + r/100);
p2 = p1*(1 + r/100);
p_2 = p_1 (1 + r/100)
n = (z_α/2 √(2p̄(1 − p̄)) + z_β √(p₁(1 − p₁) + p₂(1 − p₂)))² ÷ (p₂ − p₁)²
n = \dfrac{\left( z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})} + z_{\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)} \right)^2}{(p_2 - p_1)^2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>n</mi>
<mo>=</mo>
<mfrac>
<msup>
<mrow>
<mo>(</mo>
<msub><mi>z</mi><mrow><mi>α</mi><mo>/</mo><mn>2</mn></mrow></msub>
<msqrt><mn>2</mn><mover><mi>p</mi><mo>¯</mo></mover><mo>(</mo><mn>1</mn><mo>−</mo><mover><mi>p</mi><mo>¯</mo></mover><mo>)</mo></msqrt>
<mo>+</mo>
<msub><mi>z</mi><mi>β</mi></msub>
<msqrt>
<msub><mi>p</mi><mn>1</mn></msub><mo>(</mo><mn>1</mn><mo>−</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo>
<mo>+</mo>
<msub><mi>p</mi><mn>2</mn></msub><mo>(</mo><mn>1</mn><mo>−</mo><msub><mi>p</mi><mn>2</mn></msub><mo>)</mo>
</msqrt>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<msup>
<mrow><mo>(</mo><msub><mi>p</mi><mn>2</mn></msub><mo>−</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo></mrow>
<mn>2</mn>
</msup>
</mfrac>
</mrow>
</math>
n = (z_(alpha/2) sqrt(2 bar p (1 - bar p)) + z_beta sqrt(p_1(1 - p_1) + p_2(1 - p_2)))^2 / (p_2 - p_1)^2
Ceiling[(za*Sqrt[2*pbar*(1 - pbar)] + zb*Sqrt[p1*(1 - p1) + p2*(1 - p2)])^2/(p2 - p1)^2]
n := ceil((za*sqrt(2*pbar*(1 - pbar)) + zb*sqrt(p1*(1 - p1) + p2*(1 - p2)))^2/(p2 - p1)^2);
n = ceil((za*sqrt(2*pbar*(1 - pbar)) + zb*sqrt(p1*(1 - p1) + p2*(1 - p2)))^2/(p2 - p1)^2);
n = (z_(α/2) √(2p̄(1 − p̄)) + z_β √(p_1(1 − p_1) + p_2(1 − p_2)))^2/(p_2 − p_1)^2
D = ⌈2n ÷ V⌉
D = \left\lceil \dfrac{2n}{V} \right\rceil
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>D</mi>
<mo>=</mo>
<mo>⌈</mo>
<mfrac><mrow><mn>2</mn><mi>n</mi></mrow><mi>V</mi></mfrac>
<mo>⌉</mo>
</mrow>
</math>
D = |~ (2n)/V ~|
Ceiling[2*n/v]
days := ceil(2*n/V);
D = ceil(2*n/V);
D = ⌈2n/V⌉
1 − β = Φ((|p₂ − p₁|√n − z_α/2 √(2p̄(1 − p̄))) ÷ √(p₁(1 − p₁) + p₂(1 − p₂)))
1 - \beta = \Phi\left( \dfrac{|p_2 - p_1|\sqrt{n} - z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}}{\sqrt{p_1(1-p_1)+p_2(1-p_2)}} \right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mn>1</mn><mo>−</mo><mi>β</mi>
<mo>=</mo>
<mi>Φ</mi>
<mo>(</mo>
<mfrac>
<mrow>
<mo>|</mo><msub><mi>p</mi><mn>2</mn></msub><mo>−</mo><msub><mi>p</mi><mn>1</mn></msub><mo>|</mo>
<msqrt><mi>n</mi></msqrt>
<mo>−</mo>
<msub><mi>z</mi><mrow><mi>α</mi><mo>/</mo><mn>2</mn></mrow></msub>
<msqrt><mn>2</mn><mover><mi>p</mi><mo>¯</mo></mover><mo>(</mo><mn>1</mn><mo>−</mo><mover><mi>p</mi><mo>¯</mo></mover><mo>)</mo></msqrt>
</mrow>
<msqrt>
<msub><mi>p</mi><mn>1</mn></msub><mo>(</mo><mn>1</mn><mo>−</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo>
<mo>+</mo>
<msub><mi>p</mi><mn>2</mn></msub><mo>(</mo><mn>1</mn><mo>−</mo><msub><mi>p</mi><mn>2</mn></msub><mo>)</mo>
</msqrt>
</mfrac>
<mo>)</mo>
</mrow>
</math>
1 - beta = Phi((|p_2 - p_1| sqrt(n) - z_(alpha/2) sqrt(2 bar p (1 - bar p))) / sqrt(p_1(1 - p_1) + p_2(1 - p_2)))
CDF[NormalDistribution[0, 1], (Abs[p2 - p1]*Sqrt[n] - za*Sqrt[2*pbar*(1 - pbar)])/Sqrt[p1*(1 - p1) + p2*(1 - p2)]]
power := Statistics[CDF](Normal(0, 1), (abs(p2 - p1)*sqrt(n) - za*sqrt(2*pbar*(1 - pbar)))/sqrt(p1*(1 - p1) + p2*(1 - p2)));
power = normcdf((abs(p2 - p1)*sqrt(n) - za*sqrt(2*pbar*(1 - pbar)))/sqrt(p1*(1 - p1) + p2*(1 - p2)));
1 − β = Φ((|p_2 − p_1| √n − z_(α/2) √(2p̄(1 − p̄)))/√(p_1(1 − p_1) + p_2(1 − p_2)))
Die Berechnung von ChatGPT ausführen lassen
Sie sind ein Assistent für die Planung von A/B-Tests. Führen Sie die folgende Berechnung tatsächlich mit Python-Code aus und stützen Sie Ihre Antwort nur auf die Zahlen aus dem Ergebnis der Ausführung (antworten Sie nicht per Kopfrechnen oder Schätzen).
Die CVR der aktuellen Seite (die Basis-CVR) beträgt 3 %. Ich möchte mit Version B eine relative Steigerung um 10 % (eine CVR von 3,3 %) nachweisen können.
Bei einem Signifikanzniveau von 5 % (zweiseitiger Test) und 80 % Teststärke berechnen Sie jeweils:
1. Die Ziel-CVR p2 (p2 = p1 × (1 + 10/100))
2. Den Stichprobenumfang je Gruppe n (Formel des z-Tests für zwei Anteile: n = (z_{α/2}·√(2p̄(1−p̄)) + z_β·√(p1(1−p1)+p2(1−p2)))² ÷ (p2−p1)², mit p̄ = (p1+p2)/2, aufgerundet) und den gesamten Stichprobenumfang für A und B
3. Die nötigen Tage (aufgerundet) bei 2.000 Besuchern pro Tag (A und B zusammen)
4. Die Teststärke, wenn nur 30.000 Besucher pro Gruppe verfügbar sind (1−β = Φ((|p2−p1|·√n − z_{α/2}·√(2p̄(1−p̄))) ÷ √(p1(1−p1)+p2(1−p2))))
Verwenden Sie statistics.NormalDist für die z-Werte und die Verteilungsfunktion und zeigen Sie die verwendeten Formeln und die Zahlen aus dem Ergebnis der Ausführung.
Anleitung
-
1Zahlen eingebenGeben Sie die Zahlen, mit denen Sie rechnen möchten, in die Eingabefelder ein
-
2BerechnenKlicken Sie auf die Schaltfläche „Berechnen“
-
3Ergebnis ablesenDas Ergebnis erscheint sofort. Auf derselben Seite finden Sie auch den Rechenweg und die Erklärung der Formel
Die Vorteile von DataChef
Kein Fachwissen nötig – einfach und intuitiv
Keine persönlichen Daten erforderlich
Die Datei wird nach dem Download automatisch gelöscht
Keine Quellenangabe nötig
Keine vorherige Genehmigung erforderlich
