Kapitel 21 Mit Statistik Fragen beantworten und Hypothesen testen

Wir können die Statistik benutzen, um eine Stichprobe zu beschreiben. Das nennen wir beschreibende Statistik. Hier schliessen wir nicht von der Stichprobe auf die Population.

Wir schreiben zum Beispiel einen Jahresbericht über unsere Patienten des Jahres 2020 und ziehen keine Schlüsse auf andere Patienten. Uns interessiert hier der Sampling Error nicht (der interessiert uns nur, wenn wir Rückschlüsse auf die Population ziehen.)

Wir können aber auch Fragen über die Population stellen, wie: “Wie oft Stürzen Frauen pro Jahr im Alter zwischen 65 und 70 Jahren?” oder “Wie ist die Lebensqualität bei Männer im Alter zwischen 65 und 70 Jahren?”. Hier müssen wir den *Sampling Error” mitberücksichtigen. Am besten gibt man in diesem Falle das sogenannte 95% Konfidenzintervall an. Dieses wird mit dem Standardfehler berechnet.

Beispiel: Nehmen wir an, dass der wahre Mittelwert der Lebensqualität der Männer im Alter zwischen 65 und 70 Jahren 80 Punkte auf einer Skala von 0 bis 100 ist, und die wahre Standardabweichung wäre 12.

Wissen Sie noch, wie wir den Mittelwert und die Standardabweichung der Population genannt haben?

Ja genau, \(\mu\) und \(\sigma\).

Nun haben wir eine Stichprobe von 100 Männern gesammelt. Wir berechnen den Mittelwert.

# https://rpruim.github.io/s341/S19/from-class/MathinRmd.html
library(gganimate)
library(gifski)
library(png)
library(fmsb)
library(tidyverse)

Hier simulieren wir wieder Daten, wir ziehen 100 Werte zufällig aus einer Population mit \(\hat{\mu}\) 80 und \(\sigma\) = 12.

set.seed(125)
sample<-rnorm(100, 80, 12)

Zusammenfassung der Stichprobe:

summary(sample)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   36.73   73.47   82.08   81.20   89.45  108.80

Wir sehen, dass der Mittelwert der Stichprobe 81.2 ist. Dieser Mittelwert der Stichprobe ist nun unsere Schätzung, auf englisch Point Estimate (Punktschätzer) für \(\mu\) der Population aller Männer im Alter zwischen 65 und 70 Jahren. Der Mittelwert einer Stichprobe schreiben wir oft auch als \(\bar{x}\) und da dies der Punktschätzer für \(\mu\) ist, nennen wir es oft auch \(\mu\) Dach oder auf englisch \(\mu\) hat, (\(\mu\) mit einem Hut), geschrieben so: \(\hat{\mu}\).

Nun wollen wir das 95% Konfidenzintervall um diesen Punktschätzer berechnen.

  • Schritt 1: Berechnen des Standardfehlers (SE): \(\frac{sd}{\sqrt{n}}\)
  • Schritt 2: Der untere Rand des 95% Konfidenzintervalles wird wie folgt berechnet: \(\bar{x}\) - 1.96 * SE
  • Schritt 3: Der obere Rand des 95% Konfidenzintervalles wird wie folgt berechnet: \(\bar{x}\) + 1.96 * SE

In unserem Beispiel rechnen wir das in R wie folgt:

mw<-mean(sample)
sd(sample)
## [1] 12.73269
se<-sd(sample)/sqrt(length(sample))

Es gibt auch einen Befehl in R, im Packet plotrix, so dass wir das gar nicht manuell berechnen müssten:

plotrix::std.error(sample)
## [1] 1.273269
unterer_Rand_KI<- mw- 1.96*se
oberer_Rand_KI<- mw+ 1.96*se

Das Resultat: Der Mittwelwert ist 81.2 mit einem 95% Konfidenzintervall von 78.7 bis 83.7

Für diese Berechnung haben wir mit 1.96 multipliziert. Dies entspricht der 0.025-Quantile der z-Verteilung. Für kleinere Stichproben sollten wir die t-Verteilungen nehmen (Mehrzahl, da es für jede Stichprobengrösse eine separate t-Verteilung gibt. Doch das lernt ihr später im Master of Science Studium).

21.1 95% Konfidenzintervall

Die Interpretation des 95% Konfidenzintervalls ist nicht ganz trivial. Vereinfacht gesagt: Je schmäler es ist, desto mehr Vertrauen haben wir in unseren Punktschätzer \(\hat{\mu}\). Etwas komplexer ausgedrückt: Wenn wir unendlich viele Stichproben ziehen und für jede Stichprobe das 95% Konfidenzintervall berechnen, so werden 95% der Konfidenzintervalle den wahren Mittelwert beinhalten. Wir können dies graphisch darstellen:

######################################
## Function that summarises the SEs ##
######################################

