library(pwr)
N <- 1000 # Anzahl Hypothesentests
rho <- 0.5 # Basisrate
alpha <- 0.05 # Signifikanzniveau der einzelnen Hypothesentests
delta <- 0.3 # Wahre Effektstärke, falls ein Effekt vorliegt
n <- 175 # Stichprobengröße pro Gruppe (t-Test, unabhängige Stichproben, ungerichtet)
power <- pwr.t.test(n = n, d = delta, sig.level = alpha)$power # Power der einzelnen Hypothesentests
set.seed(1) # Seed garantiert immer die gleichen Zufallszahlen für die Simulation 
# Simuliere N wahre Hypothesen mit Basisrate rho:
# 0: H0 ist war, 1: H1 ist wahr
H_Wahrheit <- sample(c(rep(0, time = N * rho), rep(1, times = N * (1 - rho))))
## Simulation ##
# Simuliere Testentscheidungen
H_Entscheidung <- rep(NA, N) # Erstelle leeren Vektor der Länge N
for (j in 1:N) {
  if (H_Wahrheit[j] == 0) {
    H_Entscheidung[j] <- rbinom(1, size = 1, prob = alpha)
    }
  if (H_Wahrheit[j] == 1) {
    H_Entscheidung[j] <- rbinom(1, size = 1, prob = power)
  }
  }
