---
title: "Modul 02: Ein Pfeil zeigt die Richtung"
output: 
  learnr::tutorial:
    language: 
      de: js/tutorial_de.json
    progressive: true
    css: "css/style.css"
runtime: shiny_prerendered
---

<a href="https://ki-campus.org/">
<img border="0" alt="KICampusLogo" src="images/KIcampusLogo.png" width="100" height="30" style="float: right">
</a>

```{r setup, include=FALSE}
library(learnr)
library(knitr)
library(ggplot2)
library(dplyr)
library(tidyr)
library(emojifont)
library(openintro)

theme.fom <- theme_classic(22*1.04)
theme.fom <- theme.fom
theme_set(
  theme.fom  
)

# deutsche Version von random_praise
source("random-praise_de/translation_random-praise_de.R")


library(ggdag)

# DAG, ohne Fehlerterm
co <- data.frame(x=c(0,1), y=c(0,0), name=c("X", "Y"))
DAG1 <- dagify(Y~ X,
                   coords = co) %>% 
  ggdag() + 
  geom_dag_point(colour = c("#0F710B", "#0000FF")) + 
  geom_dag_text(size = 8) +
  theme_dag_blank() +
  geom_dag_edges(arrow_directed = grid::arrow(length = grid::unit(15, "pt"), type = "closed")) +
  geom_text(label = "X - Tablette\nY - Schmerzrückgang", 
            hjust = 1, vjust = 2,
            x = 1, y = 0, size = 7, color = "darkgrey") 

# Beispiel rutschige Straße
co <- data.frame(x = c(0,1,1,2,4), y = c(0.5,0,1,0.5,0.5), name = c("JZ", "RE", "WS","NA","RU")) 
DAG_Str <- dagify(WS ~ JZ,
                  RE ~ JZ,
                  NA ~ RE,
                  NA ~ WS,
                  RU ~ NA,
                  coords = co) %>%
    ggdag() + 
   geom_dag_point(colour = "#301a87") +
  geom_dag_text(size = 5) +
  theme_dag_blank() +
  geom_dag_edges(arrow_directed = grid::arrow(length = grid::unit(15, "pt"), type = "closed")) +
  geom_text(label = "JZ - Jahreszeit\nRE - Regen\nWS - Wassersprenger\nNA - Nass\nRU - Rutschig", 
            hjust = 1, vjust = 1,
            x = 4, y = 1, size = 5, color = "darkgrey") 

# DAG 2, mit Fehlerterm
co <- data.frame(x=c(0,1,0,1), y=c(0,0,1,1), name=c("X", "Y", "U_X", "U_Y"))
DAG2 <- dagify(Y~ X,
               X ~ U_X,
               Y ~ U_Y,
                   coords = co) %>% 
  ggdag() + 
  geom_dag_point(colour = c( "darkgrey", "darkgrey","#0F710B", "#0000FF")) + 
  geom_dag_text(size = 7, label =  c(expression(U[X]), expression(U[Y]), "X", "Y"), parse = TRUE) +
  theme_dag_blank() +
  geom_dag_edges(arrow_directed = grid::arrow(length = grid::unit(15, "pt"), type = "closed")) +
  geom_text(label = "X - Tablette\nY - Schmerzrückgang", 
            hjust = 1, vjust = 2,
            x = 1, y = 1, size = 7, color = "darkgrey")


# Funktionen für Beispiel

U_X <- function() sample(c("Ja", "Nein"),1)
f_Y <- function(x) ifelse(x == "Ja", sample(c("Ja", "Nein"), 1, prob = c(0.8,0.2)), sample(c("Ja", "Nein"), 1, prob = c(0.4,0.6)))

# Verteilung Beispiel
d <- crossing(x = 1:10,
              y = 1:10) %>%
  mutate(tablette = c(rep("Ja",50), rep("Nein", 50)),
         heilung = c(rep(fontawesome('fa-check'), 50 * 0.8),
                     rep(fontawesome('fa-close'), 50 * 0.2),
                     rep(fontawesome('fa-check'), 50 * 0.4),
                     rep(fontawesome('fa-close'), 50 * 0.6)))

pd <- ggplot(d, aes(x = x, y = y, color = tablette)) +
  geom_tile(color = "white", size = .5, aes(fill = tablette), alpha = .2) +
  theme_void() +
  geom_text(family='fontawesome-webfont', size = 8, aes(label = heilung)) +
  scale_color_manual(values = c("#0F710B", "grey80"),
                     name = "") +
  scale_fill_manual( values = c("#0F710B", "grey80")) +
  theme(legend.position = "none") +
  labs(title = "Schmerzrückgang") +
  guides(guide = "none") +
  annotate(geom="text", x=3, y=5.5, label="Tablette genommen",
             color="black", size = 10) +
  annotate(geom="text", x=8, y=5.5, label="Tablette nicht genommen",
           color="black", size = 10)

```

