Übung 1

Aufgabe 1

In klinischen Laboren kann der Blutzucker sehr reliabel und valide bestimmt werden. Der Blutzucker wird dabei in mg/dl gemessen. Diese Methode (lab) wurde als Goldstandard verwendet, um die Kriteriumsvalidität eines portablen Gerätes (device) zu bestimmen (misst ebenfalls in mg/dL).

Welche Möglichkeiten stehen zur Beurteilung der Kriteriumsvalidität zur Verfügung? Begründen Sie.


Lösung 1

Man könnte theoretisch einen Korrelationskoeffizienten nach Pearson rechnen, allerdings sagt dieser nur bedingt etwas über die Übereinstimmung der beiden Messinstrumente aus. Selbst bei einer hohen Korrelation kann es sein, dass die absolute Übereinstimmung unzureichend ist. Um einen möglichen systematischen Fehler zu berücksichtigen, ist ein Intra-Klassen-Korrelations-Koeffizient (ICC) besser geeignet. Welchen ICC man berechnet, hängt von den der individuellen Fragestellung ab. Wenn die beiden Messgeräte als fix angenommen werden (wir erwarten keine bedeutende Variation von Gerät zu Gerät), bietet sich der ICC(3,1) an (random subjects, fixed raters, siehe ?ICC). Wenn wir hingegen Variation zwischen den einzelnen Messungen eines Messgeräts am gleichen Subjekt erwarten, wäre der ICC(2,1) besser.

Um die absolute Übereinstimmung zwischen zwei Messmethoden zu beurteilen, ist es sinnvoll, nicht nur den ICC, sondern auch den Bias (systematische Abweichung) und die Limits of Agreement (LoA) inkl Konfidenzintervallen nach der Methode von Bland-Altman zu betrachten. Dies ermöglicht eine umfassendere Bewertung der Übereinstimmung.

In der klassischen Bland-Altman-Methode wird der Mittelwert der beiden Messungen auf der x-Achse verwendet. Grund: Der Mittelwert repräsentiert die „beste Schätzung“ des wahren Werts unter der Annahme, dass beide Messmethoden gleichwertig sind. Dies ist besonders sinnvoll, wenn beide Messinstrumente vergleichbar sind und keiner der beiden als klar überlegen angesehen wird. Wenn wie in dieser Aufgabe ein Goldstandard verwendet wird, kann man den Wert des Goldstandards auf der x-Achse platzieren. Grund: Der Goldstandard wird als die „wahre Referenz“ betrachtet, gegen die die andere Methode validiert wird. In diesem Fall ist der Vergleich explizit asymmetrisch, da man die Abweichung des zu bewertenden Messinstruments vom Goldstandard untersucht.


Aufgabe 2

  1. Importieren Sie den Datensatz df-glucose.csv mit dem Paket rio (rio::import("df-glucose.csv")). Verschaffen Sie sich einen kurzen Überblick zu den Daten (z.B. mit head()).

  2. Verwenden Sie das Paket psych und die Funktion ICC() um den ICC(2,1) und den ICC(3,1) zu berechnen. Interpretieren Sie die Werte. Warum unterscheiden sich die Werte vom ICC(2,1) und ICC(3,1)? Was bedeutet das inhaltlich?

  3. Verwenden Sie das Paket SimplyAgree und die Funktion agree_test(), um Statistiken für die absolute Übereinstimmung zu berechnen: SimplyAgree::agree_test(df.glucose$lab, df.glucose$device). Speichern Sie das Resultat in einem Objekt agree.glucose. Geben Sie den Inhalt von agree.glucose aus und interpretieren Sie den Bias und die LoA.

  4. Erstellen Sie einen Bland-Altman-Plot (plot(agree.glucose)).

  5. (Bonus) Erstellen Sie einen Bland-Altman-Plot, welcher auf der x-Achse die Werte des Goldstandards (lab) zeigt.


Lösung 2

  1. Importieren Sie den Datensatz df-glucose.csv mit dem Paket rio (rio::import("df-glucose.csv")). Verschaffen Sie sich einen kurzen Überblick zu den Daten (z.B. mit head()).