####
# Vergleiche wahre Hypothesen mit Testentscheidungen
Tabelle <- table(H_Wahrheit, H_Entscheidung)Übungsblatt 2
Nicht zusammengesetzte Hypothesentests, Metaanalyse
- Das folgende R-Skript enthält eine Simulation von N = 1000 voneinander unabhängigen Hypothesentests mit nicht zusammengesetzten Hypothesen. - Bonus: Beschreiben Sie kurz, was im gegebenen R-Skript im Abschnitt - ## Simulation ##passiert.TippLösung- Für jeden der N Hypothesentests wird mithilfe des „For Loops” eine Testentscheidung getroffen. Im ersten Durchgang des For Loops hat die Variable j den Wert 1, im zweiten Durchgang den Wert 2, …, im letzten Durchgang den Wert N, also - for (j in 1:N). Falls für den Hypothesentest j die H0j wahr ist, also- if (H_Wahrheit[j] == 0), wird eine Bernoulli-verteilte Zufallsvariable mit Parameter \(\pi = \alpha\) gezogen. Falls für den Hypothesentest j die H1j wahr ist, also- if (H_Wahrheit[j] == 1), wird eine Bernoulli-verteilte Zufallsvariable mit Parameter \(\pi = 1 - \beta\) gezogen. Der Vektor- H_Entscheidungenthält damit nach dem letzten Durchgang des For Loops an einer Stelle j eine 0, falls im Hypothesentest j eine Entscheidung für die Nullhypothese H0j getroffen wurde und eine 1, falls eine Entscheidung für die Alternativhypothese H1j getroffen wurde.
- Wie viele Fehler 1. Art werden in der Simulation beobachtet. TippLösung- Ergebnis der Simulation: - Tabelle- H_Entscheidung H_Wahrheit 0 1 0 474 26 1 111 389- Es werden 26 Fehler 1. Art beobachtet. 
- Wie hoch ist in der Simulation der beobachtete Anteil der Fehler 1. Art an allen Tests, in denen die Nullhypothese gilt? TippLösung- Der beobachtete Anteil der Fehler 1. Art an allen Tests, in denen die Nullhypothese gilt beträgt: - 26 / (474 + 26) = 0.052 
- Berechnen Sie für die vorgegebene Situation die Wahrscheinlichkeit, dass mindestens ein Fehler erster Art auftritt. Verwenden Sie bei der Berechnung ein Signifikanzniveau von \(\alpha = 0.05\) für die einzelnen Hypothesentests. TippLösung- Wir wollen die Wahrscheinlichkeit, bei den N = 1000 voneinander unabhängigen Hypothesentests mindestens einen Fehler 1. Art zu begehen berechnen, wenn wir dabei wissen, dass in der Hälfte der Tests die Nullhypothese richtig ist. \[\alpha^{*} = 1 - (1 - \alpha)^{N} = 1 - (1 - 0.05)^{500} \approx 1\] - Es kommt also bei 1000 Hypothesentests mit einem Signifikanzniveau von 0.05, falls für die Hälfte der Tests die Nullhypothese gilt, mit fast 100 prozentiger Sicherheit zu mindestens einem Fehler 1. Art. 
- Wie hoch ist in der Simulation der beobachtete Anteil der falschen Entscheidungen für die Alternativhypothese an allen Entscheidungen für die Alternativhypothese. TippLösung- Der beobachtete Anteil der falschen Entscheidungen für die Alternativhypothese an allen Entscheidungen für die Alternativhypothese beträgt: - 26 / (26 + 389) = 0.063 
- Berechnen Sie für die vorgegebene Situation die False Discovery Rate. Verwenden Sie bei der Berechnung die in der Simulation festgelegten Werte für \(\alpha,\rho,1 - \beta\) . TippLösung- \[FDR = \frac{\alpha \cdot \rho}{\alpha \cdot \rho + (1 - \beta) \cdot (1 - \rho)} = \frac{0.05 \cdot 0.5}{0.05 \cdot 0.5 + 0.8 \cdot (1 - 0.5)} = 0.059\] - Obwohl die FWER sehr hoch ist, ist die FDR mit einem Wert von 0.059 immer noch vertretbar klein. Im Gegensatz zur FWER ist die FDR hier eine für die Praxis sehr sinnvolle Größe, da man sich für die einzelnen Tests interessiert. Ist die FDR klein, ist es plausibel, dass im Falle eines signifikanten Testergebnisses auch tatsächlich die Alternativhypothese wahr ist. 
- Kontrollieren Sie mit der Bonferroni-Methode die Family-Wise Error Rate auf den Wert 0.05 und wiederholen Sie die Simulation (Hinweis: Achten Sie darauf, im Skript auch die Power neu zu berechnen). Wie hoch ist der beobachtete Anteil der Entscheidungen für die Alternativhypothese an allen Tests, in denen die Alternativhypothese gilt. TippLösung- Unter Verwendung des Bonferroni-korrigierten Signifikanzniveaus von - alpha_new <- 0.05 / N alpha_new # Signifikanzniveau der einzelnen Hypothesentests- [1] 5e-05- ergibt sich: - ### Neue Simulation der Testentscheidungen: Parallel zum Code der Aufgabenstellung, nur mit korrigiertem alpha. N <- 1000 # Anzahl Hypothesentests rho <- 0.5 # Basisrate alpha <- alpha_new delta <- 0.3 # Wahre Effektstärke, falls ein Effekt vorliegt n <- 175 # Stichprobengröße pro Gruppe (t-Test, unabhängige Stichproben, ungerichtet) power <- pwr.t.test(n = n, d = delta, sig.level = alpha)$power # Power der einzelnen Hypothesentests set.seed(1) # Seed garantiert immer die gleichen Zufallszahlen für die Simulation # Simuliere N wahre Hypothesen mit Basisrate rho: # 0: H0 ist war, 1: H1 ist wahr H_Wahrheit <- sample(c(rep(0, time = N * rho), rep(1, times = N * (1 - rho)))) ## Simulation ## # Simuliere Testentscheidungen H_Entscheidung <- rep(NA, N) # Erstelle leeren Vektor der Länge N for (j in 1:N) { if (H_Wahrheit[j] == 0) { H_Entscheidung[j] <- rbinom(1, size = 1, prob = alpha) } if (H_Wahrheit[j] == 1) { H_Entscheidung[j] <- rbinom(1, size = 1, prob = power) }} #### # Vergleiche wahre Hypothesen mit Testentscheidungen Tabelle <- table(H_Wahrheit, H_Entscheidung) Tabelle- H_Entscheidung H_Wahrheit 0 1 0 500 0 1 445 55- Der beobachtete Anteil der Entscheidungen für die H1 an allen Tests in denen die H1 gilt beträgt 55 / (445 + 55) = 0.110. - Würde man die FWER kontrollieren tritt zwar mit hoher Sicherheit kein Fehler 1. Art mehr auf und auch die FDR ist nahe 0. Allerdings ist dann die Power mit \(1- \rho \approx 0.1\) so gering, dass fast keine der wahren Alternativhypothesen tatsächlich erkannt wird. Dies wäre in der Praxis keine sinnvolle Situation. 
 
