predict.coxph()
คำนวณอัตราส่วนอันตรายเทียบกับค่าเฉลี่ยตัวอย่างสำหรับตัวแปรทำนายทั้งหมด ปัจจัยจะถูกแปลงเป็นตัวคาดการณ์แบบจำลองตามปกติซึ่งสามารถคำนวณค่าเฉลี่ยได้ จำได้ว่าโมเดล Cox PH เป็นโมเดลเชิงเส้นสำหรับอันตรายจากการบันทึกln h ( t ) :plnh(t)
lnh(t)=lnh0(t)+β1X1+⋯+βpXp=lnh0(t)+Xβ
เมื่อเป็นอันตรายพื้นฐานที่ไม่ระบุ เท่าที่อันตรายต่อชั่วโมง( T )เป็นแบบจำลองเป็นชั่วโมง( T ) = H 0 ( T ) ⋅ อีβ 1 X 1 + ⋯ + β พี X P = H 0 ( T ) ⋅ อีเอ็กซ์ β อัตราส่วนอันตรายระหว่างคนสองคนฉันและฉัน'ที่มีค่าทำนายh0(t)h(t)h(t)=h0(t)⋅eβ1X1+⋯+βpXp=h0(t)⋅eXβii′Xi and Xi′ is thus independent of the baseline hazard and independent of time t:
hi(t)hi′(t)=h0(t)⋅eXiβh0(t)⋅eXi′β=eXiβeXi′β
สำหรับอัตราส่วนอันตรายประมาณระหว่างบุคคลและฉัน'เราเพียงแค่เสียบอยู่ในประมาณการค่าสัมประสิทธิ์ข1 , ... , ขPสำหรับβ 1 , ... , β พีให้อีเอ็กซ์ฉันขและอีเอ็กซ์ฉัน'ขii′b1,…,bpβ1,…,βpeXibeXi′b
เป็นตัวอย่างใน R ฉันใช้ข้อมูลจากภาคผนวกของ John Fox ในโมเดล Cox-PHซึ่งมีข้อความเกริ่นนำที่ดีมาก อันดับแรกเราดึงข้อมูลและสร้างแบบจำลอง Cox-PH แบบง่ายสำหรับการจับกุมนักโทษที่ถูกปล่อยตัว ( fin
: ปัจจัย - ได้รับความช่วยเหลือทางการเงินด้วยการเข้ารหัสแบบจำลอง"no"
-> 0, "yes"
-> 1 age
,: อายุเมื่อถึงเวลาปล่อยตัวprio
: จำนวนความเชื่อมั่นก่อนหน้า):
> URL <- "http://socserv.mcmaster.ca/jfox/Books/Companion/data/Rossi.txt"
> Rossi <- read.table(URL, header=TRUE) # our data
> Rossi[1:3, c("week", "arrest", "fin", "age", "prio")] # looks like this
week arrest fin age prio
1 20 1 no 27 3
2 17 1 no 18 8
3 25 1 no 19 13
> library(survival) # for coxph()
> fitCPH <- coxph(Surv(week, arrest) ~ fin + age + prio, data=Rossi) # Cox-PH model
> (coefCPH <- coef(fitCPH)) # estimated coefficients
finyes age prio
-0.34695446 -0.06710533 0.09689320
eXb
meanFin <- mean(as.numeric(Rossi$fin) - 1) # average of financial aid dummy
meanAge <- mean(Rossi$age) # average age
meanPrio <- mean(Rossi$prio) # average number of prior convictions
rMean <- exp(coefCPH["finyes"]*meanFin # e^Xb
+ coefCPH["age"] *meanAge
+ coefCPH["prio"] *meanPrio)
eXb
r1234 <- exp(coefCPH["finyes"]*(as.numeric(Rossi[1:4, "fin"])-1)
+ coefCPH["age"] *Rossi[1:4, "age"]
+ coefCPH["prio"] *Rossi[1:4, "prio"])
ตอนนี้คำนวณความเสี่ยงสำหรับครั้งแรก 4 predict.coxph()
คนกับกลุ่มตัวอย่างเฉลี่ยและเปรียบเทียบกับการส่งออกจาก
> r1234 / rMean
[1] 1.0139038 3.0108488 4.5703176 0.7722002
> relRisk <- predict(fitCPH, Rossi, type="risk") # relative risk
> relRisk[1:4]
1 2 3 4
1.0139038 3.0108488 4.5703176 0.7722002
หากคุณมีโมเดลแบบแบ่งชั้นการเปรียบเทียบpredict.coxph()
นั้นเทียบกับค่าเฉลี่ยของชั้นข้อมูลสิ่งนี้สามารถควบคุมได้ผ่านreference
ตัวเลือกที่อธิบายไว้ในหน้าวิธีใช้