Weiter zum Inhalt

Einführung in kausale KI mit der DoWhy-Bibliothek in Python

Dieses Tutorial führt in kausale KI mit der DoWhy-Bibliothek in Python ein. Es erklärt grundlegende Prinzipien und zeigt Codebeispiele.
Aktualisiert 18. Sept. 2026  · 14 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

Wenn es darum geht, Entscheidungen auf Basis von Daten zu treffen, bleibt bei vielen Branchenprofis ein Restzweifel: Vorhersagealgorithmen sind nicht immer zuverlässig. So sagt etwa der Pro-Kopf-Schokoladenkonsum erstaunlich gut die Zahl der Nobelpreisträger eines Landes voraus, und es gibt eine Korrelation zwischen Eisverkäufen und Haiangriffen. Das heißt aber nicht, dass es eine gute Idee wäre, möglichst viele Haie an den Strand zu locken, um unser Eisgeschäft anzukurbeln.

Worum es hier geht, ist das bekannte Prinzip: „Korrelation ist nicht Kausalität.“ Nur weil zwei Variablen zusammenhängen, können wir nicht die eine nutzen, um die andere zu beeinflussen. Beides kann von einer dritten Größe angetrieben werden – im Beispiel von Haien und Eisverkäufen etwa das „Sonnenwetter“ als gemeinsame Ursache. Gleichzeitig ist es für jedes Unternehmen entscheidend, Ursachen zu verstehen und Datenanalysen gezielt für Veränderungen einzusetzen. Deshalb investieren viele Vorreiter wie Microsoft, Amazon, Uber, Spotify, McKinsey und zahlreiche weitere massiv in ihre kausalen KI-Fähigkeiten.

Dieses Tutorial führt in einige der zentralen Konzepte und Ideen kausaler KI mit der DoWhy-Bibliothek in Python ein. Kausale Inferenz unterscheidet sich grundlegend von klassischem Machine Learning, daher starten viele mit wenig Vorwissen. Grundkenntnisse in Regressionsanalyse und statistischer Modellierung helfen jedoch beim Mitmachen. Wenn du neu in der Regressionsanalyse bist oder eine Auffrischung brauchst, schau dir den DataCamp-Kurs Introduction to Linear Modeling in Python an.

Die Unterschiede zwischen prädiktiven und kausalen Modellen kannst du auch im DataCamp-Kurs Machine Learning for Business erkunden.

Die Bausteine kausaler KI

Für die kausale Inferenz brauchen wir ein anderes Mindset als für klassisches Machine Learning und prädiktive Analytik.

Die Philosophin Nancy Cartwright prägte den Satz: „No causes in, no causes out.“ Das heißt: Wir müssen Annahmen über die kausale Struktur des Phänomens treffen, das wir untersuchen, um kausale Antworten zu bekommen. Ein rein datengetriebener Ansatz reicht nicht aus.

Das klingt zunächst zirkulär, ist es aber nicht.

Wenn wir wissen wollen, ob der Zusammenhang zwischen Schokoladenkonsum und Nobelpreisen kausal ist, müssen wir alternative Erklärungen ausschließen. Diese Alternativen sind kausales Wissen, das nicht zwingend in den Daten steckt, sondern das wir von außen einbringen müssen.

Angenommen, wir denken über eine neue Homeoffice-(WFH)-Regelung nach und wollen wissen, ob sie die Produktivität der Mitarbeitenden beeinflusst. Eine erste Analyse zeigt: Wer von zu Hause arbeitet, erledigt täglich mehr Aufgaben.

Können wir aber sicher sein, dass dieser Zusammenhang bestehen bleibt, wenn die Regelung für alle gilt? Mit anderen Worten: Ist die Beziehung zwischen WFH und Produktivität wirklich kausal?

Graph created by causalfusion.net

Hinweis: Graph erstellt von causalfusion.net

Ein einfaches Kausalmodell für diesen Kontext könnte so aussehen.

Wir vermuten, dass Homeoffice die Produktivität beeinflusst, kennen aber weder Richtung noch Stärke des Effekts. Zugleich kann es andere Gründe für die höhere Produktivität bei Heimarbeit geben.

Beschäftigte mit Kindern oder sehr introvertierte Personen, die sich im Großraum schwer konzentrieren, arbeiten häufiger zu Hause, weil es für sie praktischer ist. Diese Variablen können selbst mit Produktivität zusammenhängen und damit als gemeinsame Ursachen die beobachtete Korrelation erklären.

