predict.coxph()
सभी प्रेडिक्टर चर के लिए नमूना औसत के सापेक्ष खतरनाक अनुपात की गणना करता है । कारक सामान्य भविष्यवाणियों में परिवर्तित हो जाते हैं जिनकी औसत गणना की जा सकती है। याद रखें कि कॉक्स PH मॉडल लॉग-खतरा l h h ( t ) के लिए एक रैखिक मॉडल है :plnh(t)
lnh(t)=lnh0(t)+β1X1+⋯+βpXp=lnh0(t)+Xβ
जहां अनिर्दिष्ट बेसलाइन खतरा है। तुल्य, खतरा ज ( टी ) के रूप में मॉडलिंग की है ज ( टी ) = ज 0 ( टी ) ⋅ ई β 1 एक्स 1 + ⋯ + β पी एक्स पी = ज 0 ( टी ) ⋅ ई एक्स β । दो व्यक्तियों के बीच खतरा अनुपात मैं और मैं ' भविष्यवक्ता मूल्यों के साथh0(t)h(t)h(t)=h0(t)⋅eβ1X1+⋯+βpXp=h0(t)⋅eXβii′ और एक्स मैं ' इस प्रकार आधारभूत खतरा के स्वतंत्र और समय से स्वतंत्र हैटी:XiXi′t
hi(t)hi′(t)=h0(t)⋅eXiβh0(t)⋅eXi′β=eXiβeXi′β
व्यक्तियों के बीच का अनुमान खतरा अनुपात के लिए और मैं ' , हम बस गुणांक अनुमान में प्लग ख 1 , ... , ख पी के लिए β 1 , ... , β पी , दे ई एक्स मैं ख और ई एक्स मैं ' ख ।ii′b1,…,bpβ1,…,βpeXibeXi′b
आर में एक उदाहरण के रूप में, मैं कॉक्स-पीएच मॉडल पर जॉन फॉक्स के परिशिष्ट के डेटा का उपयोग करता हूं जो एक बहुत अच्छा परिचय पाठ प्रदान करता है। सबसे पहले, हम डेटा प्राप्त करते हैं और जारी कैदियों की समय-गिरफ्तारी के लिए एक सरल कॉक्स-पीएच मॉडल बनाते हैं ( 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)
अब हम पहले 4 व्यक्तियों के पूर्वसूचक मानों को फार्मूले में प्लग करते हैं ।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
मदद पृष्ठ में बताए गए विकल्प के माध्यम से नियंत्रित किया जा सकता है।