सादे अंग्रेजी में R का उपयोग करके एक कॉक्स आनुपातिक खतरों प्रतिगमन मॉडल की व्याख्या और सत्यापन


14

क्या कोई मुझे सादे अंग्रेजी में मेरे कॉक्स मॉडल की व्याख्या कर सकता है?

मैंने फ़ंक्शन का उपयोग करके अपने डेटा के सभी के लिए निम्न कॉक्स प्रतिगमन मॉडल फिट किया है cph। मेरा डेटा नामक ऑब्जेक्ट में सहेजा गया है Data। चर w, xऔर yनिरंतर हैं; zदो स्तरों का एक कारक है। समय महीनों में मापा जाता है। मेरे कुछ मरीज़ चर के लिए डेटा गायब कर रहे हैं z( एनबी : मैंने डॉ। हैरेल के सुझाव को विधिवत नोट किया है, कि मैं इन मूल्यों को लागू करता हूं ताकि मेरे मॉडल को पूर्वाग्रह से बचा जा सके, और भविष्य में ऐसा करेंगे)।

> fit <- cph(formula = Surv(time, event) ~ w + x + y + z, data = Data, x = T, y = T, surv = T, time.inc = 12)

Cox Proportional Hazards Model
Frequencies of Missing Values Due to Each Variable
Surv(time, event)    w    x    y    z 
                0    0    0    0   14 

                Model Tests          Discrimination 
                                            Indexes        
Obs       152   LR chi2      8.33    R2       0.054    
Events     64   d.f.            4    g        0.437    
Center 0.7261   Pr(> chi2) 0.0803    gr       1.548    
                Score chi2   8.07                      
                Pr(> chi2) 0.0891                      

                   Coef    S.E.   Wald Z   Pr(>|Z|)
         w      -0.0133  0.0503    -0.26     0.7914  
         x      -0.0388  0.0351    -1.11     0.2679  
         y      -0.0363  0.0491    -0.74     0.4600  
         z=1     0.3208  0.2540     1.26     0.2067

मैंने cox.zphनीचे दिए गए आदेश का उपयोग करके आनुपातिक खतरों की धारणा का परीक्षण करने का भी प्रयास किया , लेकिन इसके परिणामों की व्याख्या करना नहीं जानता। लाना plot()आदेश चारों ओर एक त्रुटि संदेश देता है।

 cox.zph(fit, transform="km", global=TRUE)
            rho chisq      p
 w      -0.1125 1.312 0.2520
 x       0.0402 0.179 0.6725
 y       0.2349 4.527 0.0334
 z=1     0.0906 0.512 0.4742
 GLOBAL      NA 5.558 0.2347

पहली समस्या

  • क्या कोई मुझे सादे अंग्रेजी में उपरोक्त आउटपुट के परिणामों की व्याख्या कर सकता है? मेरे पास एक चिकित्सा पृष्ठभूमि है और आंकड़ों में कोई औपचारिक प्रशिक्षण नहीं है।

