2014-01-31 44 views
2

我正在做間隔刪失數據的生存分析,我試圖使用incox包中的intcox()函數做Cox迴歸。我已經用survfit()完成了部分分析,並且一切正常。類型'環境'的R對象不是子集

當我嘗試使用intcox,總有一個問題:

> intcox(Surv(tempo2,tempo1,type="interval2")~dados$sexo) 
Error in copy.data[ord, ] : 
    object of type 'environment' is not subsettable 

> intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados) 
Error in if (any(derivs.wert$g1 <= 0)) { : 
    missing value where TRUE/FALSE needed 
In addition: Warning messages: 
1: In Surv(data$mix, lokal.cens) : Invalid status value, converted to NA 
2: In coxph(formula, data) : X matrix deemed to be singular; variable 1 

dados $ sexo是三個層次的一個因素,dados是156個觀察和52個變量列表。進行Kaplan-Meier分析或在沒有間隔數據的情況下使用coxph()時沒有問題。當我使用其他變量時,問題似乎是相同的。
我,使用R 3.0.1

**更新**
我並沒有改變任何事情,現在的錯誤是這樣的:

> intcox(Surv(tempo2,tempo1,type="interval2")~dados$sexo) 
Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ dados$sexo) : 
    Invalid cens status 

> intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados) 
Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ sexo, data = dados) : 
    Invalid cens status 
+0

我相信你的第一行的語法是無效的。在第二個版本中,「Surv」返回的「NA」是導致錯誤信息的原因。如果這是因爲你有一個單一的矩陣(第二個警告),那麼你正在使用一個與你的數據集不兼容的工具。 –

+1

@Carl Witthoft我幾乎可以肯定兩個版本都是一樣的。如果我單獨運行** Surv(tempo2,tempo1,type =「interval2」)**,則結果是預期的(Surv對象)。我認爲唯一的可能是錯誤的來源是我混合了審查數據(右刪失,間隔刪失和未刪失),文檔沒有提到這種情況,儘管它表示接受interval2類型的Surv對象。 – JMarcelino

回答

1
  1. 對於你的第一個問題,

    >intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados) 
    Error in if (any(derivs.wert$g1 <= 0)) { : 
    missing value where TRUE/FALSE needed 
    In addition: Warning messages: 
    1: In Surv(data$mix, lokal.cens) : Invalid status value, converted to NA 
    2: In coxph(formula, data) : X matrix deemed to be singular; variable 1 
    

它是由於您的數據框中的變量是其他變量的線性組合,這使得X矩陣非單一,如第二個警告所暗示的。

coxph可以通過將這些變量的係數設置爲NA來處理這個非奇異問題。然而,不幸的是,這個intcox包不是很健壯。一種解決方案是首先使用一些線性模型找出這些變量,並從數據框中消除它們。然後離開你去。

  • 關於第二個問題,

    > intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados) 
    Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ sexo, data = dados) : 
        Invalid cens status 
    
  • 可能是你沒有制定以正確的方式你的數據集。我不能提供更多幫助,因爲您沒有提供有關變量tempo1和tempo2的含義的更多信息。

    相關問題