1

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)

我需要 time2 = 吗?你能说拥有它有多重要以及如何衡量它吗?我是自学的,还在读书。

所以我的问题是我如何获得 GRADE Bands (7,8) (9,10) (11,12) 的辍学概率,以便最终有学生在 9 年级和 10 年级分别退出 7 年级和 8 年级的概率11 年级和 12 年级分开。

4

1 回答 1

1

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 
于 2018-09-20T07:21:51.527 回答