- Sie vermuten, dass Personen mit Narzissmus im Mittel eine höhere (stetige) Depressionsschwere aufweisen als Personen ohne Narzissmus. Dabei können Sie auf N = 3 bereits veröffentlichte Studien zurückgreifen. Die folgende Tabelle zeigt die Ergebnisse der drei Studien, wobei t die Realisation der Teststatistik (t-Test für unabhängige Stichproben mit gerichteten Hypothesen) bezeichnet, p den dazugehörigen p-Wert und n1 sowie n2 die jeweiligen Stichprobengrößen der einzelnen Studien. - \(t\) - \(p\) - \(n_1\) - \(n_2\) - Studie 1 - 1.717 - 0.045 - 40 - 40 - Studie 2 - 3.200 - 0.001 - 20 - 20 - Studie 3 - - 0.842 - 0.800 - 200 - 200 - Stellen Sie die statistischen Hypothesen für den Hypothesentest der Metaanalyse auf. TippLösung- \[H_0: \delta \leq 0\] - \[H_1: \delta > 0\] 
- Berechnen Sie für alle drei Studien die einzelnen Schätzwerte \(d_{j}\) für Cohen's \(\delta\). TippLösung- \[ \begin{aligned} d_{1} &= t_{1} \cdot \sqrt{\frac{n_{11} + n_{21}}{n_{11} \cdot n_{21}}} = 1.717 \cdot \sqrt{\frac{40 + 40}{40 \cdot 40}} = 0.383 \\ d_{2} &= 3.200 \cdot \sqrt{\frac{20 + 20}{20 \cdot 20}} = 1.012 \\ d_{3} &= - 0.842 \cdot \sqrt{\frac{200 + 200}{200 \cdot 200}} = - 0.084 \end{aligned} \] 
- Berechnen Sie den metaanalytischen Schätzwert \(d\) für Cohen's \(\delta\). TippLösung\[\begin{aligned} {\widehat{\sigma}}_{1\ wert}^{2} &= \frac{n_{11} + n_{21}}{n_{11} \cdot n_{21}} + \frac{d_{1}^{2}}{2 \cdot \left( n_{11} + n_{21} \right)} = \frac{40 + 40}{40 \cdot 40} + \frac{{0.383}^{2}}{2 \cdot (40 + 40)} = 0.051 \\ {\widehat{\sigma}}_{2\ wert}^{2} &= \frac{20 + 20}{20 \cdot 20} + \frac{{1.012}^{2}}{2 \cdot (20 + 20)} = 0.113\\ {\widehat{\sigma}}_{3\ wert}^{2} &= \frac{200 + 200}{200 \cdot 200} + \frac{{- 0.084}^{2}}{2 \cdot (200 + 200)} = 0.010 \\ \\ d &= \frac{1}{\sum_{j = 1}^{N}w_{j}}\sum_{j = 1}^{N}{w_{j} \cdot d_{j}} = \\ &= \frac{1}{\frac{1}{0.051} + \frac{1}{0.113} + \frac{1}{0.010}} \cdot \left( \frac{1}{0.051} \cdot 0.383 + \frac{1}{0.113} \cdot 1.012 + \frac{1}{0.010} \cdot - 0.084 \right) = \\ &= 0.063 \end{aligned}\]
- Geben Sie den kritischen Bereich für den metaanalytischen Hypothesentest bei einem Signifikanzniveau von 0.005 an. TippLösung- Die Teststatistik des metaanalytischen Hypothesentests ist unter der H0 approximativ standardnormalverteilt: - qnorm(0.995, 0, 1)- [1] 2.575829- \[K_{T} = \lbrack + 2.576;\ + \infty\lbrack\] 
- Treffen Sie die Testentscheidung und interpretieren Sie das Ergebnis. TippLösung\[\begin{aligned} t &= \left( {\widehat{\theta}}_{wert} - \theta_{0} \right)\sqrt{\sum_{j = 1}^{N}w_{j}} = 0.063\sqrt{\frac{1}{0.051} + \frac{1}{0.113} + \frac{1}{0.010}} = 0.714 \\ t &= 0.714\ \notin \ K_{T} = \lbrack + 2.576;\ + \infty\rbrack \end{aligned}\]- Entscheidung für die Nullhypothese, dass Personen mit Narzissmus im Mittel keine höhere Depressionsschwere aufweisen als Personen ohne Narzissmus. 
 