summarySE <- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE,
                      conf.interval=.95, .drop=TRUE) {
    library(plyr)
    #####################################
    ### Stolen from: http://www.cookbook-r.com/Manipulating_data/Summarizing_data/ 
    # New version of length which can handle NA's: if na.rm==T, don't count them
    length2 <- function (x, na.rm=FALSE) {
        if (na.rm) sum(!is.na(x))
        else       length(x)
    }

    # This does the summary. For each group's data frame, return a vector with
    # N, mean, and sd
    datac <- ddply(data, groupvars, .drop=.drop,
      .fun = function(xx, col) {
        c(N    = length2(xx[[col]], na.rm=na.rm),
          mean = mean   (xx[[col]], na.rm=na.rm),
          sd   = sd     (xx[[col]], na.rm=na.rm)
        )
      },
      measurevar
    )

    # Rename the "mean" column    
    datac <- rename(datac, c("mean" = measurevar))

    datac$se <- datac$sd / sqrt(datac$N)  # Calculate standard error of the mean

    # Confidence interval multiplier for standard error
    # Calculate t-statistic for confidence interval: 
    # e.g., if conf.interval is .95, use .975 (above/below), and use df=N-1
    ciMult <- qt(conf.interval/2 + .5, datac$N-1)
    datac$ci <- datac$se * ciMult

    return(datac)
}
200 95% Konfidenzintervalle. Die roten Konfidenzintervalle beinhalten den wahren Mittelwert nicht. Wir erwarten, dass 5% der 95% Konfidenzinervalle den wahren Mittelwert nicht beinhalten (2.5% oberhalb, 2.5% unterhalb). Diese 5% gelten jedoch nur, wenn wir annähernd unendlich viele Konfidenzintervalle berechnen.

Abbildung 21.1: 200 95% Konfidenzintervalle. Die roten Konfidenzintervalle beinhalten den wahren Mittelwert nicht. Wir erwarten, dass 5% der 95% Konfidenzinervalle den wahren Mittelwert nicht beinhalten (2.5% oberhalb, 2.5% unterhalb). Diese 5% gelten jedoch nur, wenn wir annähernd unendlich viele Konfidenzintervalle berechnen.

In der Abbildung 19.1 sahen wir die rot eingefärbten Konfidenzintervalle, die den wahren Mitelwert, d.h. \(\mu\), nicht beinhalten. Das Problem ist jetzt leider, dass wir in der realen Praxis nie wissen, was das wahre \(\mu\) ist, da wir ja sonst die Studie nicht durchführen müssten. In der realen Praxis haben wir meist auch nur ein Konfidenzinterval vor uns (ausser in einer Meta-Analyse), und wir wissen nicht, ob \(\mu\) innerhalb oder ausserhalb des Konfidenzintervalles liegt. Wir können auch nicht angeben, mit welcher Wahrscheinlichkeit dieses Konfidenzintervall den wahren Wert beinhaltet. Die Interpretation eines 95% Konfidenzintervalles ist nicht ganz einfach, siehe auch folgende Seiten oder hier. Warnung: Nicht verzweifeln, sogar Statistiker:innen verzweifeln an der korrekten Interpretation des Konfidenzintervalles.

21.2 Schätzen versus Hypothesentesten

Wenn wir einen Populationsparameter schätzen wollen, zum Beispiel den Zusammenhang (Korrelation) zwischen zwei Variablen, oder den Effekt einer Behandlung, so können wir den Punktschätzer angeben (z.B. \(\hat{r}\), gesprochen r hat, was soviel bedeutet, wie die Schätzung der Korrelation in der Population). Zusätzlich müssen wir die statistische Präzision angeben, zum Beispiel mit einem Standardfehler. Das wäre das Schätzen. Viele betrachten auch das angeben eines Konfidenzintervalles als Schätzen. Doch sobald das Konfidenzintervall dazu benutzt wird, etwas als statistisch signifikant oder eben als statistisch nicht-signifikant einzustufen (zu dichotomisieren in signifikant / nicht-signifikant), ist es kein pures Schätzen mehr, sondern ein Hypothesentesten.

In der medizinischen Forschung wird heute meistens eine Form des Hypothesentestens durchgeführt. Wir stellen eine Fragestellung auf, wie zum Beispiel die folgenden:

  • Stürzen ältere Frauen (65 Jahre plus) häufiger als Männer (65 Jahre plus)

Beim Hypothesentesten stellen wir nun eine Nullhypothese auf H0 und eine Alternativhypothetese HA (manchmal auch H1 genannt)

  • H0: Risiko Stürze Männer = Risiko Stürze Frauen. Da die H0 und HA immer auf Populationsebene sind, schreiben wir sie mit griechischen Buchstaben: \(\theta\) Stürze Männer = \(\theta\) Stürze Frauen
  • HA: \(\theta\) Stürze Männer \(\not=\) \(\theta\) Stürze Frauen

