Kapitel 31 Zwei Arten von Fehler

Wir kennen das Bild schon von der vorherigen Seite - dort stand es für die Reliabilität und die Validität. Diese Darstellung kann jedoch zur Illustration zweier unterschiedlicher Fehler benutzt werden: dem zufälligen Fehler und dem systematischen Fehler.

31.1 Zufälliger Fehler

Wir kennen den zufälligen Fehler schon: Als wir mehrere Stichproben gezogen haben und von jeder Stichprobe die Mittelwerte berechnet haben, sahen wir ja, dass die Mittelwerte nicht immer gleich sind. Wir sahen auch, dass mit der Grösse der Stichprobe diese Variabilität abnahm. Wir haben gesehen, dass die Standardabweichung dieser Stichprobenmittelwerte auch Standardfehler genannt wird. Dieser Standardfehler (Standard Error of the Mean) ist ein Beispiel eines zufälligen Fehlers. Es gibt kein Muster im Fehler, die Mittelwerte der Stichproben variieren zufällig.

Ein zufälliger Fehler kann auch beim Messen zustande kommen: Wenn wir den Goniometer korrekt benutzen, werden wir trotzdem bei jeder Anwendung kleine Abweichungen in der Handhabung machen und so einen zufälligen Fehler einführen.

31.2 Systematischer Fehler

Beim systematischen Fehler gibt es ein System im Fehler, dass heisst, der Fehler ziehlt immer systematisch in eine Richtung. Wie im Bild oben: Wenn es zum Beispiel starker Wind hat, wird der Pfeil der Armbrust immer ein wenig Abweichen - Wenn der Wind gleich gleibt, wird diese Abweichung systematisch immer in die gleiche Richtung gehen.

Oder wenn wir den Goniometer systematisch falsch benutzen, wird der Fehler immer in die gleiche Richtung gehen.

Systematischen Fehler kann es auch geben, wenn wir etwas mit zwei unterschiedlichen Geräten messen. So kann der Blutdruck bei Messungen am Handgelenk systematisch von der klassischen Messung abweichen.

Potentieller systematischer Fehler bei unterschiedlichen Geräten

31.2.1 Pakete für dieses Kapitel

Wir benötigen folgende Pakete:

library(tidyverse)
library(ggplot2)
library(BlandAltmanLeh)

31.3 Beispiele

Wir simulieren ein paar Daten, um die beiden Fehler zu illustrieren. In den folgenden Beispielen zeigen wir fiktive Daten. Jeweils ein Paar macht pro Patient:in Messungen. Die Streudiagramme und die Bland Altmam Plots zeigen die Übereinstimmung der Messungen der Partner.

rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) } # this function is just to make it possible to fix the values of rnorm https://stackoverflow.com/questions/18919091/generate-random-numbers-with-fixed-mean-and-sd?lq=1
set.seed(47598345) # this is just in order that we get the same results, however, there might still be some differences because of difference MAC / PC
ID =1:100


Ms_Perfect<-rnorm(100, 80, 10)
Mr_Perfect<-Ms_Perfect

Ms_Random<-rnorm(100,80,10) 
Mr_Random<-rnorm(100,80,10)

Ms_Bias<-rnorm(100, 80,10)
Mr_Bias<-Ms_Bias+20

Ms_Abitofrandom<-rnorm(100,80,10) 
Mr_Abitofrandom<-Ms_Abitofrandom-(rnorm2(100,0,10))
Ms_Abitofrandom<-Ms_Abitofrandom-(rnorm2(100,0,10))
Ms_Abitofrandomandbias<-rnorm2(100,80,10) 
Mr_Abitofrandomandbias<-rnorm2(100,90,10)

# First, we create some data
data<-data.frame(ID, Ms_Perfect, Mr_Perfect,Ms_Random,Mr_Random,Ms_Bias,Mr_Bias ,Ms_Abitofrandom, Mr_Abitofrandom, Ms_Abitofrandomandbias, Mr_Abitofrandomandbias)
psych::describe(data)

31.4 Streudiagramm für Frau und Herr Perfekt

Frau und Herr Perfekt stimmer immer perfekt überein. Hier gibt es weder zufälligen, noch systematischen Fehler.

ggplot(data=data, aes(x=Ms_Perfect, y=Mr_Perfect))+
  geom_point() +
  coord_cartesian(xlim=c(60,110), ylim=c(60,110))+
  theme_light()
Streudiagramm für Herr und Frau Perfekt. Alle Messungen von Herr und Frau Perfekt stimmen perfekt überein, alle Punkte liegen auf einer Linie (= kein zufälliger Fehler) und die Regressionslinie würde durch 0 gehen (d.h. kein systematischer Fehler).

