生存分析以获得下降率

时间:2018-09-15 23:00:21

标签: r survival-analysis exposure

Ciao,我有学生辍学的数据,我的目标是进行生存分析,我认为这是检查或预测给定年级辍学的可能性。但是,挑战在于我想将成绩分组在一起,例如(7,8)(9,10)(11,12)

这是我的复制示例。这是我现在拥有的数据:

data <- data.frame(STUDENT=c(1,1,1,1,2,2,2,2,3,3,3,3),
                  GRADE=c(9,10,11,12,7,8,9,10,9,10,11,12),
                  DROPOUT=c(0,0,0,0,0,0,1,1,0,0,0,1))

我把数据提高了,例如,STUDENT = 1从未辍学,STUDENT = 2在9年级辍学,STUDENT = 3在12年级辍学。

现在这是我的基本生存分析方法

attach(data)
survivalmodel <- Surv(time=GRADE,event=DROPOUT)

我需要时间2 =吗?您能说说这件事有多重要以及如何衡量吗?我是自学成才,还在读书。

所以我的问题是我如何获得GRADE频段(7,8)(9,10)(11,12)的辍学概率,以便最终有学生在GRADES 7和8中分别辍学GRADES 11和12分别为9和10。

1 个答案:

答案 0 :(得分:0)

time(您叫time1)应该是第一个观察到的成绩。 (我假设对于任何给定的学校,都会有新的学生转入。)time2应该是辍学的年级,或者是12。事件应该是您所拥有的,除非您不应该拥有重复。第8行应删除。您应该构造一个新的数据框,该数据框具有4列和3行(每个学生一个)。

sdat <- read.table(text="STUDENT start GRADE DROPOUT
1 9 12 0
2 7 9 1
3 9 12 1", header=TRUE)
sdat
# NEVER use attach, but especially never with survival pkg functions

coxph( Surv(time=start, time2=GRADE, event=DROPOUT)~. , data=sdat[-1])
Call:  coxph(formula = Surv(time = start, time2 = GRADE, event = DROPOUT) ~ 
    ., data = sdat[-1])

Null model
  log likelihood= -0.6931472 
  n= 3