df.glucose <- rio::import("../../data/df-glucose.csv")
head(df.glucose)
##         lab    device
## 1 101.89401 107.96663
## 2 124.16144 125.78785
## 3 136.26662 140.59659
## 4  84.81453  86.30215
## 5 126.43687 126.30688
## 6 127.59084 132.42578

  1. Verwenden Sie das Paket psych und die Funktion ICC() um den ICC(2,1) und den ICC(3,1) zu berechnen. Interpretieren Sie die Werte. Warum unterscheiden sich die Werte vom ICC(2,1) und ICC(3,1)? Was bedeutet das inhaltlich?
psych::ICC(df.glucose)
## Call: psych::ICC(x = df.glucose)
## 
## Intraclass correlation coefficients 
##                          type  ICC  F df1 df2       p lower bound upper bound
## Single_raters_absolute   ICC1 0.91 21  99 100 4.4e-40        0.87        0.94
## Single_random_raters     ICC2 0.91 35  99  99 8.1e-50        0.67        0.96
## Single_fixed_raters      ICC3 0.94 35  99  99 8.1e-50        0.92        0.96
## Average_raters_absolute ICC1k 0.95 21  99 100 4.4e-40        0.93        0.97
## Average_random_raters   ICC2k 0.95 35  99  99 8.1e-50        0.80        0.98
## Average_fixed_raters    ICC3k 0.97 35  99  99 8.1e-50        0.96        0.98
## 
##  Number of subjects = 100     Number of Judges =  2
## See the help file for a discussion of the other 4 McGraw and Wong estimates,

Beim ICC(3,1) wird angenommen, dass es keine Variation zwischen den jeweiligen Messgeräten gibt. Wird diese Varianz auf 0 gesetzt, ist die Summe der Varianzen in Nenner zur Berechnung des ICC’s kleiner, das heisst der ICC wird grösser (siehe ?ICC).


  1. Verwenden Sie das Paket SimplyAgree und die Funktion agree_test(), um Statistiken für die absolute Übereinstimmung zu berechnen: SimplyAgree::agree_test(df.glucose$lab, df.glucose$device). Speichern Sie das Resultat in einem Objekt agree.glucose. Geben Sie den Inhalt von agree.glucose aus und interpretieren Sie den Bias und die LoA.
agree.glucose <- SimplyAgree::agree_test(df.glucose$lab, df.glucose$device)
agree.glucose
## Limit of Agreement = 95%
## 
## ###- Shieh Results -###
## Exact 90% C.I.  [-15.3044, 6.892]
## Hypothesis Test: No Hypothesis Test
## 
## ###- Bland-Altman Limits of Agreement (LoA) -###
##           Estimate Lower CI Upper CI CI Level
## Bias        -4.206    -5.23   -3.182     0.95
## Lower LoA  -14.321   -15.79  -12.852     0.90
## Upper LoA    5.909     4.44    7.378     0.90
## 
## ###- Concordance Correlation Coefficient (CCC) -###
## CCC: 0.91, 95% C.I. [0.8725, 0.9369]

Die Bland-Altman-Analyse liefert Schätzungen für den Bias (systematische Abweichung) sowie die LoA, die die Variabilität der Differenzen zwischen den zwei Messmethoden quantifizieren.

Der Bias ist die durchschnittliche Differenz zwischen den beiden Messmethoden (lab - device).

mean(df.glucose$lab - df.glucose$device)
## [1] -4.206216

Die LoA definieren den Bereich, in dem etwa 90% der Differenzen zwischen den beiden Messmethoden zu erwarten sind (bei einem CI-Level von 90%).


  1. Erstellen Sie einen Bland-Altman-Plot (plot(agree.glucose)).
plot(agree.glucose)


  1. (Bonus) Erstellen Sie einen Bland-Altman-Plot, welcher auf der x-Achse die Werte des Goldstandards (lab) zeigt.
bias <- mean(df.glucose$lab - df.glucose$device)
uLoA <- 5.909 # siehe agree.glucose
lLoA <- -14.321 # siehe agree.glucose

plot(df.glucose$lab, df.glucose$lab - df.glucose$device, xlab = "lab", ylab = "lab-device")
abline(h = c(bias, uLoA, lLoA))