Nun können wir eine representative Stichprobe ziehen und zum Beispiel während einem Jahr beobachten, ob mehr Männer als Frauen stürzen. Nehmen wir an, wir beobachten 100 Frauen und 100 Männer. Wir haben danach ein Risiko zu stürzen für die Männer und für die Frauen:

  • Proportion / Risiko zu stürzen für Männer: 0.35 (=35%, d.h. 35 der 100 Männer stürzen)
  • Proportion / Risiko zu stürzen für Frauen: 0.38 (=38%, d.h. 38 der 100 Frauen stürzen)

Es gibt verschiene Statistiken, die wir rechnen können. Eine davon ist die sogenannte absolute Risikodifferenz (0.38 - 0.35 = 0.03 (3%) mehr Stürze bei den Frauen. Jetzt können wir ein Konfidenzintervall um diese absolute Risikodifferenz berechnen, oder auch einen p-Wert. Wir tun dies in R mit dem package fmsb

# riskdifference(a, b, N1, N0, CRC=FALSE, conf.level=0.95)

# a The number of disease occurence among exposed cohort.
# b The number of disease occurence among non-exposed cohort.
# N1 The population at risk of the exposed cohort.
# N0 The population at risk of the unexposed cohort.
# CRC Logical. If TRUE, calculate confidence intervals for each risk. Default is FALSE.
# conf.level Probability for confidence intervals. Default is 0.95.

(res<-riskdifference(38, 35, 100, 100, CRC=TRUE, conf.level=0.95))
##                 Cases People at Risk        Risk    Lower CL    Upper CL
## Exposed    38.0000000    100.0000000   0.3800000   0.2848660   0.4751340
## Unexposed  35.0000000    100.0000000   0.3500000   0.2565157   0.4434843
## Total      73.0000000    200.0000000   0.3650000   0.2982784   0.4317216
## 
##  Risk difference and its significance probability (H0: The difference
##  equals to zero)
## 
## data:  38 35 100 100
## p-value = 0.6593
## 95 percent confidence interval:
##  -0.1033784  0.1633784
## sample estimates:
## [1] 0.03
res$estimate
## [1] 0.03
Wir sehen, dass die absolute Risikodifferenz 0.03 ist, mit einem 95% Konfidenzintervall von -0.1 bis 0.16. Die 0.03 (d.h. 3%) ist unsere Punktschätzung, \(\hat{ARR}\) Der p-Wert ist 0.659. Da das Konfidenzintervall die 0 über-, respektive unterschreitet, können wir die Nullhypothese nicht verwerfen. Wir können nicht ausschliessen, dass es keinen Unterschied im Sturzrisiko zwischen Männern und Frauen gibt. Wir dürden aber nicht sagen, dass es keinen Unterschied gibt, da dass Konfidenzintervall auch nicht ausschliessen lässt, dass der Unterschied relevant ist, geht doch das Intervall bis 16%.

Da der p-Wert nicht kleiner als 0.05 ist, können wir die Nullhypothese nicht verwerfen. Die Informmation des p-Wertes und des Konfidenzintervalles sind immer kongruent (Wenn das 95% Konfidenzintervall die Null beinhaltet, ist der p-Wert immer grösser als 0.05, Wenn der eine Rand des Konfidenzintervalles genau auf 0 liegt, ist der p-Wert genau 0.05, wenn das Konfidenzintervall die 0 nicht beinhaltet, ist der p-Wert kleiner als 0.05.

Um dieses Nullhypothesentesten etwas einordnen zu können, müssen wir kurz eine (stark vereinfachte) geschichtliche Abhandlung anschauen:

  • Ein Statistiker namens Fisher interpretierte den p-Wert als kontinuierliche Evidenz gegen die Nullhypothese. Bei gleichbleibendem Effekt (d.h. wir dürfen nicht den P-Wert eines kleinen Effektes gegen den P-Wert eines grösseren Effektes vergleichen): Je kleiner der P-Wert, desto grösser die Evidenz gegen die Nullhypothese. Leider wurde daraus die Dichotomie, dass wir bei p < 0.05 die Nullhypothese verwerfen. Doch heute sind sich eigentlich viele einig, dass dichotomisieren meistens problematisch ist.

  • Neyman & Pearson führten Regeln ein, die bei Entscheidungen helfen sollten.

    Sie führten die Nullhypothese und die Alternativhypothese ein.

    Zwei wichtige Konzepte waren a) die a-priori gesetzte Effekt-Stärke und b) die Fehlerraten Link. Ihr dichotomer Ansatz erlaubte es, Entschiedungen in korrekte und falsche Entscheidungen zu unterteilen: Man könnte fälschlicherweise entscheiden, dass es ein Unterschied vorhanden sei, obschon es in Wahrheit (d.h. in der Population) keinen Unterschied gibt. Das wäre ein Fehler der 1. Art (Typ-I Fehler).

    Man kann jedoch auch entscheiden, dass es keinen Unterschied gäbe, obschon es in Wahrheit (d.h. in der Population) einen Unterschied gibt. Das wäre der Fehler 2. Art (Typ-II Fehler).

    In der Medizin hat es sich durchgesetzt, dass man 5% Fehler der Typ-I akzeptiert, d.h. man sagt, dass es einen Unterschied gibt und man die Nullhypothese verwirft, wenn der p-Wert kleiner als 0.05 ist (d.h. die Wahrscheinlichkeit kleiner als 5% ist, solche Resultate oder extremere zu finden, wenn die Nullhypothese stimmen würde (wenn es in der Population keinen Unteschied gäbe). Generell erachtet man den Typ-II Fehler als weniger schlimm, deswegen akzeptiert man da eine 20% Fehlerwahrscheinlichkeit, d.h. wenn es in der Population einen Unterschied gibt, akzeptiert man, dass in 20% der Studien (Stichproben) die Nullhypothese nicht verworfen wird, d.h. gesagt wird, dass es keinen Unterschied gäbe.

    Ist der p-Wert kleiner als 0.05 (5%), schreibt man in diesem Konzept auch, dass das Resultat statistisch signifikant ist. Dieses Vorgehen wird heute von nicht wenigen Expert:innen kritisiert, wird jedoch immer noch häufig angweandt.

Warum wird es kritisiert: Ein Grund ist die Dichotomisierung an einem künstlichen Schwellenwert. Ein Resultat mit einem p-Wert von 0.049 wird als statistisch signifikant bezeichnet, wärend ein Resultat mit einem p-Wert von 0.05 als nicht-signifikant beschrieben wird. Wer mehr darüber lesen möchte, findet hier eine Übersicht oder hier eine kritische Betrachtung der Signifikanz-Tests in einem Physiotherapie-Journal.

21.3 Vorgehen Hypothesentesten

  • Aufstellen der Nullhypothese H0
  • Aufstellen der Alternativhypothese H1
  • Berechnen der optimalen Stichprobengrösse, so dass wir beim definierten Signifikanzniveau (\(\alpha\), respektive Typ-I Fehlerwahrscheinlichkeit) einem gewünschten Effekt (meist der kleinste klinisch relevante Effekt) eine genügend grosse statistiche Power haben (Power= 1-Typ-II Fehlerwahrscheinlichkeit; gewünscht ist in der Medizin oft 80%, besser wäre 90%).
  • Durchführen der Studie, Berechnen der Test-Statistik (auch Prüfgrösse genannt) und des P-Wertes / Konfidenzintervalles.

    Was ist eine Test-Statistik (Prüfgrösse): Jeder statistische Test gibt eine Test-Statistik, anhand dieser die Wahrscheinlichkeit berechnet werden kann, dass diese Prüfgrösse oder eine extremere zu beobachten, falls die Nullhypothese stimmt. Wenn wir von normalverteilten Daten in der Population ausgehen, so nehmen wir bei grösseren Stichproben die z-Teststatistik. Wir wissen dann - oder können es in einer Tabelle oder mit einem Programm nachschauen - dass zum Beispiel bei einem z-Wert von -1.95996 die Wahrscheinlichkeit 0.025 (2.5%) ist, dass der Wert so oder kleiner ist, falls die Nullhypothese stimmen würde. Bei kleineren Stichproben würden wir die t-Teststatistik auswählen.

Je nach Daten wählt die Statistikerin eine andere Teststatistik aus. Für uns ist es jedoch relativ einfach: Egal welche Test-Statistik benutzt wurde, der P-Wert (oder das Konfidenzintervall), ist für uns immer gleich interpretierbar.

Wie wählt die Statistikerin die Test-Statistik aus? Eine wichtige Rolle spielt die Art der Daten und die Verteilung der Daten in der Population. Doch dazu später mehr.

mean<-0
sd<-30
sample_n<-100
number_of_samples<-1000
population<-rnorm(1000000, mean=mean, sd=sd)

values<-rep(NA, times=number_of_samples*sample_n)
sample_nr<-rep(1:(number_of_samples), each=sample_n)
height<-rep(1:2, each=number_of_samples/2)
id<-1:number_of_samples
data<-data.frame(id,height, sample_nr, values)

detach(package:plyr)

data<-data %>% 
  group_by() %>% 
  mutate(values=sample(population, size=nrow(.), replace=TRUE))

summary<-data %>% 
  group_by(sample_nr) %>% 
  summarise(mean=mean(values), sd=sd(values), se=(sd(values)/100^0.5), height=mean(height))

21.4 Visualisierung der Stichprobenmittelwerte.

Wir machen noch einmal ein Beispiel, bei dem die wahre Differenz 0 ist. Wir ziehen viele Stichproben und zeichnen jedesmal den Mittelwert der Stichprobe ein. Wir können uns ja vorstellen, dass jeder Punkt der Mittelwert der Differenz zwischen Intervention A und Intervention B einer Studie ist. Ist der Mittelwert 0, so heisst das, dass beide Interventionen gleich gut sind. Und wie schon geschrieben: in diesem Beispiel gibt es in Wahrheit keinen Unterschied zwischen Intervention A und Intervention B.

p<-ggplot(data=summary, aes(x=mean))+
    geom_jitter(aes(x=mean, y=0),size=10, colour="#B620EB", alpha=0.06, height=0.01, width=0)+
  theme_classic()+
    theme(axis.title.y=element_blank())+
  geom_density(color="black")+
  labs(x="Mittelwert der Stichproben")+
  theme(axis.text.y = element_blank(), axis.ticks = element_blank())+
  geom_vline(xintercept = (qnorm(0.025, mean(summary$mean), sd(summary$mean), lower.tail = TRUE)), linetype="dotted", 
                color = "red", size=1.5)+
  geom_vline(xintercept = qnorm(0.025, mean(data$values), sd(summary$mean), lower.tail=FALSE), linetype="dotted", 
                color = "red", size=1.5)+
  scale_x_continuous(breaks=seq(-12, 12, 3))

print(p)
Verteilung der 10000 Stichprobenmittelwerte plus Density-Plot. Ausserhalb der roten Linien liegen 5% der Mittelewrte, das heisst, die Wahrscheinlichkeit ist 2.5% dass die Mittelwerte unterhalb und 2.5% dass die Mittelwerte oberhalb des Wertes an den Werten der roten Linie sind. Die Position der Punkte auf der vertikalen Achse hat nichts zu sagen und ist nur zur Vermeidung des Überlappens so gewählt.

Abbildung 21.2: Verteilung der 10000 Stichprobenmittelwerte plus Density-Plot. Ausserhalb der roten Linien liegen 5% der Mittelewrte, das heisst, die Wahrscheinlichkeit ist 2.5% dass die Mittelwerte unterhalb und 2.5% dass die Mittelwerte oberhalb des Wertes an den Werten der roten Linie sind. Die Position der Punkte auf der vertikalen Achse hat nichts zu sagen und ist nur zur Vermeidung des Überlappens so gewählt.

# DT::datatable(summarytools::freq(summary$mean))

Wir können uns das auch noch dynamisch anschauen. Stellen Sie sich vor, jeder Punkt wäre die Veröffentlichung einer Studie. So ergeht es uns doch auch in der Realität: Wir lesen verschiedene Studien, und jede zeigt ein anderes Resultat.

In unserer Simulation ist nur der Zufall verantwortlich für die Unterschiede, in der Realität gibt es noch mehr Gründe: Unterschiede in der Art wie die Therapie durchgeführt wird (Dosierung, Häufigkeit, Dauer,…), verschiedene Fehlerquellen, die eine Verzerrung (Bias) verursachen, unterschiedliche Messinstrumente für die Outcomes, etc.

Take-Home Message: Von einer Studie alleine dürfen wir eigentlich keine Rückschlüsse ziehen, wir sollten immer alle Studien anschauen, das heisst, wir sollten eine systematische Literaturübersicht und eine Meta-Analyse lesen, oder falls es keine gibt, eine erstellen).