- In fünf verschiedenen Studien wurde jeweils überprüft, ob sich Personen mit Angststörung und Personen mit Depression in ihrer mittleren negativen Selbstbewertung unterscheiden. Laden Sie die folgenden Datensätze herunter: 
 , , , ,
 Verwenden Sie für alle Teilaufgaben ein Signifikanzniveau von 0.005.HinweisDatensätze einlesen- daten1 <- read.csv2('Studie1.csv') daten2 <- read.csv2('Studie2.csv') daten3 <- read.csv2('Studie3.csv') daten4 <- read.csv2('Studie4.csv') daten5 <- read.csv2('Studie5.csv')- Berechnen Sie jeweils die Power der einzelnen Hypothesentests unter der Annahme, dass ein Effekt von \(\delta = 0.3\) vorliegt. TippLösung- library(pwr) ## Stichprobengrößen pro Gruppe n1 <- nrow(daten1) n2 <- nrow(daten2) n3 <- nrow(daten3) n4 <- nrow(daten4) n5 <- nrow(daten5) ## Power einzelne Studien p1 <- pwr.t.test(n = n1, d = 0.3, sig.level = 0.005)$power p2 <- pwr.t.test(n = n2, d = 0.3, sig.level = 0.005)$power p3 <- pwr.t.test(n = n3, d = 0.3, sig.level = 0.005)$power p4 <- pwr.t.test(n = n4, d = 0.3, sig.level = 0.005)$power p5 <- pwr.t.test(n = n5, d = 0.3, sig.level = 0.005)$power p1- [1] 0.06696447- p2- [1] 0.05617617- p3- [1] 0.04421589- p4- [1] 0.06256211- p5- [1] 0.427441