Um all diese Annahmen explizit zu machen, stellen wir sie in einem sogenannten Kausalgraphen dar – einer grafischen Repräsentation, die Beziehungen zwischen Variablen eines Systems modelliert, mit Fokus auf Kausalzusammenhänge.

Du wirst feststellen, dass manche Annahmen in der Praxis recht stark sind. Der große Vorteil: Kausalgraphen machen Annahmen und Vorwissen sehr transparent. Trotzdem sollten wir sie immer wieder hinterfragen und verfeinern, um unseren Analysen Glaubwürdigkeit zu geben.

Erste Schritte mit DoWhy in Python

Microsofts DoWhy-Bibliothek, gemeinsam mit Amazon Web Services als Teil des PyWhy-Ökosystems entwickelt, wird schnell zum Branchenstandard für Kausalanalysen in Python. Mit DoWhy können wir entsprechend unserem obigen Kausalmodell einen Datensatz simulieren und die grundlegenden Schritte der kausalen Inferenz veranschaulichen. Zuerst installieren wir DoWhy in unserer Umgebung.

!pip install git+https://github.com/microsoft/dowhy.git

Anschließend laden wir die benötigten Bibliotheken.

import numpy as np
import pandas as pd
import dowhy

Jetzt erstellen wir selbst einen Datensatz. Der große Vorteil simulierte Daten für kausale KI zu nutzen: Wir kontrollieren den Daten-Generierungsprozess vollständig und kennen die „Ground Truth“ – bei Realweltdaten wäre das nicht der Fall.

Wir setzen den wahren kausalen Effekt auf eins (beta=1), definieren zwei gemeinsame Ursachen und erzeugen zehntausend Stichproben basierend auf einfachen linearen Beziehungen zwischen den Variablen.

Die Behandlungsvariable, die wir betrachten, ist binär, sie kann also den Wert null oder eins annehmen.

Zuvor haben wir für die Zufallszahlengenerierung einen festen Startpunkt gesetzt – using np.random.seed(1) – damit wir unseren Datensatz exakt reproduzieren können.

from dowhy import CausalModel
import dowhy.datasets

# Set seed to enable exact replication
np.random.seed(1)

# Simulate sample data
data = dowhy.datasets.linear_dataset(
    beta=1,
    num_common_causes=2,
    num_discrete_common_causes=1,
    num_instruments=1,
    num_samples=10000,
    treatment_is_binary=True)

df = data['df']

DoWhy vergibt dabei folgende Labels:

Tabelle 1

Label

Variable

Typ

Mittelwert

v0

Die Behandlungsvariable, also die zentrale Variable unserer Analyse (Homeoffice)

Binär

0.608

y

Das interessierende Ergebnis (Produktivität)

Stetig

1.583

W0

Introversion

Stetig

-0.148

W1

Anzahl der Kinder

Kategorisch

1.5

Z0

Eine Instrumentvariable, die nur v0, nicht aber y beeinflusst (U-Bahn-Sperrung)

Binär

0.281

Hier haben wir implizit einen Kausalgraphen definiert, indem wir Typ der Behandlung und die Zahl gemeinsamer Ursachen festgelegt haben. DoWhy speichert Graphobjekte in der DOT-Sprache. Das erleichtert es uns, mit Realweltdaten einen eigenen gerichteten Kausalgraphen (Digraph) zu spezifizieren.

digraph {v0->y;W0-> v0; W1-> v0;Z0-> v0;W0-> y; W1-> y;}

Zum Schluss fassen wir alle Informationen in einem Kausalmodell zusammen.

# Create a causal model from the data and given graph.
model=CausalModel(
        data = df,
        treatment=data['treatment_name'],
        outcome=data['outcome_name'],
        graph=data['gml_graph']
        )

Die Kraft kausaler KI nutzen

Bevor wir die Kausalanalyse durchführen, vergleichen wir sie mit einem naiven Ansatz auf Basis einer einfachen linearen Regression.

# Run a linear regression of column y on v0 in df
import statsmodels.api as sm

X = df['v0'].astype(float)
y = df['y'].astype(float)

X = sm.add_constant(X)

ols = sm.OLS(y, X).fit()

