0

生存分析は初めてで、データを正しくフォーマットしているかどうかわかりません。このダミー データを使用すると、次のようになります。

id <- c(rep("1", 10), rep("2", 10), rep("3", 10), rep("4", 10), rep("5", 10))
age <- c((15:24), (35:44), (45:54), (55:64), (40:49))
event <- c(rep("0", 10), 
       0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
       0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
       0, 0, 0, 2, 2, 2, 2, 2, 2, 2)
group <- c("a", "a", "a", "a", "a", "a", "a", "a", "a", "a", 
       "a", "a", "a", "a", "b", "b", "b", "b", "a", "a",
       "a", "a", "a", "a", "b", "b", "b", "a", "b", "b",
       "a", "a", "a", "a", "c", "c", "c", "c", "c", "c",
       "d", "d", "d", "d", "a", "a", "a", "a", "a", "a")
df <- data.table(id, age, event, group)
df$tstart <- integer(0)
df$tstop <- df$age
df[, tstart := shift(tstop), by = id]
df$tstart <- ifelse(is.na(df$tstart), 14, df$tstart)

v1 <- survfit(Surv(age, event == 1) ~ group, data = df)
v2 <- survfit(Surv(tstart, tstop, event == 1) ~ group, data = df) 

イベント内で、1 = 注目しているイベント、0 = イベントがまだ発生していない、2 = 別の理由で失われた。

「イベント」の年齢が、所属する「グループ」によって異なるかどうかを調べています。両方の形式のコードを見てきました。

coxph(Surv(age, event == 1) ~ group)

coxph(Surv(tstart, tstop, event == 1) ~ group) 

しかし、使用するコードによって異なる結果が得られ、KM プロットも完全に異なって見えます。時変共変量があるのと同じくらい長い形式のデータが必要です。

誰かが私がどこで間違っているのか教えてもらえますか?

ありがとう。

4

0 に答える 0