Intro

In dieser Übung geht es um den unten abgebildeten DAG und die dazugehörigen Daten, welche Sie im File sim-dag.csv auf Moodle finden. Für diese Übung sind wir am totalen kausalen Effekt von \(X1\) auf \(Y\) interessiert.

Diese Übung basiert auf der Arbeit Prof. Dr. Beate Sick, ETH Zürich.

Übung 1

Aufgaben

Betrachten Sie den DAG.

  1. Gibt es einen kausalen Effekt von \(X1\) auf \(Y\)?
  2. Gibt es einen kausalen Effekt von \(X1\) auf \(X2\)?
  3. Gibt es Confounder, Mediatoren und/oder Collider? Ordnen Sie die Variablennamen entsprechend zu. Beachte: Wir sind am totalen kausalen Effekt von \(X1\) auf \(Y\) interessiert.

Lösungen

  1. Gibt es einen kausalen Effekt von \(X1\) auf \(Y\)? Ja, es gibt einen direkten Pfad von \(X1\) nach \(Y\).

  2. Gibt es einen kausalen Effekt von \(X1\) auf \(X2\)? Nein, es gibt keinen direkten Pfad von \(X1\) nach \(Y\)

  3. Gibt es Confounder, Mediatoren und/oder Collider? Ordnen Sie die Variablennamen entsprechend zu. Beachte: Wir sind am totalen kausalen Effekt von \(X1\) auf \(Y\) interessiert.

    • Bei gegebener Fragestellung ist \(X3\) ein Confounder, weil \(X3\) sowohl \(X1\) wie auch \(Y\) beeinflusst.
    • \(X4\) ist entlang dem kausalen Pfad von \(X1\) nach \(Y\), somit ist \(X4\) ein Mediator.
    • Es gibt keinen Collider

Übung 2

Aufgabe

Welche der folgenden linearen Regressionsmodelle geben eine unverzerrte Schätzung des totalen Effekts von \(X1\) auf \(Y\)?

  1. Y ~ X1
  2. Y ~ X1 + X2
  3. Y ~ X1 + X3
  4. Y ~ X1 + X2 + X4
  5. Y ~ X1 + X2 + X3

Lösungen

  1. Y ~ X1: Die Schätzung des Effekts ist verzerrt wegen des offenen Pfades \(X1\)\(X3\)\(Y\).
  2. Y ~ X1 + X2: Die Schätzung des Effekts ist verzerrt wegen des offenen Pfades \(X1\)\(X3\)\(Y\). Die Berücksichtigung von \(X2\) im Modell ändert daran nichts.
  3. Y ~ X1 + X3: Unverzerrte Schätzung, weil für den Confounder \(X3\) korrigiert wird.
  4. Y ~ X1 + X2 + X4: Die Schätzung des Effekts ist verzerrt wegen des offenen Pfades \(X1\)\(X3\)\(Y\). Zudem sollte für den Mediator \(X4\) nicht korrigiert werden, wenn der totale Effekt von Interesse ist.
  5. Y ~ X1 + X2 + X3: Unverzerrte Schätzung.

Das Modell Y ~ X1 + X3 ist vorzuziehen, da weniger komplex als Modell Y ~ X1 + X2 + X3.

Übung 3

Aufgabe

Erstellen Sie den DAG von oben selber in R (siehe Slides für R-Code) und verifizieren Sie die Antworten aus Übung 2 mit Hilfe von adjustmentSets(). Vergessen Sie nicht, das Paket dagitty zu laden.

Lösung

library(dagitty)

# Die Positionen der Variablen können beliebig definiert werden
dag <- dagitty('dag {
X3 [pos="-1, 0.5"]
X1 [pos="-0.75, 0.25"]
X4 [pos="-0.25, 0"]
Y [pos="0.25, 0.25"]
X2 [pos="-0.25, 0.75"]

X3 -> X1 
X1 -> X4 
X4 -> Y 
X3 -> Y 
X3 -> X2 
X2 -> Y 
}')

