Die folgende 2x2 Tabelle zeigt die Daten einer Studie, welche durchgeführt wurde, um die Wirksamkeit von Aspirin zur Prävention eines frühzeitigen Todes nach einem Herzinfarkt zu evaluieren. Hier findest du weitere Informationen zum den Daten.
## outcome
## treatment survived death
## placebo 354 52
## aspirin 725 85
Du kannst dir diese Tabelle in R
selber “nachbauen”:
# Matrix anhand der gegebenen Werte erstellen
m <- matrix(c(354, 52, 725, 85), byrow = TRUE, ncol = 2)
# Reihen und Spalten benenen
rownames(m) <- c("placebo", "aspirin")
colnames(m) <- c("survived", "died")
# aus einer Matrix eine Tabelle machen
tab <- as.table(m)
tab
## survived died
## placebo 354 52
## aspirin 725 85
Manchmal möchte man auf Grundlage einer 2x2 Tabelle die nicht
aggregierten Daten zurückgewinnen (z.B. um Grafiken zu erstellen). Dazu
gibt es eine praktische Funktion aus dem Paket rstatix
.
library(rstatix)
df.aspirin <- counts_to_cases(tab)
# Variablen des erstellen DF's benennen
names(df.aspirin) <- c("gruppe", "outcome")
head(df.aspirin)
## gruppe outcome
## 1 placebo survived
## 2 placebo survived
## 3 placebo survived
## 4 placebo survived
## 5 placebo survived
## 6 placebo survived
Verwende für die Aufgaben die oben gezeigte Tabelle
tab
.
Berechne anhand der Normalapproximation für beide Gruppen jeweils die Proportion \(\hat{\pi}\) der Personen, welche gestorben sind sowie ein dazugehörigens 95% CI.
\[ SE_{\hat{\pi}} = \sqrt{\frac{\hat{\pi}(1-\hat{\pi})}{n}}, \]
Vergleiche die manuellen Berechnungen mit dem Resultat der in
R
implementierten Funktion prop.test()
.
Interpretiere!
Wir basieren die Berechnungen auf den folgenden Angaben:
## survived died
## placebo 354 52
## aspirin 725 85
Anhand der Tabelle berechnen wir zuerst die Proportion, den Standardfehler und schliesslich das 95% CI. Beachten Sie dass
\[ SE_{\hat{\pi}} = \sqrt{\frac{\hat{\pi}(1-\hat{\pi})}{n}}. \]
cases <- tab[, 2] # Todesfälle pro Gruppe
n <- tab[, 1] + tab[, 2] # n pro Gruppe
prop <- cases/n # Proportion pro Gruppe
se.prop <- sqrt((prop * (1-prop))/n) # Standardfehler pro Gruppe
CI.lower <- prop-1.96*se.prop
CI.upper <- prop+1.96*se.prop
cbind(CI.lower, CI.upper)
## CI.lower CI.upper
## placebo 0.09557231 0.1605853
## aspirin 0.08383222 0.1260443
Mit prop.test()
erhalten wir die folgenden
Resultate.
Placebo:
##
## 1-sample proportions test with continuity correction
##
## data: cases["placebo"] out of n["placebo"], null probability 0.5
## X-squared = 223.16, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.09793556 0.16545553
## sample estimates:
## p
## 0.1280788
Aspirin:
##
## 1-sample proportions test with continuity correction
##
## data: cases["aspirin"] out of n["aspirin"], null probability 0.5
## X-squared = 504.1, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.08510476 0.12860969
## sample estimates:
## p
## 0.1049383
Die Proportionen betragen 12.81% (Placebo), bzw. 10.49% (Aspirin).
Weil das \(n\) relativ gross ist,
führt die Berechnung unter der Normalapproximation fast zum gleichen
Ergebnis wie die prop.test()
Funktion. Wir sehen, dass sich
die 95% CIs der beiden Gruppen überlappen. Aus diesem Grund wissen wir
bereits jetzt, dass auf dem 5%-Niveau keine statistische Evidenz gegen
\(H_0\) vorliegt, welche besagt, dass
sich die beiden Proportionen nicht unterscheiden.
Standardmässig testet prop.test()
, ob sich die
Proportion von 0.5 unterscheidet (\(H_0: \pi =
0.5\)). In diesem Fall interessiert uns dieser Test (und folglich
der P-Wert nicht). Mit dem Argument p = …
könnte man \(H_0\) individuell anpassen. Es kommt bei
Proportionen jedoch häufig vor, dass man primär an der Genauigkeit, also
einem 95% CI interessiert ist.
Es wird weiterhin mit der 2x2 Tabelle von oben gerechnet.
Berechnen Sie die Proportionsdifferenz zwischen der Placebo- und der Aspiringruppe und berechnen Sie mit Hilfe der Normalapproximation ein 95% CI und einen P-Wert für diese Differenz.
Wiederholen Sie die Berechnungen mit Hilfe der
prop.test()
Funktion. Vergleichen und Interpretieren
Sie.
Wir berechnen die Differenz
\[ \hat{\pi_1}-\hat{\pi_2} \]
und den Standardfehler für diese Differenz
\[ SE_{\hat{\pi_1}-\hat{\pi_2}} = \sqrt{SE_{\hat{\pi_1}}^2 + SE_{\hat{\pi_2}}^2}. \]
Ob Sie \(\hat{\pi_1}-\hat{\pi_2}\) oder \(\hat{\pi_2}-\hat{\pi_1}\) rechnen, spielt keine Rolle, solange die Interpretation sinngemäss erfolgt.
prop.diff <- prop["placebo"] - prop["aspirin"]
se.prop.diff <- sqrt(se.prop["placebo"]^2 + se.prop["aspirin"]^2)
CI.diff.lower <- prop.diff-1.96*se.prop.diff
CI.diff.upper <- prop.diff+1.96*se.prop.diff
cbind(CI.diff.lower, CI.diff.upper)
## CI.diff.lower CI.diff.upper
## placebo -0.01561689 0.06189798
Den P-Wert berechnen wir via Z-Transformation:
## placebo
## 0.2419047
Mit der prop.test()
Funktion sind die Ergebniss sehr
ähnlich, aber ganuer:
##
## 2-sample test for equality of proportions with continuity correction
##
## data: cases out of n
## X-squared = 1.2264, df = 1, p-value = 0.2681
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## -0.01746498 0.06374608
## sample estimates:
## prop 1 prop 2
## 0.1280788 0.1049383
Die Proportion der Personen, welche gestorben sind, ist in der Aspiringruppe 2.3% tiefer. Wir vertrauen zu 95% darauf, dass die wahre Proportionsdifferenz im Intervall [-0.017; 0.064] liegt. Das 95% CI sagt uns, dass die Proportionsdifferenz sowohl negativ wie positiv sein kann. Die Evidenz gegen \(H_0\) ist also schwach. Dies bestätigt der hohe P-Wert: Die Wahrscheinlichkeit für einen Unterschied von 2.3% (oder einen extremeren) unter der Annahme, dass \(H_0\) stimmt, ist 26.81%.