Kapitel 31 Zwei Arten von 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.
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.
<- 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
rnorm2 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
=1:100
ID
<-rnorm(100, 80, 10)
Ms_Perfect<-Ms_Perfect
Mr_Perfect
<-rnorm(100,80,10)
Ms_Random<-rnorm(100,80,10)
Mr_Random
<-rnorm(100, 80,10)
Ms_Bias<-Ms_Bias+20
Mr_Bias
<-rnorm(100,80,10)
Ms_Abitofrandom<-Ms_Abitofrandom-(rnorm2(100,0,10))
Mr_Abitofrandom<-Ms_Abitofrandom-(rnorm2(100,0,10))
Ms_Abitofrandom<-rnorm2(100,80,10)
Ms_Abitofrandomandbias<-rnorm2(100,90,10)
Mr_Abitofrandomandbias
# First, we create some data
<-data.frame(ID, Ms_Perfect, Mr_Perfect,Ms_Random,Mr_Random,Ms_Bias,Mr_Bias ,Ms_Abitofrandom, Mr_Abitofrandom, Ms_Abitofrandomandbias, Mr_Abitofrandomandbias)
data::describe(data) psych
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()
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.
::bland.altman.plot(data$Ms_Perfect, data$Mr_Perfect, xlab="Mean Ms Perfect & Ms Perfect", ylab="Differences Ms Perfect - Mr Perfect") BlandAltmanLeh
## 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.
<-ggplot(data=data, aes(x=Ms_Random, y=Mr_Random))+
family_randomgeom_point()+
coord_cartesian(xlim=c(60,110), ylim=c(60,110))+
theme_light()
print(family_random)
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.
<-ggplot(data=data, aes(x=Ms_Bias, y=Mr_Bias))+
family_biasgeom_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()`).
31.7 Frau und Herr Abitofrandom
Betrachten wir nun ein Beispiel, bei dem ein wenig Zufallsfehler vorliegt.
<-ggplot(data=data, aes(x=Ms_Abitofrandom, y=Mr_Abitofrandom))+
family_abitofrandomgeom_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'
31.8 Frau und Herr A.Bitofrandomandbias
Jetzt sehen wir ein Beispiel für eine Mischung aus Verzerrung und Zufallsfehler
<-ggplot(data=data, aes(x=Ms_Abitofrandomandbias, y=Mr_Abitofrandomandbias))+
family_a.bitofrandomandbiasgeom_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'
31.8.1 Bland Altman Plot Frau und Herr A.Bitofrandomandbias
<-data %>%
datamutate(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")
## NULL