Lift, Signifikanz und Schutzprüfungen in SQL
Konversions-Lift berechnen und Datenprüfungen durchführen, die ein fehlerhaftes Experiment erkennen.
Lift, Signifikanz und Schutzprüfungen in SQL ist eine kostenlose SQL Interview Prep-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Interview Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Interview Prep-Kurs umfasst insgesamt 4 Lektionen.
Von Metriken zu einer Entscheidung
Die Conversion pro Variante ist nur der Anfang. Die Interviewfrage lautet: Hat die Treatment-Variante tatsächlich gewonnen? Dazu müssen Sie den Lift berechnen, beurteilen, ob der Unterschied real oder nur Zufall ist, und Guardrail-Metriken prüfen, die ein fehlerhaftes Experiment aufdecken.
Sie werden in SQL kein vollständiges Statistikpaket ausführen, können aber die Eingabewerte und ein grobes Signifikanzsignal berechnen, das Interviewer sehen möchten.
Die Zusammenfassungs-CTE pro Variante
Alles Weitere baut auf einer übersichtlichen Zusammenfassung auf: je Variante die Nutzerzahl n, die Zahl der Nutzer mit Conversion c und die Conversion-Rate p. Berechnen Sie sie einmal in einer CTE und verwenden Sie sie wieder.
WITH summary AS (
SELECT
variant,
COUNT(DISTINCT user_id) AS n,
COUNT(DISTINCT converted_user) AS c
FROM experiment_flat
GROUP BY variant
)
SELECT
variant, n, c,
1.0 * c / n AS p
FROM summary;Absoluter oder relativer Lift
Es gibt zwei Definitionen von Lift; standardmäßig erwarten Interviewer die relative Variante:
- Absoluter Lift = p_treatment - p_control (Prozentpunkte).
- Relativer Lift = (p_treatment - p_control) / p_control (prozentuale Verbesserung).
Eine Aussage wie "eine Steigerung um 2 Punkte" und "ein relativer Lift von 20 %" kann dasselbe Ergebnis beschreiben. Seien Sie eindeutig.
Lift mit einem Self-Pivot berechnen
Um zwei Varianten in einer Zeile zu vergleichen, holen Sie control und treatment mithilfe bedingter Aggregation nebeneinander und führen anschließend die Berechnung aus.
Das vermeidet einen fehleranfälligen Self-Join und hält die Lift-Formel übersichtlich.
WITH s AS (
SELECT variant,
COUNT(DISTINCT user_id) AS n,
COUNT(DISTINCT converted_user) AS c
FROM experiment_flat GROUP BY variant
),
rates AS (
SELECT
MAX(CASE WHEN variant='control' THEN 1.0*c/n END) AS p_ctrl,
MAX(CASE WHEN variant='treatment' THEN 1.0*c/n END) AS p_trt
FROM s
)
SELECT
p_ctrl, p_trt,
p_trt - p_ctrl AS abs_lift,
ROUND(100.0 * (p_trt - p_ctrl) / p_ctrl, 2) AS rel_lift_pct
FROM rates;Warum ein Unterschied Zufall sein kann
Eine höhere Conversion-Rate der Treatment-Variante könnte zufallsbedingtes Stichprobenglück sein. Bei der Signifikanz geht es um die Frage: Wie wahrscheinlich ist eine so große Abweichung, wenn die Varianten tatsächlich identisch wären?
Der entscheidende Bestandteil ist der Standardfehler jeder Rate, der mit wachsender Stichprobengröße kleiner wird. Große Stichproben machen kleine Lifts verlässlich; kleine Stichproben lassen selbst große Lifts fragwürdig erscheinen.
Standardfehler eines Anteils
Für eine Conversion-Rate p bei n Nutzern beträgt der Standardfehler sqrt(p * (1 - p) / n). Berechnen Sie ihn für jede Variante direkt in SQL.
Damit quantifizieren Sie die Schwankung jeder Rate, bevor Sie sie vergleichen.
WITH s AS (
SELECT variant,
COUNT(DISTINCT user_id) AS n,
COUNT(DISTINCT converted_user) AS c
FROM experiment_flat GROUP BY variant
)
SELECT
variant, n,
1.0 * c / n AS p,
SQRT( (1.0*c/n) * (1 - 1.0*c/n) / n ) AS std_err
FROM s;Ein z-Score für zwei Anteile
Ein grobes Signifikanzsignal ist der z-Score für zwei Anteile: die Differenz der Raten geteilt durch den Standardfehler dieser Differenz. Ein Betrag über etwa 1.96 entspricht dem üblichen Schwellenwert von 95 %.
Stellen Sie klar, dass dies eine Näherung und kein Ersatz für einen ordnungsgemäßen Test ist, aber die Frage "Ist dieser Unterschied plausibel real?" in SQL beantwortet.
WITH r AS (
SELECT
MAX(CASE WHEN variant='control' THEN 1.0*c/n END) AS p1,
MAX(CASE WHEN variant='control' THEN n END) AS n1,
MAX(CASE WHEN variant='treatment' THEN 1.0*c/n END) AS p2,
MAX(CASE WHEN variant='treatment' THEN n END) AS n2
FROM (
SELECT variant, COUNT(DISTINCT user_id) n,
COUNT(DISTINCT converted_user) c
FROM experiment_flat GROUP BY variant
) s
)
SELECT
p2 - p1 AS abs_lift,
(p2 - p1) / SQRT( p1*(1-p1)/n1 + p2*(1-p2)/n2 ) AS z_score
FROM r;Den z-Score interpretieren
Übersetzen Sie die Zahl in ein Urteil, damit der Interviewer nicht nur Mathematik, sondern auch Geschäftssinn erkennt:
|z| >= 1.96: Der Unterschied ist bei einem Konfidenzniveau von ungefähr 95 % signifikant.|z| < 1.96: Es gibt nicht genügend Belege; der Lift könnte Zufallsrauschen sein.
Verwenden Sie CASE, um ein verständliches Label auszugeben, und ordnen Sie die Signifikanz immer gemeinsam mit der praktischen Größe des Lifts ein.
SELECT
z_score,
CASE WHEN ABS(z_score) >= 1.96
THEN 'significant at 95%'
ELSE 'not significant' END AS verdict
FROM (
SELECT 2.3 AS z_score
) t;Sample Ratio Mismatch (SRM)
Die erste Guardrail-Prüfung, nach der Interviewer fragen: Haben sich die Nutzer tatsächlich wie vorgesehen aufgeteilt? Ein 50/50-Experiment, das bei Millionen von Nutzern bei 53/47 landet, ist ein Warnsignal – die Randomisierung oder Protokollierung ist fehlerhaft.
Vergleichen Sie die beobachteten Anzahlen mit der erwarteten Aufteilung. Eine große Abweichung macht den gesamten Test ungültig, bevor Sie überhaupt die Metrik betrachten.
WITH cnt AS (
SELECT variant, COUNT(DISTINCT user_id) AS n
FROM experiment_flat GROUP BY variant
),
tot AS (SELECT SUM(n) AS total FROM cnt)
SELECT
c.variant, c.n,
ROUND(100.0 * c.n / t.total, 2) AS observed_pct,
50.0 AS expected_pct
FROM cnt c CROSS JOIN tot t;Guardrail-Metriken
Eine Guardrail-Metrik darf nicht schlechter werden, selbst wenn sich die primäre Metrik verbessert. Klassische Guardrails sind Seitenlatenz, Rückerstattungsrate, Abmelderate und Fehlerrate.
Geben Sie sie pro Variante zusammen mit der Erfolgsmetrik aus. Eine Treatment-Variante, die die Conversion steigert, aber die Rückerstattungen verdoppelt, ist kein Erfolg. Wenn Sie Guardrails ungefragt berechnen, zeigt das Produktverständnis.
SELECT
variant,
AVG(load_ms) AS avg_latency_ms,
ROUND(100.0 * SUM(refunded) / COUNT(*), 2) AS refund_rate_pct,
ROUND(100.0 * SUM(errored) / COUNT(*), 2) AS error_rate_pct
FROM experiment_flat
GROUP BY variant;Die vollständige Auswertung
Eine vollständige Experimentauswertung, die Interviewer schätzen, vereint vier Dinge in einem Ergebnis: Raten pro Variante, relativen Lift, das Signifikanzurteil und die SRM-Prüfung. Bauen Sie die CTEs schrittweise auf und präsentieren Sie alles als eine einzige entscheidungsreife Tabelle.
Schließen Sie mit der Aussage: signifikant, Lift-Größe akzeptabel, Guardrails unauffällig, Aufteilung ausgewogen – daher ausrollen oder zurückhalten.
WITH s AS (
SELECT variant, COUNT(DISTINCT user_id) n,
COUNT(DISTINCT converted_user) c
FROM experiment_flat GROUP BY variant
),
r AS (
SELECT
MAX(CASE WHEN variant='control' THEN 1.0*c/n END) p1,
MAX(CASE WHEN variant='control' THEN n END) n1,
MAX(CASE WHEN variant='treatment' THEN 1.0*c/n END) p2,
MAX(CASE WHEN variant='treatment' THEN n END) n2
FROM s
)
SELECT
ROUND(100.0*(p2-p1)/p1, 2) AS rel_lift_pct,
CASE WHEN ABS((p2-p1)/SQRT(p1*(1-p1)/n1 + p2*(1-p2)/n2)) >= 1.96
THEN 'significant' ELSE 'not significant' END AS verdict,
CASE WHEN ABS(1.0*n2/(n1+n2) - 0.5) > 0.02
THEN 'SRM warning' ELSE 'split ok' END AS srm_check
FROM r;Schnelltest
Die Treatment-Variante zeigt einen relativen Lift von 25 %, aber jede Variante umfasst nur 40 Nutzer. Was ist die richtige Schlussfolgerung?
Zusammenfassung: Lift, Signifikanz und Guardrails
Sie können nun rohe Metriken pro Variante in eine Entscheidung umwandeln:
- Unterscheiden Sie zwischen absolutem (Punkt-)Lift und relativem (prozentualem) Lift.
- Berechnen Sie den Standardfehler jeder Rate und einen z-Score für zwei Anteile als grobes Signifikanzsignal (|z| >= 1.96 ~ 95%).
- Führen Sie die SRM-Prüfung durch, um zu bestätigen, dass die Aufteilung dem vorgesehenen Design entspricht.
- Geben Sie Guardrail-Metriken aus, damit ein Erfolg keine Verschlechterung anderer Kennzahlen verdeckt.
- Präsentieren Sie eine einzige entscheidungsreife Auswertung und stellen Sie die Signifikanz immer der praktischen Größe des Lifts gegenüber.
Damit ist die Funnel- und A/B-Test-Analyse in SQL abgeschlossen.
Häufig gestellte Fragen
Ist die Lektion „Lift, Signifikanz und Schutzprüfungen in SQL“ kostenlos?
Ja — der vollständige Text von „Lift, Signifikanz und Schutzprüfungen in SQL“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Interview Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Interview Prep-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Lift, Signifikanz und Schutzprüfungen in SQL“?
Konversions-Lift berechnen und Datenprüfungen durchführen, die ein fehlerhaftes Experiment erkennen. Du übst SQL Interview Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Interview Prep zu starten?
Keine Vorkenntnisse erforderlich. SQL Interview Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Lift, Signifikanz und Schutzprüfungen in SQL“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Interview Prep-Lektion Code schreiben und ausführen?
Ja. Jede SQL Interview Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Einen mehrstufigen Funnel erstellen
- Geordnete Ereignisse und Zeitfenster
- Zuweisung und Kennzahlen von A/B-Tests
- Lift, Signifikanz und Schutzprüfungen in SQL