स्कोनफेल्ड अवशिष्ट अच्छा नहीं होने पर आनुपातिक खतरे प्रतिगमन मॉडल में क्या विकल्प हैं?


15

मैं R का उपयोग करते हुए एक कॉक्स आनुपातिक खतरों का प्रतिगमन कर रहा हूं coxph, जिसमें कई चर शामिल हैं। मार्टिंगेल अवशिष्ट बहुत अच्छे लगते हैं, और स्कोनफेल्ड अवशिष्ट एलएमओएसटी सभी चर के लिए महान हैं। तीन चर हैं जिनके स्कोनफेल्ड अवशिष्ट फ्लैट नहीं हैं, और चर की प्रकृति ऐसी है कि यह समझ में आता है कि वे समय के साथ भिन्न हो सकते हैं।

ये वे चर हैं जिनकी मुझे वास्तव में कोई दिलचस्पी नहीं है, इसलिए इन्हें बनाना ठीक होगा। हालांकि, वे सभी निरंतर चर हैं, श्रेणीगत चर नहीं। इसलिए मैं समझता हूं कि व्यवहार्य मार्ग * नहीं होना चाहिए। मैंने यहाँ वर्णित के रूप में चर और समय के बीच बातचीत के निर्माण की कोशिश की है , लेकिन हमें त्रुटि मिलती है:

  In fitter(X, Y, strats, offset, init, control, weights = weights,  :
  Ran out of iterations and did not converge

मैं लगभग 1000 डेटा बिंदुओं के साथ काम कर रहा हूं, और कई कारकों के साथ आधा दर्जन चर के साथ काम कर रहा हूं, इसलिए ऐसा महसूस होता है कि हम इस सीमा को आगे बढ़ा रहे हैं कि कैसे इस डेटा को कटा हुआ और डाई किया जा सकता है। दुर्भाग्य से, सभी सरल मॉडल जो मैंने कम शामिल चर के साथ आज़माए हैं, वे स्पष्ट रूप से बदतर हैं (उदाहरण के लिए। स्कोइनफ़ेल्ड अवशिष्ट अधिक चर के लिए crumbier हैं)।

मेरे विकल्प क्या हैं? चूंकि मैं इन विशेष रूप से खराब व्यवहार वाले चर के बारे में परवाह नहीं करता, इसलिए मैं सिर्फ उनके आउटपुट को अनदेखा करना चाहूंगा, लेकिन मुझे संदेह है कि यह वैध व्याख्या नहीं है!

* एक निरंतर है, एक 100 से अधिक की सीमा के साथ एक पूर्णांक है, और एक 6. 6 की सीमा के साथ पूर्णांक है?


2
समय पर निर्भर चर के लिए एक समय बातचीत के साथ विस्तारित कॉक्स मॉडल का उपयोग करने के बारे में क्या?
kirk

टाइम-वेयिंग कोवरिअट्स विकल्प (जैसे-स्टैटा में -tvc-) पर विचार करने के बारे में क्या?
कार्लो लेजारो

जवाबों:


1

सबसे सुंदर तरीका एक पैरामीट्रिक उत्तरजीविता मॉडल (गोम्पर्ट्ज़, वीबुल, एक्सपोनेंशियल, ...) का उपयोग करना होगा यदि आपके पास कुछ विचार है जो आधारभूत खतरे जैसा दिख सकता है।

यदि आप अपने कॉक्स मॉडल के साथ रहना चाहते हैं, तो आप समय-निर्भर गुणांक वाले विस्तारित कॉक्स मॉडल को अपना सकते हैं । इस बात को ध्यान में रखें कि कोवरिएट्स के आधार पर समय के साथ विस्तारित कॉक्स मॉडल भी होते हैं - ये आपकी समस्या का समाधान नहीं करते हैं!

R के लिए यहां देखें: http://cran.r-project.org/web/packages/survival/vignettes/timedep.pdf


1

विचारों की जोड़ी -

1) रोस्टन-परमार मॉडलिंग दृष्टिकोण की कोशिश करें जैसे http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0047804 और उसमें सन्दर्भ। हमारे पास इसके साथ उपयोगी परिणाम हैं।

2) निरंतर चर को केंद्र और मानकीकरण करना संख्यात्मक रूप से उपयोगी हो सकता है।

3) कई स्तरों वाले कारकों वाले कई मॉडलों में कुछ स्तर होते हैं जहां मूल रूप से कोई डेटा नहीं होता है। इन्हें हटाने के लिए स्तरों को जोड़ना, लेकिन अच्छे मूल मानदंडों के आधार पर, बहुत मददगार हो सकते हैं।

सौभाग्य!


1

यदि अंतर्निहित समय के साथ बातचीत का उपयोग करने से काम नहीं चलता है, तो आप स्टेप फ़ंक्शंस की कोशिश कर सकते हैं (अधिक जानकारी के लिए थर्नो के 2016 विग्नेट ई देखें)।

चरण कार्य विशिष्ट अंतराल पर विशिष्ट गुणांक में स्तरीकृत होते हैं। समस्याग्रस्त कोवरिएट्स (यानी plot(cox.zph(model.coxph))) के लिए आपके प्लॉट किए गए शोनीफेल्ड अवशेषों को देखने के बाद आपको नेत्रहीन जांच करने की आवश्यकता है कि लाइनें कोण कहाँ बदलती हैं। एक या दो बिंदु खोजने की कोशिश करें जहां बीटा स्पष्ट रूप से अलग लगता है। मान लीजिए कि यह 10 और 20 के समय पर हुआ है। इसलिए हम पैकेज survSplit()से डेटा का उपयोग survivalकरेंगे, जो कि पूर्वोक्त समय पर विशिष्ट डेटा मॉडल को समूहीकृत करने के लिए एक डेटा फ्रेम बनाएगा:

step.data <- survSplit(Surv(t1, t2, event) ~ 
                      x1 + x2,
                      data = data, cut = c(10, 20), episode = "tgroup")

और फिर समस्याग्रस्त चर के साथ बातचीत के रूप में cox.phमॉडल को चलाएं strata(समय के साथ बातचीत करने के साथ, समय या तब के लिए एक मुख्य प्रभाव न जोड़ें):

> model.coxph2 <- coxph(Surv(t1, t2, event) ~ 
                          x1 + x2:strata(tgroup), data = step.data)

और वह मदद करनी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.