Wir simulieren 1000 Studien. Der wahre Effekt, d.h. die Differenz zwischen den Interventionen ist 0. Es ist zum verrückt weren: Obschon es in Wahrheit keinen Unterschied zwischen den Interventionen gibt, sehen wir hier Unterschiede. Wenn wir jetzt ein Konfidenzintervall um jeden Punkt zeichnen würden, würden 5% der Konfidenzintervalle die Nulllinie nicht berühren. Wir würden also in 5% der Studien fälschlicherweise sagen, dass es einen Unterschied zwischen den Therapien gibt.

Abbildung 21.3: Wir simulieren 1000 Studien. Der wahre Effekt, d.h. die Differenz zwischen den Interventionen ist 0. Es ist zum verrückt weren: Obschon es in Wahrheit keinen Unterschied zwischen den Interventionen gibt, sehen wir hier Unterschiede. Wenn wir jetzt ein Konfidenzintervall um jeden Punkt zeichnen würden, würden 5% der Konfidenzintervalle die Nulllinie nicht berühren. Wir würden also in 5% der Studien fälschlicherweise sagen, dass es einen Unterschied zwischen den Therapien gibt.

21.5 Nicht nur eine Studie anschauen. Wir brauchen den Überblick über alle Studien

Wir erstellen hier eine Meta-Analyse. Damit der Forest-Plot (das ist die graphische Dartellung der Meta-Analyse) nicht zu überladen ist, wählen wir zufällig 100 der 1000 Studien aus.

