回答:
predict.coxph()
すべての予測変数のサンプル平均に対するハザード比を計算します。因子は、平均を計算できる通常のダミー予測変数に変換されます。Cox PHモデルは対数ハザードln h (t )の線形モデルであることを思い出してください。
ここで、は不特定のベースラインハザードです。等価的に、ハザードH (Tは)としてモデル化される時間(T )= H 0(T )⋅ E β 1 X 1 + ⋯ + β P X P = H 0(T )⋅ E X β。予測値を持つ2人の人iとi ′のハザード比したがって、 X iおよび X i 'はベースラインハザードから独立しており、時間tから独立しています。
人物間の推定ハザード比のためにと私"、私達はちょうど係数の推定に差し込むbは1、... 、BのPのためのβ 1、... 、β P、与えE X I BとE X I " B。
Rの例として、John FoxのCox-PHモデルに関する付録のデータを使用します。これは非常に優れた入門テキストです。最初に、データを取得し、釈放された囚人の逮捕までの時間に関する単純なCox-PHモデルを構築します(fin
:要因-ダミーコーディングで受け取った財政援助"no"
-> 0、"yes"
-> 1 age
:釈放時の年齢、prio
:以前の有罪判決の数):
> URL <- "http://socserv.mcmaster.ca/jfox/Books/Companion/data/Rossi.txt"
> Rossi <- read.table(URL, header=TRUE) # our data
> Rossi[1:3, c("week", "arrest", "fin", "age", "prio")] # looks like this
week arrest fin age prio
1 20 1 no 27 3
2 17 1 no 18 8
3 25 1 no 19 13
> library(survival) # for coxph()
> fitCPH <- coxph(Surv(week, arrest) ~ fin + age + prio, data=Rossi) # Cox-PH model
> (coefCPH <- coef(fitCPH)) # estimated coefficients
finyes age prio
-0.34695446 -0.06710533 0.09689320
ここで、予測変数のサンプル平均を式に組み込みます。
meanFin <- mean(as.numeric(Rossi$fin) - 1) # average of financial aid dummy
meanAge <- mean(Rossi$age) # average age
meanPrio <- mean(Rossi$prio) # average number of prior convictions
rMean <- exp(coefCPH["finyes"]*meanFin # e^Xb
+ coefCPH["age"] *meanAge
+ coefCPH["prio"] *meanPrio)
ここで、最初の4人の予測値を式にプラグインします。
r1234 <- exp(coefCPH["finyes"]*(as.numeric(Rossi[1:4, "fin"])-1)
+ coefCPH["age"] *Rossi[1:4, "age"]
+ coefCPH["prio"] *Rossi[1:4, "prio"])
次に、サンプル平均に対する最初の4人の相対リスクを計算し、からの出力と比較しますpredict.coxph()
。
> r1234 / rMean
[1] 1.0139038 3.0108488 4.5703176 0.7722002
> relRisk <- predict(fitCPH, Rossi, type="risk") # relative risk
> relRisk[1:4]
1 2 3 4
1.0139038 3.0108488 4.5703176 0.7722002
階層化モデルがある場合、比較predict.coxph()
は階層平均と比較されreference
ます。これは、ヘルプページで説明されているオプションを使用して制御できます。
meanFin <- mean(as.numeric(Rossi$fin) - 1)
fin
カテゴリカルであるため、あまり意味がありません。modeFin <- get_Mode(Rossi$fin)
この場合、必要はありませんか?
fin
はバイナリであるため、因子の数値表現は値1と2のみを持ちます。1を引くと、値0と1のダミーコード変数が得られ、これも設計行列に表示されます。これは、2レベル以上の要因では機能しないことに注意してください。ダミー変数の平均化が理にかなっているかどうかは確かに議論の余地がありますが、それpredict.coxph()
はそうです。