Obwohl die Antworten von @ Tim ♦ und @ gung ♦ so ziemlich alles abdecken, werde ich versuchen, beide zu einer einzigen zusammenzufassen und weitere Erläuterungen zu geben.
Der Kontext der zitierten Zeilen kann sich meistens auf klinische Tests in Form eines bestimmten Schwellenwerts beziehen, wie dies am häufigsten der Fall ist. Stellen Sie sich eine Krankheit und alles außer einschließlich des als bezeichneten gesunden Zustands . Für unseren Test möchten wir eine Proxy- Messung finden, die es uns ermöglicht, eine gute Vorhersage für . (1) Der Grund, warum wir keine absolute Spezifität / Sensitivität erhalten, ist, dass die Werte unserer Proxy-Menge nicht perfekt mit diesen korrelieren Der Krankheitszustand ist jedoch nur allgemein damit verbunden, und daher besteht bei einzelnen Messungen möglicherweise die Möglichkeit, dass diese Menge unsere Schwelle für überschreitetD D c D D cD.D.D.cD.D.cEinzelpersonen und umgekehrt. Nehmen wir der Klarheit halber ein Gaußsches Modell für die Variabilität an.
Nehmen wir an, wir verwenden als Proxy-Größe. Wenn gewählt wurde, muss höher sein als ( ist der Operator für den erwarteten Wert). Das Problem tritt nun auf, wenn wir erkennen, dass eine zusammengesetzte Situation ist (ebenso wie ), die tatsächlich aus 3 Schweregraden , , , von denen jede einen progressiv ansteigenden erwarteten Wert für . Für eine einzelne Person, ausgewählt entweder aus der Kategorie oder aus der Kategoriex E [ x D ] E [ x D c ] E D D c D 1 D 2 D 3 x D D c x T D D c x T D x D cxxE.[ xD.]]E.[ xD c]]E.D.DcD1D2D3xDDcKategorie hängt die Wahrscheinlichkeit, ob der 'Test' positiv wird oder nicht, von dem von uns gewählten Schwellenwert ab. Nehmen wir an, wir wählen basierend auf der Untersuchung einer wirklich zufälligen Stichprobe mit und Individuen. Unser verursacht einige falsch positive und negative . Wenn wir eine Person zufällig auswählen , wird die Wahrscheinlichkeit, die ihren Wert bestimmt, durch das grüne Diagramm und die einer zufällig ausgewählten Person durch das rote Diagramm angegeben.xTDDcxTDxDc
Die tatsächlich erhaltenen Zahlen hängen von der tatsächlichen Anzahl von und Individuen ab, die resultierende Spezifität und Sensitivität jedoch nicht. Sei eine kumulative Wahrscheinlichkeitsfunktion. Für die Prävalenz von der Krankheit ist hier eine 2x2-Tabelle, wie es für den allgemeinen Fall zu erwarten wäre, wenn wir versuchen, tatsächlich zu sehen, wie unser Test in der kombinierten Population abläuft.D c F ( ) p D.DDcF()pD
(D,+)=p(1−FD(xT))
(Dc,−)=(1−p)(1−FDc(xT))
(D,−)=p(FD(xT))
(Dc,+)=(1−p)∗FDc(xT)
Die tatsächlichen Zahlen sind abhängig, aber Sensitivität und Spezifität sind unabhängig. Beide sind jedoch abhängig von und . Daher werden alle Faktoren, die diese beeinflussen, diese Metriken definitiv ändern. Wenn wir zum Beispiel auf der Intensivstation würden, würde unsere stattdessen durch , und wenn wir über ambulante Patienten sprechen würden, würde sie durch . Es ist eine separate Sache, dass im Krankenhaus die Prävalenz auch unterschiedlich ist,p F D F D C F D F D 3 F D 1 D c D c x D D c F D F D C D F F.ppFDFDcFDFD3FD1Es ist jedoch nicht die unterschiedliche Prävalenz, die dazu führt, dass sich die Sensitivitäten und Spezifitäten unterscheiden, sondern die unterschiedliche Verteilung, da das Modell, nach dem der Schwellenwert definiert wurde, nicht auf die ambulant oder stationär erscheinende Bevölkerung anwendbar war . Sie können gehen Sie vor und brechen in mehrere Subpopulationen, becasue stationären subpart von wird auch eine erhöhte haben aus anderen Gründen (da die meisten Proxies sind auch ‚erhöht‘ in anderen schweren Bedingungen). Die Aufteilung der Population in Subpopulation erklärt die Änderung der Sensitivität, während die der Population die Änderung der Spezifität erklärt (durch entsprechende Änderungen von undDcDcxDDcFDFDc ). Daraus besteht der zusammengesetzte Graph tatsächlich. Jede der Farben hat tatsächlich ein eigenes , und solange sich dieses von dem für das die ursprüngliche Empfindlichkeit und Spezifität berechnet wurden, ändern sich diese Metriken.DFF
Beispiel
Nehmen Sie eine Bevölkerung von 11550 mit 10000 Dc, 500.750.300 D1, D2 bzw. D3 an. Der auskommentierte Teil ist der Code, der für die obigen Diagramme verwendet wird.
set.seed(12345)
dc<-rnorm(10000,mean = 9, sd = 3)
d1<-rnorm(500,mean = 15,sd=2)
d2<-rnorm(750,mean=17,sd=2)
d3<-rnorm(300,mean=20,sd=2)
d<-cbind(c(d1,d2,d3),c(rep('1',500),rep('2',750),rep('3',300)))
library(ggplot2)
#ggplot(data.frame(dc))+geom_density(aes(x=dc),alpha=0.5,fill='green')+geom_density(data=data.frame(c(d1,d2,d3)),aes(x=c(d1,d2,d3)),alpha=0.5, fill='red')+geom_vline(xintercept = 13.5,color='black',size=2)+scale_x_continuous(name='Values for x',breaks=c(mean(dc),mean(as.numeric(d[,1])),13.5),labels=c('x_dc','x_d','x_T'))
#ggplot(data.frame(d))+geom_density(aes(x=as.numeric(d[,1]),..count..,fill=d[,2]),position='stack',alpha=0.5)+xlab('x-values')
Wir können leicht die x-Mittelwerte für die verschiedenen Populationen berechnen, einschließlich Dc, D1, D2, D3 und das zusammengesetzte D.
mean(dc)
mean(d1)
mean(d2)
mean(d3)
mean(as.numeric(d[,1]))
> mean(dc) [1] 8.997931
> mean(d1) [1] 14.95559
> mean(d2) [1] 17.01523
> mean(d3) [1] 19.76903
> mean(as.numeric(d[,1])) [1] 16.88382
Um eine 2x2-Tabelle für unseren ursprünglichen Testfall zu erhalten, legen wir zunächst einen Schwellenwert fest, der auf den Daten basiert (der in einem realen Fall nach dem Ausführen des Tests festgelegt wird, wie @gung zeigt). Unter der Annahme eines Schwellenwerts von 13,5 erhalten wir die folgende Sensitivität und Spezifität, wenn sie für die gesamte Population berechnet werden.
sdc<-sample(dc,0.1*length(dc))
sdcomposite<-sample(c(d1,d2,d3),0.1*length(c(d1,d2,d3)))
threshold<-13.5
truepositive<-sum(sdcomposite>13.5)
truenegative<-sum(sdc<=13.5)
falsepositive<-sum(sdc>13.5)
falsenegative<-sum(sdcomposite<=13.5)
print(c(truepositive,truenegative,falsepositive,falsenegative))
sensitivity<-truepositive/length(sdcomposite)
specificity<-truenegative/length(sdc)
print(c(sensitivity,specificity))
> print(c(truepositive,truenegative,falsepositive,falsenegative)) [1]139 928 72 16
> print(c(sensitivity,specificity)) [1] 0.8967742 0.9280000
Nehmen wir an, wir arbeiten mit ambulanten Patienten und bekommen kranke Patienten nur ab dem D1-Anteil, oder wir arbeiten auf der Intensivstation, wo wir nur D3 bekommen. (Für einen allgemeineren Fall müssen wir auch die Gleichstromkomponente aufteilen.) Wie ändern sich unsere Sensitivität und Spezifität? Durch Ändern der Prävalenz (dh durch Ändern des relativen Anteils der Patienten, die zu beiden Fällen gehören, ändern wir die Spezifität und Sensitivität überhaupt nicht. Es kommt nur so vor, dass sich diese Prävalenz auch mit der Änderung der Verteilung ändert).
sdc<-sample(dc,0.1*length(dc))
sd1<-sample(d1,0.1*length(d1))
truepositive<-sum(sd1>13.5)
truenegative<-sum(sdc<=13.5)
falsepositive<-sum(sdc>13.5)
falsenegative<-sum(sd1<=13.5)
print(c(truepositive,truenegative,falsepositive,falsenegative))
sensitivity1<-truepositive/length(sd1)
specificity1<-truenegative/length(sdc)
print(c(sensitivity1,specificity1))
sdc<-sample(dc,0.1*length(dc))
sd3<-sample(d3,0.1*length(d3))
truepositive<-sum(sd3>13.5)
truenegative<-sum(sdc<=13.5)
falsepositive<-sum(sdc>13.5)
falsenegative<-sum(sd3<=13.5)
print(c(truepositive,truenegative,falsepositive,falsenegative))
sensitivity3<-truepositive/length(sd3)
specificity3<-truenegative/length(sdc)
print(c(sensitivity3,specificity3))
> print(c(truepositive,truenegative,falsepositive,falsenegative)) [1] 38 931 69 12
> print(c(sensitivity1,specificity1)) [1] 0.760 0.931
> print(c(truepositive,truenegative,falsepositive,falsenegative)) [1] 30 944 56 0
> print(c(sensitivity3,specificity3)) [1] 1.000 0.944
Zusammenfassend lässt sich sagen, dass ein Diagramm zur Darstellung der Änderung der Sensitivität (die Spezifität würde einem ähnlichen Trend folgen, wenn wir auch die DC-Population aus Subpopulationen zusammengesetzt hätten) mit variierendem Mittelwert x für die Population ein Diagramm darstellt
df<-data.frame(V1=c(sensitivity,sensitivity1,sensitivity3),V2=c(mean(c(d1,d2,d3)),mean(d1),mean(d3)))
ggplot(df)+geom_point(aes(x=V2,y=V1),size=2)+geom_line(aes(x=V2,y=V1))
- Wenn es kein Proxy ist, hätten wir technisch eine 100% ige Spezifität und Sensitivität. Nehmen wir zum Beispiel an, wir definieren als ein bestimmtes objektiv definiertes pathologisches Bild bei der Leberbiopsie, dann wird der Leberbiopsietest zum Goldstandard und unsere Empfindlichkeit würde an sich selbst gemessen und ergibt somit 100%D