Übung 2

Frauen über 50 Jahre erhalten im Kanton Fribourg, aber auch in anderen Kantonen, eine Einladung zur Mammographie. Wir entnehmen der Broschüre die Daten und gehen von folgendem Szenario aus:

  • Sensitivät: 85%
  • Spezifität: 90%
  • Prä-Test-Wahrscheinlichkeit: 5%

Notation

  • Ereignis \(A\) bedeutet, dass die Krankheit vorliegt.
  • Ereignis \(A^C\) (Komplement von A) bedeutet, dass die Krankheit nicht vorliegt.
  • Ereignis \(B\) bedeutet, dass der Test positiv ist.
  • Ereignis \(B^C\) bedeutet, dass der Test negativ ist.

Aufgabe 1

Berechnen Sie die folgenden Wahrscheinlichkeiten und beschreiben Sie die jeweilige grösse in Worten:

  1. \(\hat{Pr}(A)\)
  2. \(\hat{Pr}(A \cap B)\)
  3. \(\hat{Pr}(A^C \cap B)\)
  4. \(\hat{Pr}(A^C \cap B^C)\)
  5. \(\hat{Pr}(B | A)\)
  6. \(\hat{Pr}(B^C | A^C)\)
  7. \(\hat{Pr}(B^C | A)\)
  8. \(\hat{Pr}(B | A^C)\)
  9. \(\hat{Pr}(A | B)\)
  10. \(\hat{Pr}(A^C | B^C)\)

Lösung 1

Wir speichern zuerst die gegebenen Werte in R:

sensitivity <- 0.85  # Sensitivity: P(B | A)
specificity <- 0.90  # Specificity: P(B^C | A^C)
pre.test.probability <- 0.05  # P(A)
P.A.C <- 1 - pre.test.probability  # P(A^C)


\[ \hat{Pr}(A) \]

P.A <- pre.test.probability
P.A
## [1] 0.05

Das entspricht der Prä-Test-Wahrscheinlichkeit


\[ \hat{Pr}(A \cap B) = \hat{Pr}(B \mid A) \cdot \hat{Pr}(A) \]

P.A.and.B <- sensitivity * P.A
P.A.and.B
## [1] 0.0425

Das entspricht der Wahrscheinlichkeit, dass man die Krankheit hat und ein positives Test-Resultat vorliegt (richtig-positiv).


\[ \hat{Pr}(A^C \cap B) = \hat{Pr}(B \mid A^C) \cdot \hat{Pr}(A^C) \]

wobei

\[ \hat{Pr}(A^C) = 1 - \hat{Pr}(A) \]

und

\[ \hat{Pr}(B \mid A^C) = 1 - \text{Specificity}. \]

P.B.given.A.C <- 1 - specificity  # P(B | A^C)
P.A.C.and.B <- P.B.given.A.C * P.A.C
P.A.C.and.B
## [1] 0.095

\(\hat{Pr}(A^C \cap B)\) ist die Wahrscheinlichkeit für ein falsch-positives Resultat.


\[ \hat{Pr}(A^C \cap B^C) = \hat{Pr}(B^C \mid A^C) \cdot \hat{Pr}(A^C) \]

wobei

\[ \hat{Pr}(B^C \mid A^C) = \text{Specificity}. \]

P.B.C.given.A.C <- specificity  # P(B^C | A^C)
P.A.C.and.B.C <- P.B.C.given.A.C * P.A.C
P.A.C.and.B.C
## [1] 0.855

\(\hat{Pr}(A^C \cap B^C)\) ist die Wahrscheinlichkeit für ein richtig-negatives Resultat.


\[ \hat{Pr}(B \mid A) = \text{Sensitivity} \]

P.B.given.A <- sensitivity
P.B.given.A
## [1] 0.85

\(\hat{Pr}(B \mid A)\) ist die Wahrscheinlichkeit für ein positives Resultat, gegeben die Krankheit liegt vor (= Sensitivität).


\[ \hat{Pr}(B^C \mid A^C) = \text{Specificity} \]

P.B.C.given.A.C <- specificity  # P(B^C | A^C)
P.B.C.given.A.C
## [1] 0.9

