2015-09-29 55 views
1

我有一個生存數據集。我想對一種治療進行logrank測試,分爲4類。我不能使用survdiff()命令,因爲這些統計量的漸近分佈是卡方,我需要正常性(我在多重插補設置和後面的池中執行此操作)。相反,我想運行一個Cox迴歸,然後運行分數測試,這個測試通常是分佈式的。通過Cox迴歸對特定組進行Logrank檢驗

所以,我想要做的是把我的4個類別,然後將它們分成幾個組,以單獨比較它們。例如

治療2與治療3:是否可以在不分解數據的情況下做到這一點?假設我們有燒傷的數據集從包KMsurv

library(KMsurv) 

> summary(coxph(Surv(T1,D1)~factor(Z11),data=burn)) 
Call: 
coxph(formula = Surv(T1, D1) ~ factor(Z11), data = burn) 

    n= 154, number of events= 99 

      coef exp(coef) se(coef)  z Pr(>|z|) 
    factor(Z11)2 -0.9820 0.3745 0.4956 -1.982 0.0475 * 
    factor(Z11)3 -1.6872 0.1850 0.8029 -2.101 0.0356 * 
    factor(Z11)4 -0.4070 0.6656 0.3957 -1.029 0.3037 
... 
Likelihood ratio test= 9.17 on 3 df, p=0.0271 
Wald test   = 7.38 on 3 df, p=0.06083 
Score (logrank) test = 8 on 3 df, p=0.04602 

此輸出1時序檢驗VS 2比3比4,但我只想要2比3 我知道我可以通過這個命令之前運行得到它

subsetted=subset(burn,Z11==2|Z11==3) 
summary(coxph(Surv(T1,D1)~factor(Z11),data=subsetted)) 

但是這將讓繁瑣和難以調試的時候,我們必須做的事情一樣比較1,2對4

那麼,有沒有什麼辦法可以選擇要在coxph比較哪些羣體命令,或者是選擇組進行預先設定befo的唯一方法回覆?

+0

將1和2一起與3比較的正確方法將與對比相比。我建議在LR測試可用時使用分數統計是一種錯誤的方法。對於使用劣勢統計檢驗來說,處理這個問題有一個「正常理論」策略並不是一個有說服力的理由。 –

+0

沒有常態,我無法彙集我的結果(據我所知,目前我通過Rubin的規則進行彙總)。所以我覺得這是一種付出和承擔。我們在測試中失去了一些最優性,但我們獲得了將結果彙集到許多估算數據集中的能力。你知道將使LR測試正常分佈的轉換嗎?我知道它是卡方,但平方根將分佈,不正常。 – RayVelcoro

+0

當我閱讀http://sites.stat.psu.edu/~jls/mifaq.html#howto時,所做的操作是針對個人估算值和他們的標準誤差進行的,而不是全局的適合度量。推測生存分析的參數估計是正態分佈的。 –

回答

2

coxph函數中使用subset參數。見?coxph

但你還需要從burn$Z11

下降不必要因子水平所以,你可以做

summary(coxph(Surv(T1,D1)~factor(Z11,levels=c('2','3')),data=burn, subset=Z11 %in% c('2','3'))) 

或位更方便喜歡

mylevels <- c('2','3') #specify factor levels for subset 
summary(coxph(Surv(T1,D1)~factor(Z11,levels=mylevels),data=burn, subset=Z11 %in% mylevels)) 

也看到這個線程使一個包裝,其中子集被定義爲包裝函數中的參數:

https://stat.ethz.ch/pipermail/r-help/2007-November/145345.html

+0

我覺得這幾乎可以回答它。儘管我想比較第1組和第2組和第3組,我該怎麼做? – RayVelcoro

+0

'mylevels < - c('1','2','3')'?或兩個單獨的比較,例如mylevels < - c('1','2')'和'mylevels < - c('1','3')'?我不確定我是否明白你的要求。 –