Abbildung 3.1: Streudiagramm für Herr und Frau Perfekt. Alle Messungen von Herr und Frau Perfekt stimmen perfekt überein, alle Punkte liegen auf einer Linie (= kein zufälliger Fehler) und die Regressionslinie würde durch 0 gehen (d.h. kein systematischer Fehler).

31.4.1 Bland Altman Plot

Das Bland-Altman-Diagramm eignet sich besser zur Bewertung der Übereinstimmung zweier Messungen als das Streudiagramm. In der Bland-Altman-Darstellung werden die Unterschiede zwischen den beiden Messungen auf der vertikalen Achse angezeigt. Auf der horizontalen Achse ist der Durchschnitt der beiden Messungen dargestellt. Jeder Punkt ist die Differenz zwischen den beiden Messungen. In diesem Beispiel der Familie Perfect sehen wir, dass es keinen Unterschied zwischen den beiden Messungen gibt. Und wir sehen keinen Zufallsfehler, d.h. es gibt keine Streuung der Daten in der Vertikalen, d.h. alle Differenzen haben genau den gleichen Wert, nämlich 0.

BlandAltmanLeh::bland.altman.plot(data$Ms_Perfect, data$Mr_Perfect, xlab="Mean Ms Perfect & Ms Perfect", ylab="Differences Ms Perfect - Mr Perfect")
Bland-Altman Plot für Herr und Frau Perfect. Alle Punkte sind auf einer Linie, es gibt keine vertikale Streuung (= kein zufälliger Fehler) und diese Linie geht durch die 0, d.h. die Differenz zwischen den Messungen von Herr und Frau Perfekt ist 0 (= kein systematischer Fehler, kein Bias).

Abbildung 3.2: Bland-Altman Plot für Herr und Frau Perfect. Alle Punkte sind auf einer Linie, es gibt keine vertikale Streuung (= kein zufälliger Fehler) und diese Linie geht durch die 0, d.h. die Differenz zwischen den Messungen von Herr und Frau Perfekt ist 0 (= kein systematischer Fehler, kein Bias).

## NULL

31.5 Frau und Herr Zufällig

Betrachten wir nun ein Beispiel, bei dem beide Messungen völlig zufällig sind. Im Bland-Altman Plot sehen wir, dass es “keinen” systematischen Unterschied zwischen den beiden Bewertern gibt, aber es gibt viel zufälligen Fehler.

family_random<-ggplot(data=data, aes(x=Ms_Random, y=Mr_Random))+
  geom_point()+
  coord_cartesian(xlim=c(60,110), ylim=c(60,110))+
  theme_light()
print(family_random)
Streudiagramm für Herr und Frau Random. Kein systematischer Fehler (d.h. kein Bias), aber viel zufälliger Fehler zwischen den Messungen der beiden.

Abbildung 5.5: Streudiagramm für Herr und Frau Random. Kein systematischer Fehler (d.h. kein Bias), aber viel zufälliger Fehler zwischen den Messungen der beiden.

31.5.1 Bland Altman Plot für Frau und Herr Zufällig

bland.altman.plot(data$Ms_Random, data$Mr_Random,  xlab="Mean Ms Random & Mr Random", ylab="Differences Ms Random  - Mr Random")
Bland-Altman-Diagramm für die Bewertungen von Frau und Herrn Random. Wir sehen keinen systematischen Fehler, d. h. keinen Mittelwertunterschied, aber eine grosse vertikale Streuung der Punkte.

Abbildung 16.1: Bland-Altman-Diagramm für die Bewertungen von Frau und Herrn Random. Wir sehen keinen systematischen Fehler, d. h. keinen Mittelwertunterschied, aber eine grosse vertikale Streuung der Punkte.

## NULL

31.6 Frau und Herr Verzerrung-Bias

Betrachten wir nun ein Beispiel, bei dem kein Zufallsfehler, sondern ein systematischer Fehler (Bias) vorliegt Dies wird im Bland-Altman-Diagramm gut sichtbar. Der Bland-Altman Plot zeigt, dass es eine systematische Differenz von -20 Punkten gibt. Herr Verzerrung-Bias gibt immer 20 Punkte mehr an als Frau Verzerrung-Bias.

family_bias<-ggplot(data=data, aes(x=Ms_Bias, y=Mr_Bias))+
  geom_point(aes(size=1.2), shape=1)+ xlim(0,160)+ylim(0,160)+ # https://ggplot2.tidyverse.org/reference/geom_point.html
    stat_smooth(method="lm",fullrange=TRUE) + # https://stats.stackexchange.com/questions/36207/how-to-predict-or-extend-regression-lines-in-ggplot2
   theme_light()+
  theme(legend.position="none")
  print(family_bias)