Forest-Plot über die 100 Studien. Wir wissen, dass es in Wahrheit keinen Unterschied zwischen den Interventionen A und B gibt. Hier sehen wir, dass der sogenannte gepoolte Wert, das heisst der gewichtete Mittelwert über alle Studien, nahe bei der Wahrheit ist. Die horizontale Mitte des violetten Diamantes (oder Rhomubs) zeigt diesen gepoolten Mittelwert der Differenzen an, rechts davon ist er in Zahlen beschrieben: 0.32 mit einem 95% Konfizenzinervall von -0.30 bis 0.94. Wir verwerfen also die Nullhypothese nicht. Es gibt jedoch einzelne Studien, die weit von der Wahrheit weg sind. Wir finden 5 statistisch signifikante Studien (Nr. 23, 42, 50, 51 und 84). Vielleicht lesen unsere Kolleginnen und Kollegen nur gerade diese Studien?

Abbildung 21.4: Forest-Plot über die 100 Studien. Wir wissen, dass es in Wahrheit keinen Unterschied zwischen den Interventionen A und B gibt. Hier sehen wir, dass der sogenannte gepoolte Wert, das heisst der gewichtete Mittelwert über alle Studien, nahe bei der Wahrheit ist. Die horizontale Mitte des violetten Diamantes (oder Rhomubs) zeigt diesen gepoolten Mittelwert der Differenzen an, rechts davon ist er in Zahlen beschrieben: 0.32 mit einem 95% Konfizenzinervall von -0.30 bis 0.94. Wir verwerfen also die Nullhypothese nicht. Es gibt jedoch einzelne Studien, die weit von der Wahrheit weg sind. Wir finden 5 statistisch signifikante Studien (Nr. 23, 42, 50, 51 und 84). Vielleicht lesen unsere Kolleginnen und Kollegen nur gerade diese Studien?

