生存分析は初めてで、データを正しくフォーマットしているかどうかわかりません。このダミー データを使用すると、次のようになります。
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 プロットも完全に異なって見えます。時変共変量があるのと同じくらい長い形式のデータが必要です。
誰かが私がどこで間違っているのか教えてもらえますか?
ありがとう。