## Lernziele

In diesem Modul lernen Sie:

- was unter Ursache und Wirkung verstanden werden kann;

- die Grundlagen von kausalen Graphen: was ein Pfeil aussagt;

- was Eltern und Kinder sind;

- was unter einem Kausalen Modell verstanden werden kann;

- den Unterschied zwischen Beobachten und Handeln im Kontext kausaler Inferenz.


## Ursache und Wirkung

Seit Urzeiten machen Menschen sich Gedanken über Ursache und Wirkung. Nicht nur in der Philosophie, sondern auch ganz praktisch, im täglichen Leben:

- Wenn ich die Tablette nehme, gehen die Schmerzen dann weg?

- Führt Werbung zu mehr Umsatz?

- Lohnt es sich finanziell, an einer Fortbildung teilzunehmen?

Dabei können wir entweder die Tablette nehmen &ndash; oder nicht; die Schmerzen können weggehen, oder nicht. Unternehmen können den Werbeetat erhöhen oder verringern; der Umsatz kann um beliebige Beträge steigen oder sinken. Sie nehmen an der Fortbildung teil oder nicht; Ihr Gehalt kann steigen &ndash; oder (leider) nicht.

Hier können also unterschiedliche Werte vorliegen, beispielsweise Ja oder Nein (z.B. Einnahme von Tabletten, Schmerzrückgang) oder $0$ &euro; oder $1000$ &euro; (z.B. Umsatzänderung, Gehaltsanstieg). 

Diese Werte können mit unterschiedlichen *Wahrscheinlichkeiten* auftreten, welche mit $Pr$ abgekürzt werden (englisch für probability, Wahrscheinlichkeit). $Pr(\text{Tablette})$ bezeichnet also die Wahrscheinlichkeit, dass von einer Person eine Tablette genommen wird, $Pr(\text{Schmerzrückgang})$ die Wahrscheinlichkeit, dass die Schmerzen zurückgehen.


```{r ursache, echo=FALSE}
question("Angenommen durch die Einnahme einer Tablette gehen die Schmerzen weg. Wie würden Sie hier Ursache und Wirkung zuordnen?",
         answer("Die Einnahme der Tablette ist die Ursache, der Schmerzrückgang die Wirkung.", correct = TRUE, message = "Die Tablette wurde zuerst eingenommen, danach folgte der Schmerzrückgang."),
         answer("Der Schmerzrückgang ist die Ursache, die Einnahme der Tablette die Wirkung."),
         allow_retry = TRUE,
         correct = random_praise(),
         incorrect = random_encouragement()
         )
```

## Tablette und Schmerzrückgang

<!-- Quelle: https://github.com/TabeaG/Uebungsheft-Apps/blob/master/EinfuehrungWkeitInferenz/02_EinfuehrungWkeitInferenz.Rmd -->

<span style="font-size: 13px; font-weight: bold; margin-top: 20px;">
Schauen wir mal, ob die Tablette hilft!
</span>