Stellt euch vor, die Forscherinnen und Forscher hätten nur die drei statistisch signifikanten Studien veröffentlicht, die zugunsten von Intervention B waren…

Forest-Plot mit einem sogenannten Publication Bias: Die Forscher haben nur die Studien veröffentlicht, die zugunsten der Therapie B statistisch signifikant waren. In unserem Beispiel wissen wir, dass dies ein Bias ist, da wir ja wissen, dass der wahre Effekt 0 ist. Doch in der realen Welt, werden wir dass leider nicht wissen.

Abbildung 21.5: Forest-Plot mit einem sogenannten Publication Bias: Die Forscher haben nur die Studien veröffentlicht, die zugunsten der Therapie B statistisch signifikant waren. In unserem Beispiel wissen wir, dass dies ein Bias ist, da wir ja wissen, dass der wahre Effekt 0 ist. Doch in der realen Welt, werden wir dass leider nicht wissen.

21.6 Was muss ein Bachelor of Science in der Physiotherapie über den p-Wert und das Konfidenzintervall wissen?

  • Der p-Wert und das Konfidenzintervall sind verwandt und geben übereinstimmende Informationen.
  • Der p-Wert und das Konfidenzintervall werden (in vielen Fällen) mit dem Standardfehler berechnet.
  • Wir wissen jetzt, dass der Standardfehler kleiner wird, je grösser die Stichprobe ist.
  • An der Formel zum Standardfehler \[\frac{sd}{\sqrt{n}}\] sehen wir, dass auch die Standardabweichung den Standardfehler beeinflussst.
  • Ausser der Stichprobengrösse und der Standardabweichung der Stichprobe bestimmt auch die Effektgrösse den p-Wert.
set.seed(1)
rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }

A_Nicht_Signifikant_kl0=rnorm2(100, mean=-3,sd=20)
B_Nicht_Signifikant_gr0=rnorm2(100,mean=3,sd=19)
C_Nicht_Signifikant_grgl0=rnorm2(100,mean=3,sd= 15.11931)
D_Nicht_Signifikant_klgl0=rnorm2(100,mean=-3,sd= 15.11931)
E_Signifikant_kl=rnorm2(100,mean=-3, sd=11 )
F_Signifikant_gr=rnorm2(100,mean=3,sd= 11 )
library(dplyr)
data<-data.frame(A_Nicht_Signifikant_kl0,B_Nicht_Signifikant_gr0,C_Nicht_Signifikant_grgl0,D_Nicht_Signifikant_klgl0, E_Signifikant_kl, F_Signifikant_gr )
summary(data)
##  A_Nicht_Signifikant_kl0 B_Nicht_Signifikant_gr0 C_Nicht_Signifikant_grgl0
##  Min.   :-54.739         Min.   :-34.2223        Min.   :-39.665          
##  1st Qu.:-16.430         1st Qu.: -9.1639        1st Qu.: -4.087          
##  Median : -2.888         Median :  0.2347        Median :  2.543          
##  Mean   : -3.000         Mean   :  3.0000        Mean   :  3.000          
##  3rd Qu.:  9.974         3rd Qu.: 13.6855        3rd Qu.: 12.777          
##  Max.   : 48.052         Max.   : 49.5298        Max.   : 41.293          
##  D_Nicht_Signifikant_klgl0 E_Signifikant_kl  F_Signifikant_gr 
##  Min.   :-43.310           Min.   :-30.922   Min.   :-25.280  
##  1st Qu.:-11.340           1st Qu.: -9.758   1st Qu.: -4.571  
##  Median : -3.410           Median : -3.932   Median :  2.860  
##  Mean   : -3.000           Mean   : -3.000   Mean   :  3.000  
##  3rd Qu.:  7.577           3rd Qu.:  3.045   3rd Qu.: 11.321  
##  Max.   : 26.269           Max.   : 33.203   Max.   : 26.560
data_long<-data %>% 
pivot_longer(cols=everything(), 
            names_to="Situation", 
            values_to="Differenz") %>% 
  mutate(Situation=factor(Situation)) %>% 
  mutate(Situation=forcats::fct_reorder(Situation, desc(Situation)))


   
