แม้ว่าคำตอบของ @ Tim ♦และ @ gung ♦จะครอบคลุมทุกอย่างมาก แต่ฉันจะพยายามสังเคราะห์พวกเขาทั้งสองเป็นหนึ่งเดียวและให้คำอธิบายเพิ่มเติม
บริบทของบรรทัดที่ยกมาอาจอ้างถึงการทดสอบทางคลินิกในรูปแบบของเกณฑ์ที่แน่นอนเช่นกันมากที่สุด ลองนึกภาพโรคและทุกอย่างที่นอกเหนือจากรวมทั้งสุขภาพของรัฐเรียกว่าค สำหรับการทดสอบของเราต้องการหาการวัดค่าพร็อกซีที่ช่วยให้เราได้รับการคาดการณ์ที่ดีสำหรับ (1) เหตุผลที่เราไม่ได้รับความเจาะจง / ความไวแน่นอนคือค่าของปริมาณพร็อกซีของเรานั้นไม่มีความสัมพันธ์อย่างสมบูรณ์ สถานะของโรค แต่โดยทั่วไปจะเชื่อมโยงกับมันและด้วยเหตุนี้ในการวัดแต่ละครั้งเราอาจมีโอกาสของปริมาณนั้นข้ามเกณฑ์ของเราสำหรับD D c D D cDDDคDDคบุคคลและในทางกลับกัน เพื่อความชัดเจนลองสมมติว่าแบบเกาส์เซียนสำหรับความแปรปรวน
ให้เราบอกว่าเราใช้เป็นปริมาณพร็อกซี่ หากเลือกอย่างดีแล้วจะต้องสูงกว่า (เป็นตัวดำเนินการค่าที่คาดหวัง) ตอนนี้ปัญหาเกิดขึ้นเมื่อเราตระหนักดีว่าเป็นสถานการณ์คอมโพสิต (เพื่อให้เป็น ) ทำจริง 3 เกรดความรุนแรง , ,แต่ละคนมีค่าที่คาดหวังความก้าวหน้าที่เพิ่มขึ้นสำหรับxสำหรับบุคคลเดี่ยวเลือกจากหมวดหรือจากx 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 ค]EDDคD1D2D3xDDคหมวดหมู่ความน่าจะเป็นของการ 'ทดสอบ' ที่มาเป็นบวกหรือไม่ขึ้นอยู่กับค่าเกณฑ์ที่เราเลือก ให้เราบอกว่าเราเลือกจากการศึกษาตัวอย่างแบบสุ่มอย่างแท้จริงที่มีทั้งและบุคคล ของเราจะทำให้เกิดผลบวกและเชิงลบบางอย่าง หากเราเลือกคนแบบสุ่มความน่าจะเป็นเป็นตัวควบคุมค่าของเขา / เธอหากได้รับจากกราฟสีเขียวและของบุคคลสุ่มเลือกโดยกราฟสีแดงxTDDคxTDxDค
ตัวเลขจริงที่ได้รับจะขึ้นอยู่กับจำนวนจริงของบุคคลและแต่ความจำเพาะและความไวของผลลัพธ์จะไม่ ให้เป็นฟังก์ชันความน่าจะเป็นแบบสะสม จากนั้นสำหรับความชุกของของโรคนี่คือตาราง 2x2 ตามที่คาดไว้ในกรณีทั่วไปเมื่อเราพยายามที่จะดูว่าการทดสอบของเรามีประสิทธิภาพอย่างไรในประชากรที่รวมกันD c F ( ) p DDDคF( )พีD
( D c , - ) = ( 1 - p ) ( 1 - F D c ( x T ) ) ( D , - ) = p ( F D ( x T ) ) ( D c , + )
( D , + ) = p ( 1 - FD( xT) )
( D c , - ) = ( 1 - p ) ( 1 - FD ค( xT) )
( D , - ) = p ( FD( xT) )
( D c , + ) = ( 1 - p ) ∗ FD ค( xT)
ตัวเลขที่เกิดขึ้นจริงมีขึ้น แต่ไวและความจำเพาะมีอิสระ แต่ทั้งสองคนนี้จะขึ้นอยู่กับและ{} ดังนั้นปัจจัยทั้งหมดที่มีผลต่อสิ่งเหล่านี้จะเปลี่ยนการวัดเหล่านี้อย่างแน่นอน ถ้าเราเช่นการทำงานในห้องไอซียูของเราจะแทนที่จะถูกแทนที่ด้วยและถ้าเราได้พูดคุยเกี่ยวกับผู้ป่วยนอกแทนที่ด้วย{} มันเป็นเรื่องแยกต่างหากที่ในโรงพยาบาลความชุกก็แตกต่างกัน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พีพีFDFD คFDFD 3FD 1แต่มันไม่ได้เป็นความชุกแตกต่างกันซึ่งเป็นสาเหตุของความเปราะบางและ specifities จะแตกต่างกัน แต่การกระจายที่แตกต่างกันตั้งแต่รุ่นที่เกณฑ์กำหนดไว้ก็ไม่ได้ใช้บังคับกับประชากรที่ปรากฏเป็นผู้ป่วยนอกหรือผู้ป่วยใน คุณสามารถไปข้างหน้าและแยกย่อยในหลาย ๆ กลุ่มย่อยได้เนื่องจากส่วนย่อยผู้ป่วยในของจะต้องมีค่าเพิ่มขึ้นเนื่องจากเหตุผลอื่น (เนื่องจากพร็อกซีส่วนใหญ่ยังอยู่ในสภาพร้ายแรงอื่น ๆ ด้วย) การแบ่งประชากรออกเป็นประชากรย่อยอธิบายการเปลี่ยนแปลงความไวในขณะที่ประชากรอธิบายการเปลี่ยนแปลงของความจำเพาะ (โดยการเปลี่ยนแปลงที่สอดคล้องกันในและDคDคxDDคFDFD ค ) นี้เป็นสิ่งที่คอมโพสิตกราฟจริงประกอบด้วย แต่ละสีจะมีของตนเองและด้วยเหตุนี้ตราบใดที่สิ่งนี้แตกต่างจากที่คำนวณความไวและความเฉพาะเจาะจงดั้งเดิมการวัดเหล่านี้จะเปลี่ยนไปDFF
ตัวอย่าง
สมมติว่าประชากร 11550 มี 10,000 Dc, 500,750,300 D1, D2, D3 ตามลำดับ ส่วนที่ถูกคอมเม้นท์คือโค้ดที่ใช้สำหรับกราฟข้างต้น
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')
เราสามารถคำนวณค่าเฉลี่ย x สำหรับประชากรต่าง ๆ ได้ง่ายเช่น Dc, D1, D2, D3 และคอมโพสิต 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
ในการรับตาราง 2x2 สำหรับกรณีทดสอบดั้งเดิมของเราอันดับแรกเราจะกำหนดเกณฑ์ตามข้อมูล (ซึ่งในกรณีจริงจะถูกตั้งค่าหลังจากรันการทดสอบตามที่ @gung แสดง) อย่างไรก็ตามสมมติว่ามีเกณฑ์ 13.5 เราจะได้รับความไวและความจำเพาะต่อไปนี้เมื่อคำนวณจากประชากรทั้งหมด
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
ให้เราสมมติว่าเรากำลังทำงานกับผู้ป่วยนอกและเราได้รับผู้ป่วยโรคจากสัดส่วน D1 หรือเรากำลังทำงานในห้องไอซียูที่เราได้รับ D3 เท่านั้น (สำหรับกรณีทั่วไปมากขึ้นเราจำเป็นต้องแยกส่วนประกอบ Dc ด้วย) ความไวและความเฉพาะเจาะจงของเราเปลี่ยนไปอย่างไร โดยการเปลี่ยนความชุก (เช่นโดยการเปลี่ยนสัดส่วนสัมพัทธ์ของผู้ป่วยที่เป็นของทั้งสองกรณีเราจะไม่เปลี่ยนความจำเพาะและความไวเลยมันเกิดขึ้นที่ความชุกนี้เปลี่ยนไปตามการกระจายตัวที่เปลี่ยนไป)
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
โดยสรุปพล็อตที่แสดงการเปลี่ยนแปลงของความไว (ความจำเพาะจะเป็นไปตามแนวโน้มที่คล้ายกันหากเรายังประกอบประชากร Dc จากประชากรย่อย) ด้วยค่าเฉลี่ย x ที่แตกต่างกันสำหรับประชากรนี่คือกราฟ
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))
- D