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。
答案 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