उत्तरजीविता कॉक्सफ़ और आरएमएस सीएफपी से अलग भविष्यवाणी की साजिश


9

मैंने टर्मप्लॉट का अपना थोड़ा बढ़ाया संस्करण बनाया है जिसका उपयोग मैं इस उदाहरण में करता हूं, आप इसे यहां पा सकते हैं । मैंने पहले एसओ पर पोस्ट किया है, लेकिन जितना मैं इसके बारे में सोचता हूं, मुझे लगता है कि यह संभवतः वास्तविक कोडिंग की तुलना में कॉक्स आनुपातिक खतरों के मॉडल की व्याख्या से अधिक संबंधित है।

समस्या

जब मैं किसी खतरे के अनुपात को देखता हूं तो मुझे एक संदर्भ बिंदु होने की उम्मीद है जहां आत्मविश्वास अंतराल स्वाभाविक रूप से 0 है और यह मामला है जब मैं cph () का उपयोग करता हूं, rms packageलेकिन तब नहीं जब मैं coxph () का उपयोग करता हूं survival package। क्या कॉक्सफ़ () द्वारा सही व्यवहार है और यदि ऐसा है तो संदर्भ बिंदु क्या है? इसके अलावा, कॉक्सफ () में डमी चर का अंतराल है और मान अलावा अन्य है ?e0

उदाहरण

यहाँ मेरा परीक्षण कोड है:

# Load libs
library(survival)
library(rms)

# Regular survival
survobj <- with(lung, Surv(time,status))

# Prepare the variables
lung$sex <- factor(lung$sex, levels=1:2, labels=c("Male", "Female"))
labels(lung$sex) <- "Sex"
labels(lung$age) <- "Age"

# The rms survival
ddist <- datadist(lung)
options(datadist="ddist")
rms_surv_fit <- cph(survobj~rcs(age, 4)+sex, data=lung, x=T, y=T)

Cph प्लॉट्स

यह कोड:

termplot2(rms_surv_fit, se=T, rug.type="density", rug=T, density.proportion=.05,
          se.type="polygon", yscale="exponential", log="y", 
          xlab=c("Age", "Sex"), 
          ylab=rep("Hazard Ratio", times=2),
          main=rep("cph() plot", times=2),
          col.se=rgb(.2,.2,1,.4), col.term="black")

यह प्लॉट देता है:

cph () termplot2

कॉक्सफ़ प्लॉट

यह कोड:

termplot2(surv_fit, se=T, rug.type="density", rug=T, density.proportion=.05, 
          se.type="polygon", yscale="exponential", log="y", 
          xlab=c("Age", "Sex"), 
          ylab=rep("Hazard Ratio", times=2),
          main=rep("coxph() plot", times=2),
          col.se=rgb(.2,.2,1,.4), col.term="black")

यह प्लॉट देता है:

कॉक्सफ़ () termplot2

अपडेट करें

जैसा कि @ फ्रेंक हैरेल ने सुझाव दिया और अपनी हालिया टिप्पणी में सुझाव के साथ समायोजित करने के बाद मुझे मिला:

p <- Predict(rms_surv_fit, age=seq(50, 70, times=20), 
             sex=c("Male", "Female"), fun=exp)
plot.Predict(p, ~ age | sex,
             col="black",
             col.fill=gray(seq(.8, .75, length=5)))

इसने बहुत अच्छा प्लॉट दिया:

जालीदार भूखंड

मैंने कॉन्ट्रास्ट को देखा है। टिप्पणी के बाद फिर से देखा और इस कोड की कोशिश की जिसने एक प्लॉट दिया ... हालांकि शायद बहुत अधिक है जो हो सकता है :-)

w <- contrast.rms(rms_surv_fit, 
                  list(sex=c("Male", "Female"), 
                       age=seq(50, 70, times=20)))

xYplot(Cbind(Contrast, Lower, Upper) ~ age | sex, 
       data=w, method="bands")

इस साजिश को दिया:

इसके विपरीत कथानक

अद्यतन २

प्रो। थेरनॉ थोड़े दयालु थे, जिन पर उन प्लॉटों के बारे में टिप्पणी की जाती थी जिनमें आत्मविश्वास की कमी होती है:

