我對有兩個亞組的人羣使用生存包。我需要每組5年的KM存活率。我得到這個值:5年生存率卡方檢驗
summary(survfit(Surv(survtime, vital)~subgroup)), time = 60) #in months
但是,我也想對兩個五年的生存率進行chisq測試。有沒有簡單的方法來運行這個測試使用生存包?
感謝您的任何建議和幫助!
我對有兩個亞組的人羣使用生存包。我需要每組5年的KM存活率。我得到這個值:5年生存率卡方檢驗
summary(survfit(Surv(survtime, vital)~subgroup)), time = 60) #in months
但是,我也想對兩個五年的生存率進行chisq測試。有沒有簡單的方法來運行這個測試使用生存包?
感謝您的任何建議和幫助!
不確定這是否是正確的方式(買方要小心),但這裏是一個使用survival
包使用aml
數據集作爲示例數據的示例。
library(survival)
amlsurv <- with(aml,survfit(Surv(time,status) ~ x))
summary(amlsurv ,time=20)
導致,爲time=20
:
Call: survfit(formula = Surv(time, status) ~ x)
x=Maintained
time n.risk n.event
20.000 7.000 3.000 ...
x=Nonmaintained
time n.risk n.event
20.000 6.000 5.000 ...
這兩個選項使用survdiff
功能失效:
survdiff(summary(aml,time=20))
survdiff(aml,time=20)
現在嘗試限制手動20天:
aml$status.20 <- aml$status
# set 'deaths' with a time greater than 20 to be 'survivors'
aml$status.20[aml$status == 1 & aml$time > 20] <- 0
amlsurv <- (Surv(aml$time,aml$status.20) ~ aml$x)
summary(survfit(amlsurv))
# results are the same as above, Maintained=3 events,Nonmaintained=5 events
現在你可以讓你的結果20天的限制比較兩組:
survdiff(amlsurv)
Call:
survdiff(formula = amlsurv)
N Observed Expected (O-E)^2/E (O-E)^2/V
aml$x=Maintained 11 3 4.3 0.392 0.874
aml$x=Nonmaintained 12 5 3.7 0.455 0.874
Chisq= 0.9 on 1 degrees of freedom, p= 0.35
您可以輕鬆地使用survdiff()
:
s.fit <- survfit(Surv(survtime, vital)~subgroup)
survdiff(s.fit)
謝謝!我繼續前進,試圖編寫一個自定義函數來解決它。但我也很警惕,我犯了一個錯誤。一旦我下班,我會檢查這個方法,看看它是否與我得到的一致。 – user1760436