วิธีการประมาณฟังก์ชั่นอันตรายพื้นฐานในรูปแบบ Cox พร้อม R


13

ฉันต้องประมาณฟังก์ชั่นอันตรายพื้นฐานในรูปแบบ Cox ที่ขึ้นอยู่กับเวลาλ0(t)

λ(t)=λ0(t)exp(Z(t)β)

ขณะที่ฉันเข้าเรียนหลักสูตรการอยู่รอดฉันจำได้ว่าอนุพันธ์โดยตรงของฟังก์ชันอันตรายสะสม ( ) จะไม่เป็นตัวประมาณที่ดีเพราะตัวประมาณ Breslow ให้ฟังก์ชันขั้นตอนλ0(t)dt=dΛ0(t)

ดังนั้นมีฟังก์ชั่นใด ๆ ใน R ที่ฉันสามารถใช้โดยตรงได้หรือไม่ หรือการอ้างอิงใด ๆ ในหัวข้อนี้?

ฉันไม่แน่ใจว่ามันมีค่าที่จะเปิดคำถามอื่นดังนั้นฉันแค่เพิ่มพื้นหลังบางส่วนว่าทำไมฟังก์ชั่นอันตรายพื้นฐานมีความสำคัญสำหรับฉัน สูตรด้านล่างนี้ประเมินความน่าจะเป็นที่เวลารอดของวิชาหนึ่งนั้นจะใหญ่กว่าวิชาอื่น ภายใต้การตั้งค่าโมเดล Cox จำเป็นต้องมี ฟังก์ชั่นอันตรายพื้นฐานλ0(t)

P(T1>T2)=0S1(t)dS2(t)=0S1(t)S2(t)λ2(t)dt


2
สิ่งนี้ช่วยได้ไหม? stats.stackexchange.com/questions/36015/…
ocram

เกี่ยวกับการประเมินของ Breslow: stats.stackexchange.com/questions/20747/…
Stéphane Laurent

สูตร (4) ของบทความนี้ให้การประมาณค่า jstor.org/stable/2530904
elong

คำตอบ:


20

แบบจำลอง Cox ได้รับการออกแบบอย่างชัดเจนเพื่อให้สามารถประเมินอัตราส่วนความเป็นอันตรายได้โดยไม่ต้องประเมินฟังก์ชันความเป็นอันตรายพื้นฐาน นี่คือจุดแข็งและจุดอ่อน จุดแข็งคือคุณไม่สามารถทำผิดพลาดในฟังก์ชั่นที่คุณไม่ได้ประเมิน นี่คือจุดแข็งที่แท้จริงและเป็นเหตุผลว่าทำไมคนถึงเรียกมันว่า "กึ่งพารามิเตอร์" และมีขอบเขตขนาดใหญ่ที่รับผิดชอบต่อความนิยมของมัน อย่างไรก็ตามมันก็เป็นจุดอ่อนที่แท้จริงเมื่อคุณต้องการรู้สิ่งอื่นนอกเหนือจากอัตราส่วนความเป็นอันตรายคุณมักจะต้องใช้ฟังก์ชั่นอันตรายพื้นฐานและเอาชนะจุดประสงค์ของโมเดล Cox

ดังนั้นฉันมักจะใช้แบบจำลอง Cox เฉพาะเมื่อฉันสนใจอัตราส่วนอันตรายและไม่มีอะไรอื่น หากฉันต้องการทราบสิ่งอื่นฉันมักจะย้ายไปยังรุ่นอื่น ๆ เช่นที่กล่าวไว้ที่นี่: http://www.stata.com/bookstore/flexible-parametric-survival-analysis-stata/


2
1 นี้เป็นวิธีการสร้างแบบจำลอง parametrically อันตรายพื้นฐานอื่นdata.princeton.edu/wws509/notes/c7s4.html
Boscovich

3

ฟังก์ชันความเป็นอันตรายพื้นฐานสามารถประเมินได้ใน R โดยใช้ฟังก์ชั่น "basehaz" ไฟล์ "ความช่วยเหลือ" ระบุว่าเป็นฟังก์ชั่น "การเอาตัวรอดที่คาดการณ์" ซึ่งไม่ชัดเจน ถ้ามีใครตรวจสอบรหัสมันชัดเจนว่าฟังก์ชั่นอันตรายสะสมจากsurvfitวัตถุ สำหรับความโง่เขลาต่อไปการตั้งค่าเริ่มต้นคือcentered=TRUEa) ไม่ใช่ฟังก์ชันอันตรายพื้นฐาน (ตามชื่อที่แนะนำ) และ b) ใช้การทำนายที่หมายถึงซึ่งไม่น่าเชื่อถือในความหมายใด ๆ

และก่อนหน้านี้: ใช่ฟังก์ชั่นนี้ใช้ประโยชน์จากฟังก์ชั่นขั้นตอน คุณสามารถแปลงเอาต์พุตนั้นเป็นฟังก์ชันอันตรายโดยใช้การปรับให้เรียบ ส่วนที่แย่ที่สุดของมันคืออะไรช่วงเวลาที่ไม่แน่นอนสำหรับการทำนายนั้นคืออะไร? คุณอาจได้รับเหรียญฟิลด์ถ้าคุณสามารถได้รับมัน ฉันไม่คิดว่าเราจะรู้ว่า bootstrapping ใช้งานได้หรือไม่

ตัวอย่างเช่น:

set.seed(1234)
x <- rweibull(1000, 2, 3)
coxfit <- coxph(Surv(x) ~ 1)
bhest <- basehaz(coxfit)
haz <- exp(diff(bhest[, 1])*diff(bhest[, 2]))
time <- (bhest[-1,2] + bhest[-1000, 2])/2
b <- 2^-3

curve(3*b*x, from=0, to=max(x), xlab='Survival time', ylab='Weibull hazard')
points(t <- bhest[-1,2], h <- diff(bhest[, 1])/diff(bhest[, 2]), col='grey')
smooth <- loess.smooth(t, h)
lines(smooth$x, smooth$y, col='red')
legend('topright', lty=c(1,1,0), col=c('black', 'red', 'grey'), pch=c(NA,NA,1), c('Actual hazard fun', 'Smoothed hazard fun', 'Stepped discrete-time hazards'), bg='white')

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.