Zum Inhalt
wannacode

Korrelation und Ursache

Kurz gesagt: Korrelation zeigt, dass zwei Dinge sich gemeinsam bewegen, nicht dass das eine das andere verursacht; eine dritte Ursache oder das Simpson-Paradoxon kann die Schlussfolgerung umdrehen.

Problem

„Das Banner hebt die Bestellungen“

Das Marketing hat ein Banner „Kostenlose Lieferung“ aufgehängt. Es war kein Test: Das Banner wurde nach jemandes Ermessen gezeigt. Das Log hat 10.000 Besuche: das Gerät, ob das Banner gesehen wurde (saw_banner), ob es eine Bestellung gab:

PythonDaten: die Tabellen des Shops

Mit dem Banner bestellen 5,66 % der Besuche, ohne es 3,63 %. Das Marketing will es allen zeigen: Der Abstand beträgt 2 Punkte, und mit dem Banner gibt es 56 % mehr Bestellungen.

Aber verursacht das Banner das?

Die Idee

Wer hat das Banner gesehen?

Bevor du dem Abstand traust, schau, wer in jeder Gruppe ist:

PythonDaten: die Tabellen des Shops

Von 3.000 Besuchen von einem Desktop haben 2.400 das Banner gesehen. Von 7.000 vom Handy nur 1.400. Und Desktops bestellen ohnehin öfter: 7,70 % gegenüber 2,99 %.

Die Gruppe „mit Banner“ ist voller Desktops, die Gruppe „ohne Banner“ voller Handys. Du vergleichst also nicht Banner mit keinem Banner, sondern vor allem Desktop mit Handy. Das Gerät ist ein Störfaktor (Confounder): Es beeinflusst sowohl, wer das Banner sieht, als auch, wer bestellt.

Die Idee

Nach Gerät aufteilen

Vergleiche das Banner innerhalb jedes Geräts. Dann ist das Gerät auf beiden Seiten dasselbe:

PythonDaten: die Tabellen des Shops

Auf dem Desktop bestellen 7,50 % mit dem Banner, 8,50 % ohne. Auf dem Handy 2,50 % gegenüber 3,11 %. Das Banner schneidet auf beiden Geräten schlechter ab, während es insgesamt besser aussah. Das heißt Simpson-Paradoxon: Die Richtung für alle zusammen ist das Gegenteil der Richtung in jeder Gruppe.

Genauer, für Neugierige

Auf jedem Gerät für sich liegt der Unterschied im Rauschen: 600 Desktop-Besuche ohne das Banner sind wenige.

PythonDaten: die Tabellen des Shops

Die ehrliche Schlussfolgerung lautet also nicht „das Banner schadet“, sondern „es gibt keinen Beleg dafür, dass das Banner hilft“. Die entgegengesetzte Richtung insgesamt kommt ganz aus der Mischung der Geräte.

Probier es aus

Das Paradoxon berechnen

Speichere in gap die Differenz der Konversion mit Banner − ohne Banner für jedes Gerät, in Punkten, und in overall_gap dieselbe Differenz für alle Besuche zusammen.

PythonDaten: die Tabellen des Shops

Die Idee

Warum die Summe kippt

Die Gesamtkonversion einer Gruppe ist ein Durchschnitt der Geräte, gewichtet danach, wie viele Besuche von jedem Gerät in der Gruppe sind:

PythonDaten: die Tabellen des Shops

Mit dem Banner kommen 63 % der Besuche von einem Desktop, ohne es nur 10 %. Die Bannergruppe bekommt also viel von der hohen Konversion der Desktops: (180 + 35) Bestellungen aus 3.800 Besuchen sind 5,66 %. Die Gruppe ohne das Banner besteht fast nur aus Handys: (51 + 174) aus 6.200 sind 3,63 %.

Der Gesamtabstand kommt nicht vom Banner. Er kommt davon, wo das Banner gezeigt wurde: dort, wo die Leute ohnehin mehr bestellen.

Die Idee

Korrelation: corr

Derselbe Fehler lauert in den Zahlen für das Jahr. Hier sind die verkauften Stück pro Woche: Getränke (Mineralwasser und Orangensaft) und Gemüse (Tomaten und Gurken). Wie sehr gehen sie zusammen?

PythonDaten: die Tabellen des Shops

