上記のSimonとMakuchの記事にアクセスすることはできませんでしたが、見つけたトピックを調査しました。
Steven M Snapinn、Qi Jiang&Boris Iglewicz(2005)、拡張カプラン・マイヤー推定量を使用した時変共変量の影響の説明、The American Statistician、59:4、301-307。
その記事では、すべてのイベント時間でコホートを更新するだけで、時間依存のカプランマイヤープロット(KM)を提案しています。また、同様のアイデアを提案したSimonとMakuchの記事も引用しています。通常のKMはこれを許可しません。グループへの固定分割のみを許可します。提案された方法は、実際には、共変量ステータスに従って生存時間を分割します-区分的に一定の共変量を使用してCoxモデルを推定する場合と同じように。Coxモデルの場合、これは実行可能なアイデアであり、標準的なものです。ただし、KMプロットを行う場合はより複雑です。シミュレーションの例で説明します。
検閲はないが、死の前に発生するかもしれないし発生しないかもしれない何らかのイベント(例えば、出産)があると仮定しましょう。簡単にするために、一定の危険も想定します。また、出産が死亡の危険を変えることはないと仮定します。上記の記事に記載されている手順に従います。記事では、これがRでどのように行われるかを明確に述べています。グループ化変数で定数になるように、出産時に被験者を分割するだけです。次に、Surv
関数でカウントプロセス定式化を使用します。コードで
library(survival)
library(ggplot2)
n <- 10000
data <- data.frame(id = seq(n),
preg = rexp(n, 1),
death = rexp(n, .5),
enter = 0,
per = NA,
event = 1)
data$exit <- data$death
data0 <- data
data0$exit <- with(data, pmin(preg, death))
data0$per <- 0
data0$event[with(data0, preg < death)] <- 0
data1 <- subset(data, preg < death)
data1$enter <- data1$preg
data1$per <- 1
data <- rbind(data0, data1)
data <- data[order(data$id), ]
Sfit <- survfit(Surv(time = enter, time2 = exit, event = event) ~ per, data = data)
autoplot(Sfit, censSize = 0)$plot
私は多かれ少なかれ「手で」それを分割しています。使用するsurvSplit
こともできます。手順は実際に私に非常に素晴らしい見積もりを与えます。
必要に応じて、2つのグループの推定はほぼ同じになります。しかし、実際には、私のシミュレーションはおそらく少し非現実的でした。女性が何らかの理由で最初の2つの時間単位で出産できないとしましょう。これは、あなたの例では少なくとも合理的です。同じ女性に対応する2つの妊娠の間には、しばらく時間がかかります。コードに少し追加する
data <- data.frame(id = seq(n),
preg = rexp(n, 1) + 2,
death = rexp(n, .5),
enter = 0,
preg = NA,
event = 1)
次のプロットが得られます。
データでも同じことが起こります。最初の一定期間、第3妊娠は表示されません。つまり、そのグループとその期間の推定値は1になります。これは私の意見ではあなたのデータの誤った表現です。私のシミュレーションを考えてみましょう。ハザードは同じですが、すべての時点で、per1
推定値は推定値よりも大きくなりper0
ます。
この問題に対するさまざまな対策を検討することができます。それらをある時点で一緒に貼り付けることを提案します(per1
-curveを-curveの特定のポイントから開始しper0
ます)。このアイデアが好きです。シミュレーションデータで実行すると、次のようになります。
私たちの特定のケースでは、これはデータをよりよく表していると思いますが、このアプローチをサポートする公開された結果は知りません。ヒューリスティックな方法では、別の回答で提示した引数を使用できます。
時変係数を使用したKMプロット