Düz İngilizce R kullanarak Cox orantılı tehlikeler regresyon modelinin yorumlanması ve onaylanması


14

Birisi bana Cox modelimi düz İngilizce olarak açıklayabilir mi?

Bu işlevi kullanarak tüm verilerime aşağıdaki Cox regresyon modelini yerleştirdim cph. Verilerim adlı bir nesneye kaydedilir Data. Değişkenler w, xve ysüreklidir; ziki seviyeli bir faktördür. Zaman ay olarak ölçülür. Bazı hastalarım değişkenleri için veri eksik z( Not : Dr.Harrell'in aşağıda, modelime ağırlık vermekten kaçınmak için bu değerleri ima ettiğimi ve gelecekte yapacağım tavsiyesini usulüne uygun olarak belirtmiştim).

> 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

Ayrıca cox.zph, aşağıdaki komutu kullanarak orantılı tehlike varsayımını test etmeye çalıştım , ancak sonuçlarını nasıl yorumlayacağımı bilmiyorum. Koymak plot()komutu etrafında bir hata mesajı verir.

 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

İlk Sorun

  • Birisi yukarıdaki çıktının sonuçlarını düz İngilizce olarak açıklayabilir mi? Tıbbi bir geçmişim var ve istatistik konusunda resmi bir eğitimim yok.

İkinci Sorun

  • Harrell tarafından önerildiği gibi, rmspaketi kullanarak 10 kat çapraz doğrulama doğrulamasının 100 yinelemesini gerçekleştirerek modelimi dahili olarak doğrulamak istiyorum (anladığım kadarıyla, bu 100 * 10 = 1000farklı modeller oluşturmayı ve daha sonra hayatta kalma sürelerini tahmin etmelerini ister. daha önce hiç görmedikleri hastaların).

    validateGösterildiği gibi işlevi kullanmayı denedim .

    > 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 yeniden örnekleme nasıl yapılır? Yukarıdaki kodum sadece bir kez çapraz doğrulama gerçekleştirdiğini düşünüyorum.

  • Daha sonra modelimin ne kadar iyi olduğunu tahmin etmek istedim. Aşağıdakileri denedim:

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

    Bu, modelimin bir madeni parayı çevirmekten sadece biraz daha iyi olduğu anlamına mı geliyor?

Üçüncü Sorun

Harrell, ortak değişken efektler için doğrusallık kazandığımı ve numunemdeki olay sayısının, tüm ortak değişkenlerin doğrusal olması durumunda güvenilir bir modele uyacak kadar büyük olduğunu belirtti.

  • Bu, modelime bir çeşit etkileşim terimi eklemem gerektiği anlamına mı geliyor? Eğer öyleyse, ne koyacağınıza dair herhangi bir tavsiye?

2
İlk soruma, ilk başta sorduktan yaklaşık üç saat sonra, bazı büyük düzenlemeler yaptım. Dr.Harrell'in çok yardımcı tavsiyelerini takip etmeye çalıştım. Birisi cphbana yukarıdaki çıktıyı düz İngilizce olarak açıklamaya çalışırsa ya da bana bunu yapacak bir referansa işaret ederse çok memnun olurum. Harrell, şimdiye kadar yardımın için çok teşekkürler!
Alexander

Yanıtlar:


13

Başlamak için birkaç şeyi düşünün. İlk olarak, eksik verilerle çok fazla gözlemi hariç tutuyorsunuz ve bu bir yanlılığa neden olacaktır. Birden fazla dürtü düşünün. İkinci olarak,cox.zphorantılı tehlikelerin değerlendirilmesinde faydalıdır. Üçüncüsü, ortak değişkenler için doğrusallık varsaydınız. Dördüncüsü, tüm ortak değişkenler doğrusal olduğunda (nadirdir) egzersiz örneğinizdeki etkinliklerin sayısı güvenilir bir modele sığacak kadar azdır. Ve test örneğinizin tahmin doğruluğu için güvenilir bir değerlendirme yapmadan önce belki 400 olaya sahip olması gerekir. Verileri iki bölüme ayırmak için yeterli veriye sahip olduğunuz açık değildir. Yeniden örnekleme doğrulaması (10 kat çapraz doğrulamanın 100 tekrarı veya bootstrap kullanımı) daha iyi bir çözümdür. Orijinal dış doğrulama (fonksiyonları Hem rcorr.censve val.surv) ve iç doğrulama yeniden örnekleme (fonksiyonlar validate, calibrate) R uygulanır rmspaketin. İçin vaka çalışmalarırmspaket http://biostat.mc.vanderbilt.edu/rms adresindeki ders notlarımda bulunur (ve önümüzdeki ay Nashville'de 3 günlük kursum var). Bu Not tablolar sürekli veriler ile kullanım için uygun değildir.2×2


1
Harrell, yorumlarınız için çok teşekkürler. Yazmayı denedim plot(cox.zph(fit[[1]], transform="km", global=TRUE)), ancak bu verdi Error in plot.cox.zph(cox.zph(fit[[1]], transform = "km", global = TRUE)) : Spline fit is singular, try a smaller degrees of freedom. Bu işlevi yanlış mı adlandırıyorum?
Alexander

1
Eğitim ve doğrulama verilerimi birleştirirsem, 166 olayı 75 olayla birleştiririm. Önerdiğiniz gibi, bu verinin eksik olduğu 13 gözlemim için "z" değişkenimin değerlerini engelleyebilir ve bu sorunu ortadan kaldırabilirim. 100x 10 kat çapraz doğrulama gerçekleştirme önerinizi beğendim. Eğer zamanınız varsa, bunu yapmak için rms paketlerini nasıl kullanacağınıza dair daha somut bir ipucu sunabilirseniz gerçekten çok memnun olurum. Bu arada, web sitenizi okumaya devam edeceğim. Gelecekte dersinizi almak isterim. Ne yazık ki, şu anda Avrupa'dayım, biraz fazla uzakta!
Alexander

2
Tekillik sorunu için plot(cox.zph(...), df=2). rmsÖrnekler için ders notlarındaki örnek olaylara bakın veya paketi kurun (pakete de ihtiyaç duyar Hmisc) ve yardım dosyalarını açmak için şu komutları yazın:?cph ?validate.cph ?calibrate.cph
Frank Harrell

2
Yardımın için tekrar teşekkürler! Bu haftasonu ders notlarınızı yazdırdım ve bu haftayı bunları okuyarak ve tüm vaka çalışmalarını çalışarak geçireceğim.
Alexander

4

İlgili bir örneğe dayanan R cph fonksiyonunun çıktısı, J. Fox tarafından takip edilmesi kolay bu makalede açıklanmıştır .

Henüz yapmadıysanız bu makaleyi okumanızı şiddetle tavsiye ederim.


1
Makalenin cphçıktıyı yorumlamayı nasıl önerdiğini açıklayabilir misiniz ?
smillig

2
+1 Referansınız için teşekkürler ve bu siteye hoş geldiniz! Tek başına durabilen cevaplar için çabaladığımızdan, kağıdın içeriğine kısa ve öz bir bakış sunabilmeniz harika olurdu.
Gala

Bu bağlantı artık mevcut değil
Marcin Kosiński

1
Socialsciences.mcmaster.ca/jfox/Books/Companion-1E/… bağlantısı şu anda çalışıyor ve bu yanıtta atıfta bulunulan aynı makale gibi görünüyor.
dnlbrky
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.