私はマウスパッケージを研究していますが、複数の代入を使用してCoxモデルを作成し、そのモデルをrmsパッケージのvalidate()
機能で検証する方法をまだ発見していません。データセットを使用した、これまでのサンプルコードを次に示しますveteran
。
library(rms)
library(survival)
library(mice)
remove(veteran)
data(veteran)
veteran$trt=factor(veteran$trt,levels=c(1,2))
veteran$prior=factor(veteran$prior,levels=c(0,10))
#Set random data to NA
veteran[sample(137,4),1]=NA
veteran[sample(137,4),2]=NA
veteran[sample(137,4),7]=NA
impvet=mice(veteran)
survmod=with(veteran,Surv(time,status))
#make a CPH for each imputation
for(i in seq(5)){
assign(paste("mod_",i,sep=""),cph(survmod~trt+celltype+karno+age+prior,
data=complete(impvet,i),x=T,y=T))
}
#Now there is a CPH model for mod_1, mod_2, mod_3, mod_4, and mod_5.
さて、CPHモデルを1つだけ使用していた場合は、次のようにします。
validate(mod_1,B=20)
私が抱えている問題は、5つのCPHモデル(代入ごとに1つ)を取得し、で使用できるプールされたモデルを作成する方法rms
です。mice
パッケージにいくつかの組み込みのプール関数があることは知っていますが、それらがのcph
オブジェクトで機能するとは思いませんrms
。ここでのキーはrms
、プール後も引き続き使用できることです。私はハレルのaregImpute()
関数の使用を調査しましたが、例とドキュメントに従っていくらか問題があります。 mice
使用する方が簡単なようです。
ちなみに、モデレーター、このQがStack Overflowに属していると思われる場合は、遠慮なく移行してください。
—
JJM 2012
@JJMさん、こんにちは。同様の状況で、異なる補完データセットからcoxモデルをプールして検証する必要があります。1つのプールモデルを生成するには、ベースライン累積ハザードをどのように組み合わせる必要がありますか?ハザード比(係数)のログは、漸近的な正規性を持っているため、簡単にプールできます。ただし、生存確率を計算するには、ベースライン(累積)ハザードの推定も必要です。私の知る限り、これには漸近的な正規性がないため、複数のcoxphモデルを単一のモデルにプールする方法がわかりません。これを見てくれてありがとう。
—
AP30、18年