- Wie hoch ist unter dieser Annahme die Wahrscheinlichkeit dafür, dass alle einzelnen Hypothesentests signifikant werden? TippLösung- ## Wahrscheinlichkeit dafür, dass alle einzelnen Hypothesentests ## signifikant werden p1 * p2 * p3 * p4 * p5- [1] 4.447976e-06
- Berechnen Sie die Power des Hypothesentests unter der Annahme, dass ein Effekt von \(\delta = 0.3\) vorliegt, für den Fall, dass Sie die Daten aus allen fünf Studien zusammenfügen würden. TippLösung- ## Power zusammengefasste Studien pwr.t.test(n = n1 + n2 + n3 + n4 + n5, d = 0.3, sig.level = 0.005)- Two-sample t test power calculation n = 297 d = 0.3 sig.level = 0.005 power = 0.7985948 alternative = two.sided NOTE: n is number in *each* group
- Führen Sie die Hypothesentests in allen fünf Studien getrennt durch und treffen Sie jeweils eine Testentscheidung. TippLösung- ## t-Test Studie 1 t.test(daten1$depression, daten1$angst, var.equal = TRUE)- Two Sample t-test data: daten1$depression and daten1$angst t = 2.9677, df = 78, p-value = 0.003982 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 0.218807 1.110645 sample estimates: mean of x mean of y 0.58613300 -0.07859292- Der mithilfe von R ermittelte \(p\)-Wert beträgt \(p = 0.0040\). Da \(p = 0.0040 < \alpha = 0.005\) entscheiden wir uns für die Alternativhypothese. - ## t-Test Studie 2 t.test(daten2$depression, daten2$angst, var.equal = TRUE)- Two Sample t-test data: daten2$depression and daten2$angst t = 4.4292, df = 68, p-value = 3.523e-05 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 0.5132888 1.3550106 sample estimates: mean of x mean of y 1.0388052 0.1046555- Der mithilfe von R ermittelte \(p\)-Wert beträgt \(p < 0.0001\). Da \(p < 0.0001 < \alpha = 0.005\) entscheiden wir uns für die Alternativhypothese. - ## t-Test Studie 3 t.test(daten3$depression, daten3$angst, var.equal = TRUE)- Two Sample t-test data: daten3$depression and daten3$angst t = -0.17864, df = 56, p-value = 0.8589 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -0.6599655 0.5518950 sample estimates: mean of x mean of y 0.1319587 0.1859939- Der mithilfe von R ermittelte \(p\)-Wert beträgt \(p = 0.8589\). Da \(p = 0.8589 > \alpha = 0.005\) entscheiden wir uns für die Nullhypothese. - ## t-Test Studie 4 t.test(daten4$depression, daten4$angst, var.equal = TRUE)- Two Sample t-test data: daten4$depression and daten4$angst t = -0.79885, df = 74, p-value = 0.4269 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -0.6169705 0.2638369 sample estimates: mean of x mean of y 0.0563887 0.2329555- Der mithilfe von R ermittelte \(p\)-Wert beträgt \(p = 0.4269\). Da \(p = 0.4269 > \alpha = 0.005\) entscheiden wir uns für die Nullhypothese - ## t-Test Studie 5 t.test(daten5$depression, daten5$angst, var.equal = TRUE)- Two Sample t-test data: daten5$depression and daten5$angst t = -0.21165, df = 308, p-value = 0.8325 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -0.2572783 0.2073056 sample estimates: mean of x mean of y -0.06593888 -0.04095250- Der mithilfe von R ermittelte \(p\)-Wert beträgt \(p = 0.8325\). Da \(p = 0.8325 > \alpha = 0.005\) entscheiden wir uns für die Nullhypothese. 
- Fügen Sie alle Datensätze mithilfe der Funktion - rbind()zusammen, führen Sie in dieser Gesamtstichprobe den Hypothesentest durch und berechnen Sie mithilfe der Funktion- cohen.d()aus dem effsize package den Punktschätzwert und ein 95%-Konfidenzintervall für \(\delta\).HinweisHinweise- daten <- rbind(daten1, daten2, daten3, daten4, daten5) cohen.d(Variable1, Variable2) # Befehl ist im Paket effsizeTippLösung- ## t-Test und KI für delta zusammengefasste Studien daten <- rbind(daten1, daten2, daten3, daten4, daten5) t.test(daten$depression, daten$angst, var.equal = TRUE)- Two Sample t-test data: daten$depression and daten$angst t = 1.8415, df = 592, p-value = 0.06605 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -0.01055955 0.32796580 sample estimates: mean of x mean of y 0.1870456 0.0283425- library(effsize) cohen.d(daten$depression, daten$angst)- Cohen's d d estimate: 0.1511116 (negligible) 95 percent confidence interval: lower upper -0.01028429 0.31250758
- Berechnen Sie die Punktschätzwerte für \(\delta\) getrennt für die einzelnen Studien, berechnen Sie auf der Basis dieser Schätzwerte ein kombiniertes metaanalytisches 95%-KI für \(\delta\) und führen Sie den kombinierten metaanalytischen Hypothesentest durch. TippLösung- ## Metaanalyse alle Studien ## Cohens d einzelne Studien d1 <- cohen.d(daten1$depression, daten1$angst)$estimate d2 <- cohen.d(daten2$depression, daten2$angst)$estimate d3 <- cohen.d(daten3$depression, daten3$angst)$estimate d4 <- cohen.d(daten4$depression, daten4$angst)$estimate d5 <- cohen.d(daten5$depression, daten5$angst)$estimate ds <- c(d1, d2, d3, d4, d5) ## Gewichte einzelne Studien w1 <- 1 / (((2*n1)/(n1^2)) + ((d1^2) / (4*n1))) w2 <- 1 / (((2*n2)/(n2^2)) + ((d2^2) / (4*n2))) w3 <- 1 / (((2*n3)/(n3^2)) + ((d3^2) / (4*n3))) w4 <- 1 / (((2*n4)/(n4^2)) + ((d4^2) / (4*n4))) w5 <- 1 / (((2*n5)/(n5^2)) + ((d5^2) / (4*n5))) ws <- c(w1, w2, w3, w4, w5) ## Kombinierter Schätzwert für delta d <- sum(ds * ws) / sum(ws) d- [1] 0.1571459- ## KI für delta d - 1.96/sqrt(sum(ws))- [1] -0.005501724- d + 1.96/sqrt(sum(ws))- [1] 0.3197936- ## Hypothesentest für delta t_statistik <- d * sqrt(sum(ws)) t_statistik- [1] 1.893701- 2 * pnorm(-t_statistik)- [1] 0.05826471- Die metaanalytischen Methoden ergeben einen Schätzwert von \(\hat{\delta}_{Wert} = 0.16\) und ein Konfidenzintervall von \(KI_{\delta} = [-0.01, 0.32]\). Es gibt zwar leichte Abweichungen zu den aus allen Datensätzen zusammen berechneten Werten oben, jedoch sind diese vernachlässigbar. Genauso wie oben würden wir den metaanalytischen Hypothesentest bei einem \(\alpha = 0.05\) als nicht signifikant einschätzen. - Für den (üblichen) Fall, dass nicht alle Daten in ihrer Rohform für eine Metaanalyse vorliegen, sind die hier verwendeten metaanalytischen Methoden eine gute Alternative um einen Effekt zu schätzen bzw. zu testen. 
- Führen Sie die Berechnungen aus Teilaufgabe f nur auf Basis der Studien durch, in denen in Teilaufgabe d ein signifikantes Ergebnis herauskam. TippLösung- ## Metaanalyse nur mit Studien 1 und 2 ds12 <- c(d1, d2) ws12 <- c(w1, w2) d12 <- sum(ds12 * ws12) / sum(ws12) d12 - 1.96/sqrt(sum(ws12))- [1] 0.5057774- d12 + 1.96/sqrt(sum(ws12))- [1] 1.17505- t12 <- d12 * sqrt(sum(ws12)) t12- [1] 4.922392- 2 * pnorm(-t12)- [1] 8.549259e-07- Wir sehen also, dass in einem Fall der durch Publikationsbias auch tatsächlich auftreten könnte (nur signifikante Studien werden verwendet) die Metaanalyse zu einer fehlerhaften Einschätzung des Effekts kommen würde. - Für die Generalisierbarkeit der Aussagen einer Metaanalyse ist es also entscheidend, welche Studien darin aufgenommen werden. Eine systematische Vorauswahl, wie beispielsweise nur signifikante Studien zu verwenden, für dazu, dass metaanalytische Schätzwerte und Hypothesentests im Sinne genau dieser Vorauswahl verzerrt werden.