<img src="images/Pillen.jpg" alt="Pillenpackung" width="50%" height="50%">
<!-- style="padding-left:50px;" -->
<span style="font-size: 10px;"><br>
Quelle: [https://pixabay.com/illustrations/jar-pills-medicine-bottle-2338584/](https://pixabay.com/illustrations/jar-pills-medicine-bottle-2338584/)
</span>

<span style="font-size: 13px; font-weight: bold; margin-top: 20px;">
Nehmen Sie die Tablette? <br> </span>
<span style="font-size: 13px; ">
Klicken Sie einen der Buttons. Versuchen Sie es ruhig mehrmals!
</span> 

```{r, context="render", echo=FALSE}
actionButton("Tablette", "Tablette nehmen", class="btn action-button", style="color: #FFF; background-color: #301a87; border-color: #301a87; order-radius: 10px; border-width: 2px")
```
```{r, context="render", echo=FALSE}
actionButton("kTablette", "Tablette nicht nehmen", class="btn action-button", style="color: #FFF; background-color: #301a87; border-color: #301a87; order-radius: 10px; border-width: 2px")
```


```{r, context="render", echo=FALSE}
htmlOutput("ergebnis")
```

```{r, context="server"}
values <- reactiveValues()
values$text <- ""
values$versuch <- 0

p.tablette <- observeEvent(input$Tablette, {
  values$versuch <- values$versuch + 1
  heilung <- sample(c("Ja", "Nein"), 1, prob = c(0.8,0.2))
  ergebnis <- ifelse(heilung == "Ja", paste0("<span style='color: green'>", values$versuch, ". Versuch: </span> Sie haben die Tablette genommen und die Schmerzen sind zurückgegangen!"), paste0("<span style='color: green'>", values$versuch, ". Versuch: </span> Sie haben die Tablette genommen und die Schmerzen sind leider nicht zurückgegangen!"))
  
output$ergebnis <- renderText({
          ergebnis
        })
  
})
p.ktablette <- observeEvent(input$kTablette, {
  values$versuch <- values$versuch + 1
  heilung <- sample(c("Ja", "Nein"), 1, prob = c(0.4,0.6))
  ergebnis <- ifelse(heilung == "Ja", paste0("<span style='color: green'>", values$versuch, ". Versuch: </span> Sie haben die Tablette nicht genommen und die Schmerzen sind trotzdem zurückgegangen!"), paste0("<span style='color: green'>", values$versuch, ". Versuch: </span> Sie haben die Tablette nicht genommen und die Schmerzen sind leider auch nicht zurückgegangen!"))
  
output$ergebnis <- renderText({
          ergebnis
        })
  
})
```

<br>


##

Auf einer abstrakteren Ebene können die untersuchten Eigenschaften von oben als *Variablen* aufgefasst werden, also z. B.

- $X$: Tabletteneinnahme Ja oder Nein.

- $Y$: Schmerzrückgang Ja oder Nein.

Die sogenannte *Verteilung* der Variablen beschreibt die Wahrscheinlichkeit, mit der die jeweiligen Werte auftreten. 

Eine Variable $X$ heißt hier **Ursache** von $Y$, wenn der Wert der **Wirkung** $Y$ von $X$ verändert wird, also wenn $Y$ von $X$ abhängt.

Wenn Sie eben mehrfach die Tablette genommen haben &ndash; oder nicht genommen haben &ndash; dann konnten Sie beobachten, dass die Tablette häufig zu einer Schmerzreduktion führte, aber nicht immer. Und manchmal sind die Schmerzen zurückgegangen, obwohl Sie keine Tablette genommen haben. Die (hinterlegten) Wahrscheinlichkeiten dabei waren:

- $Pr(\text{Schmerzrückgang, wenn Tablette eingenommen})=0.8=80\%$<br>
  und damit:
  $Pr(\text{Kein Schmerzrückgang, wenn Tablette eingenommen})=1-0.8=0.2=20\%$

- $Pr(\text{Schmerzrückgang, wenn keine Tablette eingenommen})=0.4=40\%$ <br>
  und damit:
  $Pr(\text{Kein Schmerzrückgang, wenn keine Tablette eingenommen})=1-0.4=0.6=60\%$

Als Wahrscheinlichkeitsbaum dargestellt, wobei wir annehmen, dass die Hälfte der Personen eine Tablette nimmt:

```{r baum1, echo=FALSE, fig.align='center', out.width='80%'}
treeDiag(c("Tabletteneinnahme?","Schmerzrückgang?"), 
         c(0.5,0.5),
         list(c(0.8,0.2), 
              c(0.4,0.6)),
         c("Ja", "Nein"),
         c("Ja","Nein"), 
         showSol = FALSE)
```


## Kausales Diagramm

Man könnte auch sagen, dass die Verteilung von $Y$ (Schmerzrückgang) auf $X$ (Tabletteneinnahme) *hört*. Dieser Umstand lässt sich auch graphisch darstellen:

```{r DAG1, echo=FALSE, fig.align='center', out.width='60%'}
plot(DAG1)
```

In einem solchen **Graphen** sind die Variablen <green> Tabletteneinnahme </green> und <blue> Schmerzrückgang </blue> die sog. **Knoten**. Der **Pfeil** $\rightarrow$ zwischen $\color{green}{X}$ und $\color{blue}{Y}$ ist eine sogenannte gerichtete **Kante** und stellt die kausale Abhängigkeit dar.

$\color{green}{X} \rightarrow \color{blue}{Y}$ bedeutet aber auch, dass der Wert von $\color{green}{X}$ nicht kausal vom Wert von $\color{blue}{Y}$ abhängt. Ein möglicher <blue> Schmerzrückgang </blue> ändert nicht rückwirkend die <green> Tabletteneinnahme </green>: $$\color{green}{\text{Tabletteneinnahme}} \not\leftarrow \color{blue}{\text{Schmerzrückgang}}.$$

<br>

<img src="images/LichtSchalter.jpg" alt="Lichtschalter" width="50%" height="50%">
<!-- style="padding-left:50px;" -->
<span style="font-size: 10px;"><br>
Quelle: [https://pixabay.com/illustrations/switch-lightbulb-idea-inspiration-4539115/](Quelle: https://pixabay.com/illustrations/switch-lightbulb-idea-inspiration-4539115/)
</span>

```{r modell, echo=FALSE}
question("Welches kausale Diagramm beschreibt den Zusammenhang zwischen Lichtschalter und Glühlampe?",
         answer("$\\text{Glühlampe} \\rightarrow \\text{Lichtschalter}$"),
         answer("$\\text{Lichtschalter} \\rightarrow \\text{Glühlampe}$", correct = TRUE, message = "Lichtschalter an oder aus ist die Ursache für die Wirkung, ob die Glühlampe an oder aus ist. Bei kaputter Leitung oder Lampe ist diese nicht an, obwohl der Schalter an ist. Aber ohne Rückkopplung geht der Schalter nicht aus, wenn die Lampe aufgrund eines Schadens nicht an ist."),
         allow_retry = TRUE,
         correct = random_praise(),
         incorrect = random_encouragement()
         )
```

## Kinder und Eltern

Manche glauben ja, dass Kinder auf Ihre Eltern hören. Das schöne an abstrakten, gedanklichen Welten ist, dass das dort realisiert werden kann. 

Variablen (Knoten), auf die eine Pfeilspitze zeigt, werden **Kinder** derjenigen Variablen genannt, von welchen die Pfeile ausgehen. Diese Variablen werden entsprechend **Eltern** genannt: $\text{Eltern} \rightarrow \text{Kinder}$. Im Beispiel von oben ist <blue> Schmerzrückgang </blue> ein Kind von <green> Tabletteneinnahme </green> &ndash; und dementsprechend <green> Tabletteneinnahme </green> Eltern von <blue> Schmerzrückgang</blue>. In kausalen Graphen hören Kinder also auf ihre Eltern.

Ein Beispiel für ein kausales Diagramm, welches beschreibt, wie eine Straße rutschig werden kann. Die Wahrscheinlichkeit von Regen hängt ab von der Jahreszeit. Die Jahreszeit beeinflusst aber auch, ob ein Wassersprenger zum Einsatz kommt. Sowohl Regen als auch Wassersprenger führen dazu, dass die Straße nass wird. Ist die Straße nass, kann es rutschig werden:

```{r DAG_Str, echo=FALSE, fig.align='center', out.width='85%'}
plot(DAG_Str)
```

Quelle: [Mohan und Pearl (2012)](https://ftp.cs.ucla.edu/pub/stat_ser/uai12-mohan-pearl.pdf)

```{r eltern, echo=FALSE}
question("Welche Variable ist bzw. welche Variablen sind Eltern von *Nass* (NA)?",
         answer("Keine."),
         answer("Jahreszeit (JZ)."),
         answer("Wassersprenger (WS) und Regen (RE).", correct = TRUE,  message = "Nass hängt ab von Wassersprenger und Regen."),
         answer("Rutschig (RU)."),
         allow_retry = TRUE,
         correct = random_praise(),
         incorrect = random_encouragement()
         )
```

```{r kinder, echo=FALSE}
question("Welche Variable ist bzw. welche Variablen sind Kinder von *Nass* (NA)?",
         answer("Keine."),
         answer("Jahreszeit (JZ)."),
         answer("Wassersprenger (WS) und Regen (RE)."),
         answer("Rutschig (RU).", correct = TRUE , message = "Rutschig hängt ab von Nass."),
         allow_retry = TRUE,
         correct = random_praise(),
         incorrect = random_encouragement()
         )
```

## Kausale Modelle

Das **kausale Modell** des simplen Graphen $\color{green}{X} \rightarrow \color{blue}{Y}$ besteht aus zwei Zuweisungen:

- $\color{green}{X} = U_{\color{green}{X}}$
- $\color{blue}{Y} = f_{\color{blue}{Y}}(\color{green}{X},U_{\color{blue}{Y}})$

Dabei sind $U_{\color{green}{X}}$ und $U_{\color{blue}{Y}}$ unbekannte Ursachen (in der Statistik häufig auch Rest genannt, engl.: error) von $\color{green}{X}$ und $\color{blue}{Y}$, und $f_{\color{blue}{Y}}(\color{green}{X},U_{\color{blue}{Y}})$ die Funktion, der Mechanismus, durch den $\color{blue}{Y}$ auf Basis von $\color{green}{X},U_{\color{blue}{Y}}$ zu seinem Wert kommt. 

Im Beispiel
$$\color{green}{\text{Tabletteneinnahme}} \rightarrow \color{blue}{\text{Schmerzrückgang}}$$ 
beinhaltet $U_{\color{green}{\text{Tabletteneinnahme}}}$ die unbekannten, vielleicht zufälligen Gründe, die zur Entscheidung führen, ob bei Schmerzen eine Tablette genommen wird oder nicht, und $U_{\color{blue}{\text{Schmerzrückgang}}}$ die unbekannten, vielleicht zufälligen Gründe, die den Schmerzrückgang mit oder ohne Tabletteneinahme zusätzlich beschreiben. 

Wir gehen an dieser Stelle davon aus, dass $U_{\color{green}{X}}$ und $U_{\color{blue}{Y}}$ unabhängig voneinander sind. 

Diese sogenannten Fehler könnten in den Graphen mit aufgenommen werden, werden aber häufig aus Gründen der Übersichtlichkeit weggelassen. 

```{r DAG2, echo=FALSE, fig.align='center', out.width='60%', warning=FALSE}
plot(DAG2)
```


Angenommen, Sie werfen eine Münze (`ux()`), ob Sie die Tablette nehmen oder nicht, und es gilt für den Schmerzrückgang (`fy()`):

- $Pr(\text{Schmerzrückgang, wenn Tablette eingenommen})=0.8$ 

- $Pr(\text{Kein Schmerzrückgang, wenn Tablette eingenommen})=1-0.8=0.2$

- $Pr(\text{Schmerzrückgang, wenn keine Tablette eingenommen})=0.4$ 

- $Pr(\text{Kein Schmerzrückgang, wenn keine Tablette eingenommen})=1-0.4=0.6$

Simulieren Sie diesen Fall mehrfach über `Ausführen` und beobachten Sie, welche Werte die beiden Variablen annehmen:

```{r sim, exercise=TRUE}
x <- U_X()
cat("Tabletteneinnahme? ", x, "\n")
y <- f_Y(x)
cat("Schmerzrückgang? ", y, "\n")
```

```{r sim-hint}
# Hier der R Code der zugrundeliegenden Funktionen:
U_X <- function() sample(c("Ja", "Nein"),1)

f_Y <- function(x) ifelse(x == "Ja", 
                          sample(c("Ja", "Nein"), 1, prob = c(0.8, 0.2)), 
                          sample(c("Ja", "Nein"), 1, prob = c(0.4, 0.6)))
```


## Beobachtung

Wenn $100$ Menschen eine Münze werfen, ob sie die Tablette einnehmen oder nicht, erwarten wir im Mittelwert, dass $50$ von Ihnen die Tablette nehmen (grün hinterlegt) und von diesen $50 \times 0.8 = 40$ eine Schmerzreduktion erfahren (<i class="fa fa-check" aria-hidden="true"></i>) und die anderen $50-40=10$ nicht (<i class="fa fa-close" aria-hidden="true"></i>). Von den $50$ ohne Tabletteneinnahme (grau hinterlegt) erfahren $50 \times 0.4 = 20$ eine Schmerzreduktion (<i class="fa fa-check" aria-hidden="true"></i>) und die anderen $50-20=30$ nicht (<i class="fa fa-close" aria-hidden="true"></i>):

```{r pd, echo=FALSE, fig.align='center', out.width='85%'}
plot(pd)
```

Insgesamt erwarten wir im Mittelwert, dass bei $40 + 20 = 60$ von $100$ Personen eine Verbesserung eintrifft, wenn $U_{\color{green}{\text{Tabletteneinnahme}}}$ zufällig Ja oder Nein ist und $Pr(\color{green}{\text{Tabletteneinnahme}})=0.5$ ist. Wir **beobachten** nur, welchen Wert unsere Ursache $\color{green}{X}$ annimmt. 

```{r handeln, echo=FALSE}
question("Was passiert, wenn wir **intervenieren**, d. h., die Tabletteneinnahme ist nicht zufällig, sondern wir legen fest, dass alle die Tablette einnehmen müssen?",
         answer("Die Anzahl der Menschen mit Schmerzreduktion ändert sich nicht."),
         answer("Die Anzahl der Menschen mit Schmerzreduktion erhöht sich.", correct = TRUE, message = "Durch die Intervention gilt nicht mehr $Pr(\\color{green}{\\text{Tabletteneinnahme}})=0.5$ sondern $Pr(\\color{green}{\\text{Tabletteneinnahme}})=1$. Und da die Tablette in $80\\%$ der Fälle hilft, erwarten wir im Mittelwert eine Verbesserung bei $100 \\times 0.8 = 80$ von $100$ Personen."),
         answer("Die Anzahl der Menschen mit Schmerzreduktion reduziert sich."),
         allow_retry = TRUE,
         correct = random_praise(),
         incorrect = random_encouragement()
         )
```

## Interventionen

Bei einer **Intervention** handeln wir und greifen ein. Im kausalen Modell gilt nicht mehr:

$$\color{green}{X} = U_{\color{green}{X}}$$
sondern zum Beispiel, wenn wir dafür sorgen, dass alle die Tablette nehmen:

$$\color{green}{X} = 1$$

mit $\color{green}{X} = \cases{1: \quad \text{Tablette wird eingenommen} \\ 0: \quad \text{Tablette wird nicht eingeommen}}$.

Um den Unterschied zwischen Beobachtung und Intervention auch formal darzustellen, wird für eine Intervention ein eigener Operator verwendet: $do(\cdot)$ (englisch: to do sth., etwas machen). Wenn wir die Tabletteneinnahme *erzwingen*, kann dies durch $do(\color{green}{X} = 1)$ dargestellt werden.

```{r do0, echo=FALSE}
question("Welche Darstellung beschreibt die Intervention, die dazu führt, dass keine Tablette genommen wird?",
         answer("$do(\\color{green}{X} = 0)$", correct = TRUE,  message = "$do(\\cdot)$ zeigt die Handlung, $\\color{green}{X} = 0$ symbolisiert keine Tabletteneinnahme."),         
         answer("$do(\\color{green}{X} = 1)$"),
         allow_retry = TRUE,
         correct = random_praise(),
         incorrect = random_encouragement()
         )
```

## Umgedrehte Kausalität

Wenn die angenommene Ursache in Wirklichkeit die Wirkung ist, und umgekehrt die Wirkung in Wirklichkeit die Ursache, haben wir das Problem der **Umgedrehten Kausalität**. Wir vermuten $A \rightarrow B$, aber in Wirklichkeit gilt $B \rightarrow A$.

Die Unterscheidung zwischen Ursache und Wirkung erfolgt hier aus inhaltlichen, theoretischen Überlegungen. Dabei können z.B. zeitliche Überlegungen helfen (die Ursache erfolgt vor der Wirkung), aber insbesondere auch Experimente (siehe Modul 8). Beides ist auch Bestandteil der [Bradford-Hill-Kriterien](https://journals.sagepub.com/doi/pdf/10.1177/003591576505800503) für Kausalität:

- Stärke: Eine Beziehung ist eher kausal, wenn der Zusammenhang groß (z. B. hohe Korrelation) und statistisch signifikant ist. 
- Konsistenz: Eine Beziehung ist eher kausal, wenn sie wiederholt bestätigt werden kann. 
- Spezifität: Eine Beziehung ist eher kausal, wenn es keine andere Erklärung gibt. 
- Zeitlichkeit: Eine Beziehung ist eher kausal, wenn die Wirkung  nach der Ursache auftritt. 
- Gradient: Eine Beziehung ist eher kausal, wenn ein größerer Wert in der Ursache zu einem größeren Wert in der Wirkung führt. 
- Plausibilität: Eine Beziehung ist eher kausal, wenn es einen inhaltlich plausiblen Mechanismus zwischen Ursache und Wirkung gibt.
- Kohärenz: Eine Beziehung ist eher kausal, wenn sie mit bekannten Fakten und Theorien vereinbar ist. 
- Experiment: Eine Beziehung ist eher kausal, wenn sie experimentell verifiziert werden kann. 
- Analogie: Eine Beziehung ist eher kausal, wenn es nachgewiesene Beziehungen zwischen ähnlichen Ursachen und Wirkungen gibt.

## Ausblick

Kausale Inferenz hilft die Unterschiede in den Verteilungen der Wirkung $\color{blue}{Y}$ zu untersuchen, je nachdem ob $\color{green}{X}$ beobachtet wurde &ndash; oder der Wert durch eine Handlung festgelegt wird ($do(\color{green}{X})$).

Diese *Kausale Leiter* ist Teil des folgenden Moduls 3.

<img src="images/Leiter.png" alt="Lichtschalter" width="50%" height="50%">
<!-- style="padding-left:50px;" -->
<span style="font-size: 10px;"><br>
Quelle: [https://pixabay.com/vectors/good-girls-cloud-star-ladder-2204244/](Quelle: https://pixabay.com/vectors/good-girls-cloud-star-ladder-2204244/)
</span>

## KI-Campus

[Zurück zum Kurs](https://learn.ki-campus.org/courses/7c8012d9-8729-4462-9ad0-be7d71118f37/launch)