plot(dag)

adjustmentSets(dag, exposure = "X1", outcome = "Y", effect = "total")
## { X3 }

Für den totalen Effekt reicht es, für \(X3\) zu adjustieren. Falls nur der direkte Effekt von Interesse wäre, müsste man für den Mediator adjustieren:

adjustmentSets(dag, exposure = "X1", outcome = "Y", effect = "direct")
## { X3, X4 }

Übung 4

Aufgabe

Importieren Sie den Datensatz sim-dag.csv und passen Sie die 5 linearen Modelle aus Übung 2 an. Betrachten Sie jeweils den Effekt der Variable \(X1\) auf \(Y\) und ignorieren Sie die Steigungen für die anderen Variablen.

R-Tipp: lm.x.y <- lm(Y ~ X1 + X2 + ..., data = ...), summary(lm.x.y).

Lösung

library(rio)
df.sim.dag <- import("sim-dag.csv")

lm.1 <- lm(Y ~ X1, data = df.sim.dag)
summary(lm.1)
## 
## Call:
## lm(formula = Y ~ X1, data = df.sim.dag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -43.103  -9.624   0.003   9.579  44.861 
## 
## Coefficients:
##              Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)   0.24247    0.32222    0.753    0.452    
## X1          -52.74941    0.06535 -807.132   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14.41 on 1998 degrees of freedom
## Multiple R-squared:  0.9969, Adjusted R-squared:  0.9969 
## F-statistic: 6.515e+05 on 1 and 1998 DF,  p-value: < 2.2e-16

Der geschätzte Effekt im Modell Y ~ X1 beträgt -52.75


lm.2 <- lm(Y ~ X1 + X2, data = df.sim.dag)
summary(lm.2)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = df.sim.dag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.4169  -6.0400  -0.1452   6.3100  27.2266 
## 
## Coefficients:
##              Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)   0.20335    0.20118    1.011    0.312    
## X1          -62.41585    0.17758 -351.475   <2e-16 ***
## X2            5.58833    0.09992   55.930   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.997 on 1997 degrees of freedom
## Multiple R-squared:  0.9988, Adjusted R-squared:  0.9988 
## F-statistic: 8.371e+05 on 2 and 1997 DF,  p-value: < 2.2e-16

Der geschätzte Effekt im Modell Y ~ X1 + X2 beträgt -62.42


lm.3 <- lm(Y ~ X1 + X3, data = df.sim.dag)
summary(lm.3)
## 
## Call:
## lm(formula = Y ~ X1 + X3, data = df.sim.dag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.070  -7.060   0.022   6.777  38.338 
## 
## Coefficients:
##             Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)   0.2634     0.2319    1.136    0.256    
## X1          -62.6999     0.2355 -266.193   <2e-16 ***
## X3           51.8154     1.2018   43.114   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10.37 on 1997 degrees of freedom
## Multiple R-squared:  0.9984, Adjusted R-squared:  0.9984 
## F-statistic: 6.295e+05 on 2 and 1997 DF,  p-value: < 2.2e-16

Der geschätzte Effekt im Modell Y ~ X1 + X3 beträgt -62.7


lm.4 <- lm(Y ~ X1 + X2 + X4, data = df.sim.dag)
summary(lm.4)
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X4, data = df.sim.dag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.4216 -0.8459 -0.0106  0.8545  5.0002 
## 
## Coefficients:
##             Estimate Std. Error  t value Pr(>|t|)    
## (Intercept) -0.01443    0.02839   -0.508    0.611    
## X1           0.16605    0.20111    0.826    0.409    
## X2           5.65980    0.01410  401.502   <2e-16 ***
## X4          -8.96753    0.02859 -313.622   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.269 on 1996 degrees of freedom
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 2.808e+07 on 3 and 1996 DF,  p-value: < 2.2e-16

Der geschätzte Effekt im Modell Y ~ X1 + X2 + X4 beträgt 0.17