## Warning: Removed 10 rows containing missing values (`geom_smooth()`).
Streudiagramm für die Resultate von Herr und Frau Verzerrung-Bias. Kein zufälliger Fehler, jedoch systematischer Fehler (Bias)

Abbildung 12.1: Streudiagramm für die Resultate von Herr und Frau Verzerrung-Bias. Kein zufälliger Fehler, jedoch systematischer Fehler (Bias)

31.6.1 Bland Altman Plot für Frau und Herr Verzerrung-Bias

bland.altman.plot(data$Ms_Bias, data$Mr_Bias,  xlab="Mean Ms Bias & Mr Bias", ylab="Differences Ms Bias & Mr Bias")
Bland-Altman Plot für Herr und Frau Verzerrung-Bias. Wir sehen eine grosse Differenz der Mittelwerte (Bias), aber keine vertikale Streuung (kein zufälliger Fehler).

Abbildung 1.1: Bland-Altman Plot für Herr und Frau Verzerrung-Bias. Wir sehen eine grosse Differenz der Mittelwerte (Bias), aber keine vertikale Streuung (kein zufälliger Fehler).

## NULL

31.7 Frau und Herr Abitofrandom

Betrachten wir nun ein Beispiel, bei dem ein wenig Zufallsfehler vorliegt.

family_abitofrandom<-ggplot(data=data, aes(x=Ms_Abitofrandom, y=Mr_Abitofrandom))+
  geom_point()+
  coord_cartesian(xlim=c(40,110), ylim=c(40,110))+
  geom_smooth(method=lm)+
  theme_classic()
print(family_abitofrandom)
## `geom_smooth()` using formula = 'y ~ x'
Streudiagramm für Herr und Frau Abitofrandom. Wir sehen, dass es keinen systematischen Fehler gibt, aber zufälliger Fehler.

Abbildung 22.1: Streudiagramm für Herr und Frau Abitofrandom. Wir sehen, dass es keinen systematischen Fehler gibt, aber zufälliger Fehler.

31.7.1 Bland Altman Plot Frau und Herr Abitofrandom

bland.altman.plot(data$Ms_Abitofrandom, data$Mr_Abitofrandom, main="This is a Bland-Altman Plot", xlab="Mean Ms Abitofrandom & Mr Abitofrandom", ylab="Differences Ms Abitofrandom & Mr Abitofrandom")
Bland-Altman Plot für Herr und Frau Abitofrandom. Wir sehen keine Differenz der Mittelwerte, jedoch ein wenig vertikale Streuung.

Abbildung 1.2: Bland-Altman Plot für Herr und Frau Abitofrandom. Wir sehen keine Differenz der Mittelwerte, jedoch ein wenig vertikale Streuung.

## NULL

31.8 Frau und Herr A.Bitofrandomandbias

Jetzt sehen wir ein Beispiel für eine Mischung aus Verzerrung und Zufallsfehler

family_a.bitofrandomandbias<-ggplot(data=data, aes(x=Ms_Abitofrandomandbias, y=Mr_Abitofrandomandbias))+
  geom_point()+
  coord_cartesian(xlim=c(40,110), ylim=c(40,110))+
  geom_smooth(method=lm)+
  theme_classic()
print(family_a.bitofrandomandbias)
## `geom_smooth()` using formula = 'y ~ x'
Streudiagramm für Herr und Frau A.Bitofrandomandbias. Wir sehen systematischen und zufälligen Fehler.

Abbildung 1.3: Streudiagramm für Herr und Frau A.Bitofrandomandbias. Wir sehen systematischen und zufälligen Fehler.

31.8.1 Bland Altman Plot Frau und Herr A.Bitofrandomandbias

data<-data %>% 
  mutate(diff=Ms_Abitofrandomandbias-Mr_Abitofrandomandbias)
bland.altman.plot(data$Ms_Abitofrandomandbias, data$Mr_Abitofrandomandbias, main="This is a Bland Altman Plot", xlab="Mean Ms A.Bitofrandomandbias & Mr A.Bitofrandomandbias", ylab="Differences Ms A.Bitofrandomandbias & Mr A.Bitofrandomandbias")
Bland-Altman Plot von Herr und Frau A.Bitofrandomandbias. Wir sehen eine Mittelwertsdifferenz (Bias) und vertikale Streuung (zufälliger Fehler).

Abbildung 21.6: Bland-Altman Plot von Herr und Frau A.Bitofrandomandbias. Wir sehen eine Mittelwertsdifferenz (Bias) und vertikale Streuung (zufälliger Fehler).

## NULL

Statistik ist ja schön und gut, aber reliables Messen will geübt sein.