# Display a more parsimonious results summary
print(ols.summary().tables[1])

Der Steigungskoeffizient in der bivariaten Regression beträgt 1.298. Wir wissen jedoch, dass der wahre kausale Effekt eins ist, da wir die Daten so generiert haben.

Das bedeutet: Die beiden gemeinsamen Ursachen, Introversion und Kinder, die sowohl Produktivität als auch die Wahrscheinlichkeit für Homeoffice beeinflussen, führen hier zu einer Überschätzung von fast 30%.

Zum Glück können wir diese Verzerrung leicht beheben, solange wir Daten zu diesen Variablen haben: Wir nehmen die gemeinsamen Ursachen in eine multivariate Analyse auf.

In der Literatur zur kausalen KI ist das als Backdoor-Kriterium bekannt. Wir wollen alle Variablen kontrollieren, die im Kausalgraphen in die Behandlungsvariable hineinzeigen. Sie „kommen durch die Hintertür“ und können so eine Scheinkorrelation zwischen Behandlung und Ergebnis erzeugen. In unserem Beispiel betrifft das Introversion und die Anzahl der Kinder.

WFH <— Introversion —> Produktivität

WFH <— Kinder —> Produktivität

DoWhy bietet eine Reihe von Algorithmen, um zu prüfen, ob sich ein gewünschter kausaler Effekt für ein gegebenes Kausalmodell identifizieren lässt.

# Check whether causal effect is identified and return target estimands
identified_estimand = model.identify_effect()

Wenig überraschend ist in unserem einfachen Kausalmodell zum Effekt von Homeoffice die kausale Identifikation möglich.

Als Nächstes geht es um die Schätzung, also darum, den Zieleffekt mit den verfügbaren Daten zu quantifizieren.

DoWhy bietet zahlreiche Verfahren wie Regression, Matching, Stratifizierung und Gewichtung. Da unsere simulierten Daten auf linearen Beziehungen beruhen, würde eine einfache Regression reichen. Falls du eine Auffrischung brauchst, hilft der DataCamp-Kurs Intro to Regression with statsmodels in Python.

Um die Analyse allgemeiner zu halten, verwenden wir jedoch Inverse-Probability-Weighting, das auch mit nichtlinearen Daten umgehen kann.

# Estimate the causal effect using inverse probability weighting
estimate = model.estimate_effect(identified_estimand,
                                 method_name="backdoor.propensity_score_weighting")

DoWhy liefert eine Kausaleffektschätzung von 1.001. Die genaue Zahl ist im simulierten Kontext nicht entscheidend. Wichtig ist: Wir liegen sehr nahe an der Ground Truth von eins. Gegenüber der zuvor geschätzten Regression ist die Verzerrung um beeindruckende 99,6% gesunken.

Ergebnisse auf Belastungsprobe stellen

Das ist beachtlich, aber wir sollten hier nicht aufhören.

Das Prinzip „No causes in, no causes out“ besagt: Jede Kausalanalyse ist nur so gut wie ihre Annahmen.

Woher wissen wir zum Beispiel, dass wirklich nur Introversion und Kinder WFH beeinflussen, wie es unser einfaches Modell vorsieht?

Um mehr Vertrauen in unsere Annahmen zu gewinnen, stellt DoWhy eine ganze Suite an Widerlegungstests bereit, mit denen wir die Analyse stärken können – etwa Tests mit Teilstichproben oder Placebo-Behandlungen.

# Check sensitivity of obtained estimate to unobserved confounders
refute_results = model.refute_estimate(identified_estimand, estimate,
                                       method_name="add_unobserved_common_cause")

Schauen wir, was passiert, wenn wir neben Introversion und Kindern eine weitere gemeinsame Ursache hinzufügen.

Diesmal haben wir zu dieser Variablen keine Daten, sie bleibt also unbeobachtet. Wie belastbar sind unsere Schätzungen? Leider nicht sehr beruhigend.

Die Grafik in Abbildung 2 zeigt, wie stark unbeobachtete gemeinsame Ursachen den geschätzten Kausaleffekt beeinflussen können – von -0.222 bis 1.003. Die Spannweite ist so groß, dass sich der Effekt potenziell verdoppeln könnte.

Figure 2

Das ist allerdings nicht überraschend. Alternative kausale Mechanismen mit unbeobachteten Variablen, die wir in der Analyse nicht berücksichtigen können, bleiben in kausalen Studien immer ein Problem.