lm.5 <- lm(Y ~ X1 + X2 + X3, data = df.sim.dag)
summary(lm.5)
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = df.sim.dag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.1159  -6.0170  -0.1952   6.1802  27.7619 
## 
## Coefficients:
##             Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)   0.2088     0.2009    1.039  0.29870    
## X1          -62.6865     0.2040 -307.308  < 2e-16 ***
## X2            5.1276     0.1986   25.820  < 2e-16 ***
## X3            5.5589     2.0719    2.683  0.00736 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.983 on 1996 degrees of freedom
## Multiple R-squared:  0.9988, Adjusted R-squared:  0.9988 
## F-statistic: 5.598e+05 on 3 and 1996 DF,  p-value: < 2.2e-16

Der geschätzte Effekt im Modell Y ~ X1 + X2 + X3 beträgt -62.69


Übung 5

Aufgaben

Im folgenden DAG sind zusätzlich die “wahren” Effekte zu sehen:

dag <- dagitty('dag {
X3 [pos="-1, 0.5"]
X1 [pos="-0.75, 0.25"]
X4 [pos="-0.25, 0"]
Y [pos="0.25, 0.25"]
X2 [pos="-0.25, 0.75"]

X3 -> X1 [beta = 5]
X1 -> X4 [beta = 7]
X4 -> Y [beta = -9]
X3 -> Y [beta = 8]
X3 -> X2 [beta = 9]
X2 -> Y [beta = 5]
}')

plot(dag, show.coefficients = TRUE)

  1. Wie gross ist der wahre totale kausale Effekt von \(X1\) auf \(Y\)?
  2. Welche der in Übung 4 angepassten Modelle liefern ein Konfidenzintervall für den Effekt von \(X1\) auf \(Y\), welches diesen wahren Effekt beinhaltet? Tipp: confint(lm.x.y)

Lösungen

  1. Wie gross ist der Wahre totale kausale Effekt von \(X1\) auf \(Y\)?

\(X1\)\(X4\)\(Y\) ist der einzige kausale Pfad. Somit ist der totale Effekt \(7 * (-9) = -63\)


Welche der in Übung 4 angepassten Modelle liefern ein Konfidenzintervall für X1, welches diesen wahren Effekt beinhaltet?

confint(lm.1)
##                   2.5 %      97.5 %
## (Intercept)  -0.3894395   0.8743871
## X1          -52.8775771 -52.6212384

Das CI des Modells Y ~ X1 enthält den wahren Effekt von -63 nicht.


confint(lm.2)
##                   2.5 %      97.5 %
## (Intercept)  -0.1912035   0.5978999
## X1          -62.7641194 -62.0675856
## X2            5.3923759   5.7842785

Das CI des Modells Y ~ X1 + X2 enthält den wahren Effekt von -63 nicht.


confint(lm.3)
##                  2.5 %      97.5 %
## (Intercept)  -0.191507   0.7182602
## X1          -63.161802 -62.2379319
## X3           49.458437  54.1724045

Das CI des Modells Y ~ X1 + X3 enthält den wahren Effektvon -63 (wie erwartet).


confint(lm.4)
##                   2.5 %     97.5 %
## (Intercept) -0.07010363  0.0412447
## X1          -0.22836472  0.5604571
## X2           5.63215692  5.6874480
## X4          -9.02360583 -8.9114537

Das CI des Modells Y ~ X2 + X4 enthält den wahren Effektvon -63 nicht. Das Resultat ist extrem weit weg von wahren Wert, weil fälschlicherweise für den Mediator korrigiert wird.


confint(lm.5)
##                   2.5 %      97.5 %
## (Intercept)  -0.1851449   0.6027775
## X1          -63.0865000 -62.2864055
## X2            4.7381575   5.5170840
## X3            1.4956063   9.6221701

Das CI des Modells Y ~ X1 + X2 + X3 enthält den wahren Effekt von -63 (wie erwartet).

Diese Ergebnisse sind konsistent mit jenen aus Übung 2.