pValue<-data_long %>% 
  dplyr::group_by(Situation) %>% 
  summarise(p_value=t.test(Differenz)$p.value)

        
summary<-data_long %>% 
  group_by(Situation) %>% 
  summarise(mean=mean(Differenz))
library(scales)
library(ggplot2)
ggplot(data=data_long, aes(x=Situation, y=Differenz))+
  stat_summary(data=summary, geom="point", aes(y=mean))+
  stat_summary(geom="errorbar", fun.data=mean_cl_normal, width=0.2)+
  geom_hline(yintercept = 0, linetype="dashed", colour="red",size=1)+
  geom_text(data=pValue, aes(x=Situation, y=16, label=""))+
  geom_text(data=pValue, aes(x=Situation, y=12, label=paste0("p-Wert: ", scales::pvalue_format()(p_value))))+
  scale_y_continuous(breaks=seq(-12,21,3))+
  coord_flip()+
  theme_classic()+
  scale_x_discrete(labels=c("Signifikant", "Signifikant", "Nicht Signifikant", "Nicht Signifikant", "Nicht Signifikant", "Nicht Signifikant"))+
  labs(xlab=NULL)+
  theme(axis.title.y=element_blank())
Verschiedene Studienresultate, inklusive p-Wert. Achtung: In diesem Beispiel kennen wir den wahren Mittelwert der Differenz nicht. Wir wissen deshalb nicht, ob die beiden signifikanten Resultate ein Typ-I Fehler sind.

Abbildung 21.6: Verschiedene Studienresultate, inklusive p-Wert. Achtung: In diesem Beispiel kennen wir den wahren Mittelwert der Differenz nicht. Wir wissen deshalb nicht, ob die beiden signifikanten Resultate ein Typ-I Fehler sind.

Intervention<-c("A vs Placebo", "B vs Placebo", "C vs Placebo")
Studiengrösse<-c(100, 30, 400)
Differenz_Mean<-c(3,3,1)
Differenz_SD<-c(9,9,5)
data<-data.frame(Intervention, Studiengrösse, Differenz_Mean, Differenz_SD)
data<-data %>% 
  mutate(Differenz_SE=Differenz_SD/Studiengrösse^0.5) %>% 
  mutate(t_value=Differenz_Mean/Differenz_SE) %>% 
  mutate(p_value=2*pt(t_value, Studiengrösse-1, lower=FALSE))
  
ggplot(data=data)+
  geom_errorbar(aes(x=Intervention, ymin=Differenz_Mean-1.96*Differenz_SE, ymax=Differenz_Mean+1.96*Differenz_SE, width=0.2))+
  geom_point(aes(x=Intervention, y=Differenz_Mean))+
  geom_hline(yintercept = 0, linetype="dashed", colour="red",size=1)+
  geom_text(data=data, aes(x=Intervention, y=16, label=""))+
  geom_text(data=data, aes(x=Intervention, y=12, label=paste0("p-Wert: ", scales::pvalue_format()(p_value))))+
  scale_y_continuous(breaks=seq(-12,21,3))+
  coord_flip()+
  theme_classic()+
  labs(xlab=NULL)+
  theme(axis.title.y=element_blank())+
  ylab("Differenz zwischen den Interventionen und Placebo. \n Positive Werte = Intervention besser als Placebo")
Wir dürfen nicht nur auf den P-Wert achten. In diesem Beispiel könnte man fälschlicherweise sagen, dass die Intervention A besser ist als die Intervention B. Diese Aussage dürfen wir jedoch nicht machen. Wir dürfen sagen, dass wir bei Intervention B nicht genügend Information über den Effekt haben (wir haben zu wenig Evidenz gegen die Nullhypothese). Man könnte auch fälschlicherweise sagen, dass die Intervention die beste Intervention ist, da sie den kleinsten p-Wert hat. Diese Aussage wäre jedoch falsch. Der Effekt der Intervention C ist kleiner als die Intervention A. Wir haben nur eine höhere statistische Präzision.

Abbildung 21.7: Wir dürfen nicht nur auf den P-Wert achten. In diesem Beispiel könnte man fälschlicherweise sagen, dass die Intervention A besser ist als die Intervention B. Diese Aussage dürfen wir jedoch nicht machen. Wir dürfen sagen, dass wir bei Intervention B nicht genügend Information über den Effekt haben (wir haben zu wenig Evidenz gegen die Nullhypothese). Man könnte auch fälschlicherweise sagen, dass die Intervention die beste Intervention ist, da sie den kleinsten p-Wert hat. Diese Aussage wäre jedoch falsch. Der Effekt der Intervention C ist kleiner als die Intervention A. Wir haben nur eine höhere statistische Präzision.

