Rを使用して時間依存の共変量を持つ生存データを生成する方法


9

時間依存の共変量を含むCox比例ハザードモデルから生存時間を生成したい。モデルは

h(t|Xi)=h0(t)exp⁡(γXi+αmi(t))

ここで、はBinomial(1,0.5)およびます。Ximi(t)=β0+β1Xi+β2Xit

真のパラメータ値は、として使用されますγ=1.5,β0=0,β1=−1,β2=−1.5,h0(t)=1

時間に依存しない共変量(つまり、、次のように生成しましたh(t|Xi)=h0(t)exp⁡(γXi)

#For time independent case
# h_0(t) = 1
gamma <- -1
u <- runif(n=100,min=0,max=1)
Xi <- rbinom(n=100,size=1,prob=0.5)
T <- -log(u)/exp(gamma*Xi)

時変共変量で生存データを生成するのを手伝ってくれる人はいますか?


はどのような関数ですか?継続的ですか?区分的に一定ですか?それに応じて、おそらく別のアルゴリズムが必要になります。mi(t)
— トリスタン2014

mi(t)は時間依存の共変量です。簡単にするために、時間との比例関係を検討できます。
— シェイク

関数を考慮して、質問を編集しましたmi(t)
— Sheikh

上記の方程式からRコードをどのように実行しましたか?つまり、同じid内の各死亡時に、プログラムは、xが1に等しいか0であるすべての人の共変量を理解する必要があります。その後、生存関数を計算します。各主題に適した行を選択できます。
— Qas Amell 2015

Z. Zhangが指摘したように、この記事をご覧ください。さらに、あなたが見ることができる私の答え私はそれらのためにシミュレートする方法を示している彼の質問への R.におけるグループXi=1
— ベンジャミンChristoffersenの

回答:


9

ベースラインハザードの指数分布(一定のハザード)を想定しているRコードからOK。したがって、危険関数は次のとおりです。

h(t∣Xi)={exp⁡(αβ0)if Xi=0,exp⁡(γ+α(β0+β1+β2t))if Xi=1.

次に、これらをに関して積分して、累積ハザード関数を取得します。t

Λ(t∣Xi)={texp⁡(αβ0)if Xi=0,∫0texp⁡(γ+α(β0+β1+β2τ))dτif Xi=1.={texp⁡(αβ0)if Xi=0,exp⁡(γ+α(β0+β1))1αβ2(exp⁡(αβ2t)−1)if Xi=1.

これらはその後、生存関数を与えます:

S(t)=exp⁡(−Λ(t))={exp⁡(−texp⁡(αβ0))if Xi=0,exp⁡(−exp⁡(γ+α(β0+β1))1αβ2(exp⁡(αβ2t)−1))if Xi=1.

次に、とサンプリングし、をに置き換え、適切な式(基づくを再配置してをシミュレートすることにより生成します。これは単純な代数であり、Rでコーディングできますが、さらにヘルプが必要な場合はコメントでお知らせください。 U 〜U N I F O R M (0 、1 ) U S (T )X I TXiU∼Uniform(0,1)US(t)Xit


1
代数をありがとうございました。Rでコードを作成し、さらにサポートが必要な場合はご連絡します。
— シェイク

@tristan、なんという完璧な答えでしょう。同様の質問があり、あなたの答えが見つかりました。すごい。
— Sam

@tristan Xi = 0で最初に与える方程式のアルファの意味について少し混乱しています。少し拡張していただけませんか。ありがとう。
— Statwonk

1
@Statwonkこれは、元のポスターによって提供されたハザード率の式に基づいています
— トリスタン

申し訳ありませんが、時間のシミュレーションに関数S(t)を使用する方法がわかりません。S ^ {-1}を計算する必要があると思います。この関数は、X_i = 1の場合には自明ではありません。
— Pmc 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.