\(\hat{Pr}(B^C \mid A^C)\) ist die Wahrscheinlichkeit für ein negatives Resultat, gebeben die Krankheit liegt nicht vor.


\[ \hat{Pr}(B^C \mid A) = 1 - \hat{Pr}(B \mid A) \]

P.B.C.given.A <- 1 - sensitivity  # P(B^C | A)
P.B.C.given.A
## [1] 0.15

\(\hat{Pr}(B^C \mid A)\) ist die Wahrscheinlichkeit für ein negatives Resultat, gegeben die Krankheit liegt vor.


\[ \hat{Pr}(B \mid A^C) = 1 - \hat{Pr}(B^C \mid A^C) = 1- specificity \]

P.B.given.A.C <- 1 - specificity
P.B.given.A.C
## [1] 0.1

\(\hat{Pr}(B \mid A^C)\) ist die Wahrscheinlichkeit, für ein positives Testresultat, gegeben die Krankheit liegt nicht vor.


  1. (Bayes’ Theorem)

\[ \hat{Pr}(A | B) = \frac{\hat{Pr}(A) \hat{Pr}(B | A)}{\hat{Pr}(A) Pr(B | A) + \hat{Pr}(A^C) \hat{Pr}(B | A^C)} \]

post.test.positive <- (P.A * sensitivity) / (P.A * sensitivity + P.A.C * P.B.given.A.C)
post.test.positive
## [1] 0.3090909

\(Pr(A | B)\) ist die Wahrscheinlichkeit, dass die Krankheit vorhanden ist, gegeben der Test ist positiv (positiver prädiktiver Wert).


\[ \hat{Pr}(A^C | B^C) = \frac{\hat{Pr}(A^C) \hat{Pr}(B^C | A^C)}{\hat{Pr}(A^C) \hat{Pr}(B^C | A^C) + \hat{Pr}(B^C | A)\hat{Pr}(A)} \]

post.test.negative <- (P.A.C * specificity) / (P.A.C * specificity + P.B.C.given.A * P.A)
post.test.negative
## [1] 0.9913043

\(\hat{Pr}(A^C | B^C)\) ist die Wahrscheinlichkeit, dass die Krankheit nicht vorliegt, gegeben das Testresultat ist negativ (negativer prädiktiver Wert)


Zusammenfassende Darstellung der Wahrscheinlichkeiten in der 2x2 Tabelle:

##                Disease Present (A) Disease Absent (A^C)  Total
## Positive (B)                0.0425                0.095 0.1375
## Negative (B^C)              0.0075                0.855 0.8625
## Total                       0.0500                0.950 1.0000

Aufgabe 2

  1. Wie verändern sich die Post-Test-Wahrscheinlichkeiten \(\hat{Pr}(A | B)\) und \(\hat{Pr}(A^C | B^C)\), wenn wir eine Prä-Test-Wahrscheinlichkeit von 25% statt 5% annehmen?

Lösung 2

\[ \hat{Pr}(A | B) = \frac{\hat{Pr}(A) \hat{Pr}(B | A)}{\hat{Pr}(A) Pr(B | A) + \hat{Pr}(A^C) \hat{Pr}(B | A^C)} \]

P.A.new <- 0.25
post.test.positive.new <- (P.A.new * sensitivity) / (P.A.new * sensitivity + (1 - P.A.new) * (1-specificity))
post.test.positive.new
## [1] 0.7391304

\(\hat{Pr}(A | B)\) steigt massiv.

post.test.negative.new <- ((1 - P.A.new) * specificity) / ((1 - P.A.new) * specificity + P.A.new * (1 - sensitivity))
post.test.negative.new
## [1] 0.9473684

\(\hat{Pr}(A^C | B^C)\) sinkt.

Die Prä-Test-Wahrscheinlichkeit hat also einen enorm wichtigen Einfluss auf die Interpretation eines Testresultates!

Übersicht anhand der 2x2 Tabelle:

##                Disease Present (A) Disease Absent (A^C)  Total
## Positive (B)                0.2125                0.075 0.2875
## Negative (B^C)              0.0375                0.675 0.7125
## Total                       0.2500                0.750 1.0000