Zum Glück gibt es in diesem Kontext eine alternative Strategie für die Identifikation – und DoWhy ist klug genug, sie zu finden.

Alternative Kausalstrategien finden

Auch wenn introvertierte Mitarbeitende und solche mit Kindern häufiger im Homeoffice sind, kann es weitere Determinanten von WFH geben, die nichts mit Produktivität zu tun haben.

Angenommen, es kommt zu einer massiven Störung im öffentlichen Nahverkehr und eine U-Bahn-Linie in unserer Stadt wird für drei Monate gesperrt. Mitarbeitende aus den betroffenen Vierteln arbeiten in der Folge häufiger von zu Hause, selbst wenn sie sonst ins Büro gekommen wären.

Dieses erweiterte Kausalmodell lässt sich wie folgt darstellen.

Augmented causal model

In diesem Fall fungiert die U-Bahn-Sperrung als sogenannte Instrumentvariable.

Anschaulich wirkt die Sperrung wie ein Schock auf die Pendelroutinen und erzeugt eine Art natürliches Experiment.

Drei Monate lang arbeiten Menschen nahe der betroffenen Linie häufiger von zu Hause, ohne dass dies sonst etwas mit ihrer Produktivität zu tun hätte. Du hast vielleicht bemerkt, dass wir eine solche Instrumentvariable Z0 bereits bei der Simulation eingebaut haben – mit der Option num_instruments=1. Die Funktion identify_effect() von DoWhy kann dann automatisch geeignete Instrumente im Kausalgraphen finden.

iv_estimate = model.estimate_effect(identified_estimand,
                                    method_name="iv.instrumental_variable")

Die Schätzung ergibt einen Kausaleffekt von 0.920. Das ist etwas weniger präzise als die Backdoor-Strategie, aber deutlich besser als die naive Vorhersage.

Der Vorteil der Instrumentvariablen-Schätzung: Sie hängt nicht von Annahmen über die Zahl unbeobachteter gemeinsamer Ursachen von WFH und Produktivität ab.

Unsere Schätzungen sind damit zwar mitunter weniger präzise, aber aufgrund schwächerer Annahmen robuster. Dieser Trade-off ist in der Kausalanalyse typisch.

Wie geht es weiter?

DoWhy ist ein hervorragender Einstieg in kausale KI. Die Bibliothek deckt die gesamte Pipeline ab und führt dich durch die wichtigsten Schritte.

Wenn du den grundlegenden Workflow verinnerlicht hast, kannst du dich an fortgeschrittene Themen wie Causal Discovery wagen und deine Analysen mit weiteren Libraries wie DoubleML erweitern oder in R mit daggity, ggdag und pcalg. Wenn du dich mit den Grundlagen sicher fühlst, ist DataCamps Kurs Advanced Causal Inference with R ein starker nächster Schritt.

Kausale Inferenz eröffnet einen neuen Blick auf Datenanalyse. Die meisten Ansätze setzen ein Verständnis des Kausalgraphen oder andere kausale Annahmen voraus. Entscheidend ist, Verfahren und Annahmen zu wählen, die zu deinem Kontext passen. Dafür brauchst du externes Wissen und Fachexpertise.

Hol dir daher die Meinungen deiner Marketing- oder HR-Expertinnen und -Experten ein, um ein passendes Modell zu entwickeln.

Kausales Wissen ist in vielen Business-Kontexten zentral. Wir müssen zum Beispiel verstehen, ob unser Produktlaunch erfolgreich war oder wie wirkungsvoll unsere Werbestrategie ist.

Kausale Antworten aus Daten zu gewinnen ist anspruchsvoller als das Training eines simplen Vorhersagemodells, aber die Mühe lohnt sich. Und Bibliotheken wie DoWhy geben dir ein starkes Toolset an die Hand, um die für dich passenden Lösungen zu finden.

Wenn dir dieses Tutorial weitergeholfen hat und du kausale KI in deinen eigenen Projekten anwenden willst, ist jetzt der ideale Zeitpunkt, dein Verständnis zu vertiefen. Im umfassenden Kurs Machine Learning for Business lernst du nicht nur prädiktive, sondern auch kausale Modelle kennen, die dir helfen, bessere geschäftliche Entscheidungen zu treffen.