दूसरी समस्या

  • जैसा कि डॉ। हैरेल द्वारा सुझाया गया है, मैं rmsपैकेज का उपयोग करके 10-गुना क्रॉस-सत्यापन के 100 पुनरावृत्तियों को निष्पादित करके अपने मॉडल को आंतरिक रूप से मान्य करना चाहूंगा (जो मुझे समझ में आता है, यह 100 * 10 = 1000अलग-अलग मॉडल का निर्माण करेगा और फिर उन्हें जीवित रहने के समय की भविष्यवाणी करने के लिए कहेगा। रोगियों की है कि वे कभी नहीं देखा था)।

    मैंने validateफ़ंक्शन का उपयोग करने की कोशिश की , जैसा कि दिखाया गया है।

    > v1 <- validate(fit, method="crossvalidation", B = 10, dxy=T)
    > v1
          index.orig training    test optimism index.corrected  n
    Dxy      -0.2542  -0.2578 -0.1356  -0.1223         -0.1320 10
    R2        0.0543   0.0565  0.1372  -0.0806          0.1350 10
    Slope     1.0000   1.0000  0.9107   0.0893          0.9107 10
    D         0.0122   0.0128  0.0404  -0.0276          0.0397 10
    U        -0.0033  -0.0038  0.0873  -0.0911          0.0878 10
    Q         0.0155   0.0166 -0.0470   0.0636         -0.0481 10
    g         0.4369   0.4424  0.6754  -0.2331          0.6700 10

    आप 100x के पुनर्निर्माण को कैसे करते हैं? मुझे लगता है कि मेरा उपरोक्त कोड केवल एक बार क्रॉस-सत्यापन करता है।

  • मैं तब जानना चाहता था कि भविष्यवाणी में मेरा मॉडल कितना अच्छा था। मैंने निम्नलिखित कोशिश की:

    > c_index <- abs(v1[1,5])/2 + 0.5
    > c_index
    [1] 0.565984

    क्या इसका मतलब यह है कि मेरा मॉडल सिक्का उछालने से थोड़ा बेहतर है?

तीसरी समस्या

डॉ। हरेल बताते हैं कि मैंने कोवरिएट प्रभावों के लिए रैखिकता ग्रहण की है, और यह कि मेरे नमूने में घटनाओं की संख्या मुश्किल से एक विश्वसनीय मॉडल के लिए पर्याप्त बड़ी है यदि सभी कोवरिएट प्रभाव रैखिक होते हैं।

  • क्या इसका मतलब यह है कि मुझे अपने मॉडल में किसी प्रकार का इंटरैक्शन टर्म शामिल करना चाहिए? यदि हां, किसी भी सलाह के रूप में क्या रखा जाए?

2
मैंने शुरू में यह पूछने के लगभग तीन घंटे बाद, अपने प्रारंभिक प्रश्न के ऊपर कुछ प्रमुख संपादन किए। मैंने डॉ। हैरेल की बहुत ही उपयोगी सलाह का पालन करने की कोशिश की है। मैं वास्तव में इसकी सराहना करता हूं अगर कोई cphमुझे सीधे अंग्रेजी में उपरोक्त आउटपुट की व्याख्या करने का प्रयास करेगा , या मुझे एक संदर्भ में इंगित करेगा जो ऐसा करेगा। डॉ। हैरेल, अब तक आपकी मदद के लिए बहुत बहुत धन्यवाद!
अलेक्जेंडर

जवाबों:


13

आरंभ करने के लिए, कुछ बातों पर विचार करें। सबसे पहले, आप लापता डेटा के साथ बहुत अधिक टिप्पणियों को बाहर कर रहे हैं और यह एक पूर्वाग्रह का कारण होगा। एकाधिक प्रतिरूपण पर विचार करें। दूसरा, इसके लिए एक प्लॉट विधि हैcox.zphजो आनुपातिक खतरों का आकलन करने में उपयोगी है। तीसरा, आपने सहसंयोजक प्रभावों के लिए रैखिकता ग्रहण की है। चौथा, आपके प्रशिक्षण नमूने में घटनाओं की संख्या केवल एक विश्वसनीय मॉडल के लिए पर्याप्त रूप से बड़ी है यदि सभी कोवरिएट प्रभाव रैखिक होते हैं (जो दुर्लभ है)। और आपके परीक्षण नमूने में संभवतः 400 घटनाएं होनी चाहिए, इससे पहले कि यह भविष्यवाणी सटीकता का एक विश्वसनीय मूल्यांकन हो। यह स्पष्ट नहीं है कि आपके पास डेटा को दो भागों में विभाजित करने के लिए पर्याप्त डेटा था। रेज़लूशन सत्यापन (10-गुना क्रॉस-सत्यापन के 100 दोहराता है, या बूटस्ट्रैप का उपयोग करें) एक बेहतर समाधान है। अपने मूल बाहरी सत्यापन (कार्यों दोनों rcorr.censऔर val.surv) और आंतरिक सत्यापन resampling (कार्यों validate, calibrate) आर में लागू किया जाता है rmsपैकेज। के लिए केस स्टडीrms2×2


