कैसे की भविष्यवाणी की आउटपुट की व्याख्या करने के लिए ।oxph?


17

कॉक्समॉडल फिट करने के बाद भविष्यवाणियां करना और नए डेटा के सापेक्ष जोखिम को पुनः प्राप्त करना संभव है। मुझे समझ में नहीं आता है कि किसी व्यक्ति के लिए सापेक्ष जोखिम की गणना कैसे की जाती है और यह किसके सापेक्ष होता है (अर्थात जनसंख्या का औसत)? संसाधनों को समझने में मदद करने के लिए कोई सिफारिश (मैं उत्तरजीविता विश्लेषण में बहुत उन्नत नहीं हूं जितना कि बेहतर हो)?

जवाबों:


32

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 और एक्स मैं ' इस प्रकार आधारभूत खतरा के स्वतंत्र और समय से स्वतंत्र हैटी:XiXit

hi(t)hi(t)=h0(t)eXiβh0(t)eXiβ=eXiβeXiβ

व्यक्तियों के बीच का अनुमान खतरा अनुपात के लिए और मैं ' , हम बस गुणांक अनुमान में प्लग 1 , ... , पी के लिए β 1 , ... , β पी , दे एक्स मैं और एक्स मैं 'iib1,,bpβ1,,βpeXibeXib

आर में एक उदाहरण के रूप में, मैं कॉक्स-पीएच मॉडल पर जॉन फॉक्स के परिशिष्ट के डेटा का उपयोग करता हूं जो एक बहुत अच्छा परिचय पाठ प्रदान करता है। सबसे पहले, हम डेटा प्राप्त करते हैं और जारी कैदियों की समय-गिरफ्तारी के लिए एक सरल कॉक्स-पीएच मॉडल बनाते हैं ( 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मदद पृष्ठ में बताए गए विकल्प के माध्यम से नियंत्रित किया जा सकता है।


2
+1 क्योंकि यह स्पष्ट नहीं है कि भविष्यवाणियां क्या है।
ओकराम

वह महान था! समझने में बहुत सरल!
user4673

meanFin <- mean(as.numeric(Rossi$fin) - 1)बहुत समझदारी नहीं है, क्योंकि finस्पष्ट है। क्या आपको modeFin <- get_Mode(Rossi$fin)इस मामले में जरूरत नहीं है ?
ज़ुबर्ब

1
@ ज़ुर्ब finबाइनरी है, इसलिए कारक के संख्यात्मक प्रतिनिधित्व में सिर्फ 1 और 2 के मूल्य हैं। 1 को घटाना हमें 0 और 1 के साथ डमी-कोडेड चर देता है जो डिज़ाइन मैट्रिक्स में भी दिखाई देता है। ध्यान दें कि यह 2 से अधिक स्तरों वाले कारकों के लिए काम नहीं करेगा। यह निश्चित रूप से बहस योग्य है कि क्या औसत डमी चर समझ में आता है, लेकिन यह क्या predict.coxph()करता है।
कार्लाल

शब्दों में, आप 3.01 के खतरे के अनुपात की व्याख्या कैसे करेंगे (जैसे relRisk [2])?
RNB
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.