2013-02-03 6 views
1

두 개의 하위 그룹이있는 모집단에 생존 패키지를 사용하고 있습니다. 각 그룹당 5 년 KM 생존율이 필요합니다. 나는 또한 2 ~ 5 년 생존율에 chisq 테스트를 실행하고 싶었다, 그러나5 년 생존율 카이 제곱 테스트

summary(survfit(Surv(survtime, vital)~subgroup)), time = 60) #in months 

: 나는에서이 값을 얻었다. 서바이벌 패키지를 사용하여이 테스트를 수행하는 쉬운 방법이 있습니까?

어떤 조언과 도움을 주셔서 감사합니다.

답변

2

이것이 올바른 방법 (구매자가주의)인지 확실하지 않지만 여기서는 survival 패키지의 예제 데이터로 포함 된 aml 데이터 세트를 사용한 예입니다. time=20를 들어, 결과

library(survival) 
amlsurv <- with(aml,survfit(Surv(time,status) ~ x)) 
summary(amlsurv ,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) 

이제 수동 이십일에 제한하려고 :

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 
+0

감사합니다! 나는 앞으로 나아가 그것을 해결하기 위해 커스텀 함수를 작성하려고 시도했다. 그러나 나는 또한 실수를 저 지르려고 조심했습니다. 일단 내가 일하러 나가면 내가 얻고있는 것과 일관성이 있는지이 방법을 확인해 볼 것입니다. – user1760436

0

쉽게 survdiff() 사용할 수 있습니다

s.fit <- survfit(Surv(survtime, vital)~subgroup) 
survdiff(s.fit) 
관련 문제