Die Korrelation ist eine Zahl von −1 bis 1. Nah an 1: Ist das eine groß, ist auch das andere groß, und die Punkte liegen um eine ansteigende Linie. Um 0: Es gibt keinen solchen Zusammenhang. Nah an −1: Das eine wächst, das andere fällt. a.corr(b) berechnet sie, und df.corr() gibt alle Spaltenpaare auf einmal.

Hier ist sie 0,46: In den Wochen mit mehr Gemüse werden auch mehr Getränke verkauft. Heißt das, Gemüse verkauft Getränke?

Die Idee

Das dritte Ding: die Jahreszeit

Teile die Wochen in Sommer (Juni bis August) und den Rest:

PythonDaten: die Tabellen des Shops

Im Sommer werden im Mittel 121,6 Getränke und 68,2 Gemüse pro Woche verkauft, in der übrigen Zeit 81,5 und 38,5. Der Sommer hebt beides. Innerhalb des Sommers ist die Korrelation aber −0,13, und in den anderen Wochen −0,15: etwa null. Der Zusammenhang kommt von der Jahreszeit, nicht vom Gemüse.

1. In den Wochen, in denen mehr Tomaten verkauft werden, wird auch mehr Mineralwasser verkauft. Ein Kollege schlägt vor: „Fahren wir die Tomaten zurück, um mehr Wasser zu verkaufen.“ Was übersieht er?

Die Idee

Warum der A/B-Test anders ist

In der vorigen Lektion war der neue Warenkorb besser, und das war eine Ursache, nicht nur ein Zusammenhang. Der Unterschied zum Banner ist eine Sache: wer entscheidet, wer was sieht.

  • Im A/B-Test entscheidet der Zufall. In beiden Gruppen waren Desktops 35 %. Alles, was du nicht misst, ist ebenfalls gleichmäßig verteilt.
  • Beim Banner entscheidet jemand. Er zeigt es vor allem auf dem Desktop, und die Gruppen unterscheiden sich im Gerät und vielleicht in anderen Dingen, die nicht in der Tabelle stehen.

Das Aufteilen nach Gerät behebt nur den Faktor, den du kennst und aufgezeichnet hast. Die zufällige Zuweisung behebt auch die, die du nicht kennst. Darum machst du einen Test, wenn du kannst.

Die Idee

Wie du es ehrlich sagst

Daten, die nur gesammelt wurden und nicht aus einem Test stammen, heißen Beobachtungsdaten. Aus ihnen kannst du sagen „sie gehen zusammen“, nicht „das eine führt zum anderen“. Vergleiche:

  • „Das Banner hebt die Bestellungen um 2 Punkte.“ Das ist eine Behauptung über eine Ursache, die die Daten nicht hergeben.
  • „Besuche mit dem Banner bestellen öfter, aber vor allem, weil sie von einem Desktop kommen. Auf jedem Gerät für sich hilft das Banner nicht. Um das zu beantworten, brauchen wir einen A/B-Test.“

Bevor du einem Unterschied in Beobachtungsdaten traust, frag:

  1. Wer landet in welcher Gruppe, und warum?
  2. Gibt es ein drittes Ding (Gerät, Jahreszeit, Kundentyp), das beides bewegt?
  3. Kippt der Unterschied, wenn du danach aufteilst?

Übung

Ein fairer Vergleich

Vergleiche das Banner fair: Wie hoch ist die Konversion mit und ohne Banner, wenn beide Gruppen die Gerätemischung aller Besuche hätten? Speichere in desktop_share den Anteil der Desktops an allen Besuchen und in with_banner und without_banner die gewichteten Konversionen in Prozent.

PythonDaten: die Tabellen des Shops

Die Geschenkkarte und die Pfanne verkaufen sich zusammen: Wochen mit vielen Karten haben auch viele Pfannen. Speichere in overall ihre Korrelation über alle Wochen und in outside die Korrelation ohne die Feiertagswochen (die Maske holidays: vom 1. Dezember bis 4. Januar).

PythonDaten: die Tabellen des Shops

Test

Teste dich

1. Was ist das Simpson-Paradoxon?
2. Warum ist das Gerät ein Störfaktor für das Banner?
3. Die Korrelation zwischen zwei Spalten ist 0,46. Was weißt du sicher?
4. Warum leidet der A/B-Test des Warenkorbs nicht unter dem Problem des Banners?
5. Welcher Satz über das Banner-Log ist ehrlich?

Erstellt von Ivo Gergov im Rahmen der Kampagne von Evo Tech für zugängliche Programmierausbildung ·