Paul Hünermund 's photo
Author
Paul Hünermund
LinkedIn
Twitter
Paul Hünermund ist Assistenzprofessor für Strategie und Innovation an der Copenhagen Business School. In seiner Forschung hat Dr. Hünermund untersucht, wie Unternehmen neue Technologien im Bereich des maschinellen Lernens und der künstlichen Intelligenz nutzen können, um Werte zu schaffen und Wettbewerbsvorteile zu erzielen. In seiner Arbeit untersucht er das Potenzial für Voreingenommenheit bei organisatorischen Entscheidungen und Wege, wie Manager ihnen entgegenwirken können. Sie beleuchtet damit die Ursprünge effektiver Unternehmensstrategien auf Märkten, die durch ein hohes Maß an technologischem Wettbewerb gekennzeichnet sind, und die daraus resultierenden Auswirkungen auf Wirtschaftswachstum und ökologische Nachhaltigkeit. 
 
Seine Arbeiten wurden unter anderem in The Journal of Management Studies, The Econometrics Journal, Research Policy, Journal of Product Innovation Management, International Journal of Industrial Organization, MIT Sloan Management Review und Harvard Business Review veröffentlicht. Über seine Arbeit haben die Frankfurter Allgemeine Zeitung, die Süddeutsche Zeitung, Politiken und die Neue Zürcher Zeitung berichtet. Dr. Hünermund ist Mitglied des Redaktionsbeirats des Journal of Causal Inference und Mitglied des Leitungsteams der Abteilung für Technologie- und Innovationsmanagement an der Academy of Management. Er promovierte in Betriebswirtschaft an der KU Leuven in Belgien und schloss sein Studium an der Universität Mannheim in Deutschland mit einem Master in Wirtschaftswissenschaften ab.

Jermain Kaminski's photo
Author
Jermain Kaminski
Jermain Kaminski ist Assistenzprofessor für Unternehmertum und Innovation an der Universität Maastricht. In seiner Forschung kombiniert er maschinelles Lernen und die Verarbeitung natürlicher Sprache, mit einem besonderen Fokus auf Text-, Audio- und Videodaten im Unternehmertum. Seine aktuelle Forschung konzentriert sich vor allem auf die strategische Entscheidungsfindung und untersucht die Auswirkungen des kausalen maschinellen Lernens auf den Entscheidungsprozess. Seine Arbeit mit Koautoren wurde unter anderem im Journal of Business Venturing, Journal of Business Venturing Insights, Journal of Product Innovation Management, Small Business Economics, ACM Conference on Human Factors in Computing Systems und Harvard Business Review veröffentlicht. 
 
Jermain studierte an der Universität Witten/Herdecke, Deutschland, und am Massachusetts Institute of Technology, USA. Am MIT war er Gaststudent und Forscher am MIT Center for Collective Intelligence an der Sloan School of Management und am MIT Media Lab. Jermain hat sein Promotionsstudium an der RWTH Aachen abgeschlossen. Er ist Mitbegründer und Mitvorsitzender des Causal Data Science Meeting(causalscience.org).
Themen
Künstliche Intelligenz
Python
Verwandt

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

5 Min.

Tutorial

Python Switch Case Statement: Ein Leitfaden für Anfänger

Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Matt Crabtree's photo

Matt Crabtree

5 Min.

Tutorial

Python-Anweisungen IF, ELIF und ELSE

In diesem Tutorial lernst du ausschließlich Python if else-Anweisungen kennen.
Sejal Jaiswal's photo

Sejal Jaiswal

9 Min.

Tutorial

Python-Schleifen-Tutorial

Ein umfassendes Einführungs-Tutorial zu Python-Schleifen. Lerne und übe while- und for-Schleifen, verschachtelte Schleifen, die Schlüsselwörter break und continue, die Range-Funktion und vieles mehr!
Satyabrata Pal's photo

Satyabrata Pal

15 Min.

Tutorial

Python-Lambda-Funktionen: Ein Leitfaden für Anfänger

Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Mark Pedigo's photo

Mark Pedigo

10 Min.

Tutorial

if…elif…else in Python Tutorial

Lerne, wie du in Python if…elif…else-Anweisungen erstellst.
DataCamp Team's photo

DataCamp Team

4 Min.

Mehr AnzeigenMehr Anzeigen