कॉम्फ़ में चौरसाई को चिकना करना, गम में लोगों की तरह, सामान्य किया जाता है ताकि योग (भविष्यवाणी) = 0 हो। इसलिए मेरे पास एक निश्चित एकल बिंदु नहीं है जिसके लिए विचरण अतिरिक्त छोटा है।

हालाँकि मैं अभी तक GAM से परिचित नहीं हूँ लेकिन यह मेरे सवाल का जवाब देता है: यह व्याख्या का मुद्दा लगता है।


3
कई टिप्पणियाँ। पहले rms और डिज़ाइन संकुल के बीच अंतर के लिए biostat.mc.vanderbilt.edu/Rrms पढ़ें । दूसरा, प्लॉट के बदले प्लॉट () का उपयोग करें। तीसरा आप आसानी से दोनों लिंगों के लिए भूखंड उत्पन्न कर सकते हैं, जैसे कि भविष्यवाणी (फिट, आयु, लिंग, मज़ा = एक्सप) # एक्सप = एंटी-लॉग का उपयोग करके; फिर प्लॉट (परिणाम) या प्लॉट (परिणाम, ~ आयु | सेक्स)। आप भविष्यवाणी में "x = NA" का उपयोग नहीं करते हैं। rms जाली ग्राफिक्स का उपयोग करता है ताकि सामान्य रूप से बराबर ग्राफिक्स पैरामीटर और mfrow लागू न हों। मेरे rms पाठ्यक्रम में उदाहरण biostat.mc.vanderbilt.edu/rms पर देखें । इसके विपरीत। शब्द दस्तावेज़ का अधिक अध्ययन करते हैं।
फ्रैंक हरेल

1
आपके इनपुट के लिए बहुत - बहुत धन्यवाद। मैंने बेहतर उदाहरणों के साथ कोड को अपडेट किया है और प्रोफ को जोड़ा है। थेरानाउ की प्रतिक्रिया। पी एस मैं वास्तव में उत्साहित हूं कि आपकी योजना पुस्तक का एक नया संस्करण है, कटपॉइंट पूर्वाग्रह अनुभाग का विस्तार एक संदर्भ के रूप में बहुत उपयोगी होगा
मैक्स गॉर्डन

1
आप का उपयोग कर सकते हैं plotऔर के contrastबजाय plot.Predictऔर contrast.rms। मैं इसके बजाय उपयोग byया lengthअंदर करूँगा और दो सूचियाँ दूंगा ताकि आप यह बता सकें कि इसके विपरीत क्या किया जा रहा है। आप विश्वास बैंड के लिए छायांकन का उपयोग भी कर सकते हैं । seqtimescontrastxYplot
फ्रैंक हरेल

1
धन्यवाद। मुझे प्लॉट का उपयोग करना पसंद है। इसलिए क्योंकि मुझे RStudio में सही मदद मिलती है - कुछ ऐसा जो मेरे मामले में उस समय की तुलना में बहुत अधिक महत्वपूर्ण है जब इसे पूरा फ़ंक्शन नाम लिखने के लिए होता है (स्वतः पूर्ण का उपयोग करके) इतना समय ढीला)।
मैक्स गॉर्डन

जवाबों:


5

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


1
आपके उत्तर के लिए धन्यवाद। क्या आपको लगता है कि मुझे इस समस्या का उल्लेख करना चाहिए टेरी थेरोउ अगर यह एक बग / गलत व्याख्या के रूप में माना जाता है? मैंने आरएमएस पैकेज में ग्राफिक समाधानों पर भी ध्यान दिया है, मैं प्लॉट्स के लिए कंट्रास्ट के उपयोग को काफी समझ नहीं पा रहा हूं। प्लॉट.प्रेडिक्ट एक समान आउटपुट आउटपुट करता है, लेकिन मैं इसे वैसा नहीं कर सकता जैसा मैं चाहता हूं ... प्रश्न के लिए मेरा अपडेट देखें।
मैक्स गॉर्डन

2
पूछताछ करने के लिए उसे लिखना अच्छा होगा, और उसे उस हवाई अड्डे की सवारी के लिए धन्यवाद कहें जो उसने मुझे कुछ मिनट पहले दिया था। मैं अन्य प्रश्नों पर टिप्पणी करूंगा।
फ्रैंक हरेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.