Die Abbildung 11.7 zeigt uns, dass wir nicht nur auf den p-Wert schauen dürfen, sondern auch die grösse des Effektes berücksichtigen müssen. Intervention A und B hatten den gleichden Effekt in diesen zwei Studien. Bei Intervention B haben wir jedoch nicht genügend Evidenz gegen die Nullhypothese (d.h. wir können nicht ausschliessen, dass es in Wahrheit keinen Effekt gibt. Es kann jedoch gut sein, dass in einem direkten Vergleich von Intervention A gegen B die Intervention B besser abschneidet.). Die Intervention C hat am meisten Evidenz gegen die Nullhypothese (kleinster p-Wert), der Effekt ist jedoch kleiner als bei Intervention A und B, wobei wir wiederum nicht sicher sind, wie der direkte Vergleich C gegen B aussehen würde.

21.7 Statistische Signifikanz versus klinische Relevanz.

Wir können auch einen Schwellenwert für die klinische Relevanz in Studien finden. Der sogenannte Minimal Clinically Important Difference wird für verschiedene Outcomes und Pathologien in Studien ermittelt. Wir können nun die klinische Relevanz von der stastischen Signifikanz unterscheiden. Dies ist in Abbildung 11.8 dargestellt.

knitr::include_graphics("statistische_versus_klinische_relevanz.png")
Fünf Situationen: In der obersten Situation wissen wir nicht viel: das Konfidenzintervall ist so breit, dass wir nicht wissen, ob es einen Unterschied zwischen den Interventionen gibt oder nicht, und wir wissen auch nicht, ob der Effekt klinisch relevant ist. In der zweitobersten Siutation ist der Unterschied zwischen den Interventionen statistisch signifikant, wir können jedoch nicht ausschliessen, dass der Effekt nicht klinisch relevant ist. In der mittleren Situation ist der Unterschied statistisch und klinisch relevant, da der untere Rand des Konfidenzintervalles sowol oberhalb der Nulllinie und oberhalb der Relevanzgrenze liegt. In der zweiuntersten Situation ist der Unterschied zwar nicht statistisch Signifikant (d.h. wir können die Nullhypothese nicht verwerfen), aber der obere Rand des Konfidenzintervalles liegt unterhalb der Relevanzgrenze, somit glauben wir nicht, dass es klinisch relevant ist. In der untersten Situation verwerfen wir die Nullhypothese und wir glauben nicht, dass es klinisch relevant ist. Das ist eine etwas verzwickte Situation: Wir sagen, dass ein Effekt da ist, dass dieser Effekt jedoch zu klein ist um für Patientinnen und Patienten klinisch relevant zu sein.

Abbildung 21.8: Fünf Situationen: In der obersten Situation wissen wir nicht viel: das Konfidenzintervall ist so breit, dass wir nicht wissen, ob es einen Unterschied zwischen den Interventionen gibt oder nicht, und wir wissen auch nicht, ob der Effekt klinisch relevant ist. In der zweitobersten Siutation ist der Unterschied zwischen den Interventionen statistisch signifikant, wir können jedoch nicht ausschliessen, dass der Effekt nicht klinisch relevant ist. In der mittleren Situation ist der Unterschied statistisch und klinisch relevant, da der untere Rand des Konfidenzintervalles sowol oberhalb der Nulllinie und oberhalb der Relevanzgrenze liegt. In der zweiuntersten Situation ist der Unterschied zwar nicht statistisch Signifikant (d.h. wir können die Nullhypothese nicht verwerfen), aber der obere Rand des Konfidenzintervalles liegt unterhalb der Relevanzgrenze, somit glauben wir nicht, dass es klinisch relevant ist. In der untersten Situation verwerfen wir die Nullhypothese und wir glauben nicht, dass es klinisch relevant ist. Das ist eine etwas verzwickte Situation: Wir sagen, dass ein Effekt da ist, dass dieser Effekt jedoch zu klein ist um für Patientinnen und Patienten klinisch relevant zu sein.

21.8 Hilfe zur Auswahl der statistischen Tests

Mit der Zeit sollten Sie natürlich selber in der Lage sein, den richtigen Test auszuwählen, doch am Anfang ist eine Seite wie dieser: https://statistikguru.de/test-entscheidungshilfe/ eine gute Hilfe.

Ein etwas wackliger Vergleich, der aber vielleicht hilft. Die Effektgrösse einer Statistik ist vergleichbar mit dem Inhalt eines Bildes. Der P-Wert spiegelt wieder, wie präzise wir etwas sehen, d.h. wie scharf das Bild ist, oder wie viele Pixel wir haben. Wenn wir zu wenig Pixel haben, können wir keine, oder nur eine ungenaue Angabe über den Inhalt des Bildes machen. Das ist beim p-Wert auch so: haben wir zu wenig statistische Präzision, können wir keine genaue Angabe über die Grösse des Effektes machen. Schauen wir uns einmal die Beispiele in den nächsten beiden Kapitel an.