1
डॉ। हैरेल, आपकी टिप्पणियों के लिए एक गुच्छा धन्यवाद। मैंने टाइप करने की कोशिश की plot(cox.zph(fit[[1]], transform="km", global=TRUE)), हालाँकि, इससे उपज हुई Error in plot.cox.zph(cox.zph(fit[[1]], transform = "km", global = TRUE)) : Spline fit is singular, try a smaller degrees of freedom। क्या मैं इस फ़ंक्शन को गलत तरीके से बुला रहा हूं?
अलेक्जेंडर

1
यदि मैं अपने प्रशिक्षण और सत्यापन डेटा को संयोजित करता हूं, तो मेरे पास 75 घटनाओं के साथ 166 अवलोकन हैं। जैसा कि आपने सुझाव दिया था, मैं अपने 13 अवलोकन के लिए अपने चर "z" के मूल्यों को लागू कर सकता हूं जो उस समस्या को समाप्त करते हुए, उस डेटा को गायब कर रहे हैं। मुझे 100 गुना 10 गुना क्रॉस-सत्यापन करने का आपका सुझाव पसंद है। यदि आपके पास समय है, तो मैं वास्तव में इसकी सराहना करूंगा यदि आप इसे करने के लिए आरएमएस पैकेज का उपयोग करने के तरीके पर एक ठोस संकेत दे सकते हैं। इस बीच, मैं आपकी वेबसाइट के माध्यम से पढ़ना जारी रखूंगा। मैं भविष्य में आपका पाठ्यक्रम लेना पसंद करूंगा। दुर्भाग्य से, मैं इस समय यूरोप में हूं, थोड़ा बहुत दूर!
अलेक्जेंडर

2
विलक्षणता समस्या के लिए, करें plot(cox.zph(...), df=2)rmsउदाहरण के लिए पाठ्यक्रम नोट्स में केस स्टडीज देखें या पैकेज स्थापित करें (जिसे पैकेज की भी आवश्यकता है Hmisc) और मदद फ़ाइलों को लाने के लिए इन कमांडों को टाइप करें:?cph ?validate.cph ?calibrate.cph
फ्रैंक हरेल

2
आपकी सहायता के लिए एक बार फिर से धन्यवाद! इस सप्ताह के अंत में मैंने आपके पाठ्यक्रम के नोट्स छपवाए और इस सप्ताह उन्हें पढ़ने और सभी केस स्टडी के माध्यम से काम करने में बिताया।
अलेक्जेंडर

4

एक प्रासंगिक उदाहरण के आधार पर R cph फ़ंक्शन का आउटपुट जे। फॉक्स द्वारा इस आसान-से-अनुसरण पेपर में समझाया गया है ।

यदि आप पहले से ही नहीं हैं तो मैं दृढ़ता से इस पेपर को पढ़ने की सलाह दूंगा।


1
क्या आप बता सकते हैं कि पेपर cphआउटपुट की व्याख्या कैसे करता है ?
smillig

2
इस साइट पर संदर्भ और स्वागत के लिए +1 धन्यवाद! यह बहुत अच्छा होगा यदि आप कागज की सामग्री का संक्षिप्त विवरण भी दे सकते हैं क्योंकि हम उन उत्तरों के लिए प्रयास करते हैं जो अपने दम पर खड़े हो सकते हैं।
गाला

यह लिंक अब नहीं है
Marcin Kosi isski

1
लिंक socialsciences.mcmaster.ca/jfox/Books/Companion-1E/… वर्तमान में काम कर रहा है और इस उत्तर में संदर्भित एक ही पेपर प्रतीत होता है।
dnlbrky
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.