私はこの例で使用する独自のわずかに拡張されたバージョンの用語プロットを作成しました。ここで見つけることができます。私は以前にSOに投稿しましたが、それについて考えるほど、これはおそらく実際のコーディングよりもCox比例ハザードモデルの解釈に関連していると思います。
問題
ハザード比プロットを見ると、信頼区間が自然に0になる参照ポイントがあると予想します。これは、からのcph()を使用する場合であり、からのcoxph()を使用する場合ではありrms package
ませんsurvival package
。coxph()による正しい動作はありますか?そうであれば、参照ポイントは何ですか?また、coxph()のダミー変数には間隔があり、値は以外ですか?
例
これが私のテストコードです:
# Load libs
library(survival)
library(rms)
# Regular survival
survobj <- with(lung, Surv(time,status))
# Prepare the variables
lung$sex <- factor(lung$sex, levels=1:2, labels=c("Male", "Female"))
labels(lung$sex) <- "Sex"
labels(lung$age) <- "Age"
# The rms survival
ddist <- datadist(lung)
options(datadist="ddist")
rms_surv_fit <- cph(survobj~rcs(age, 4)+sex, data=lung, x=T, y=T)
cphプロット
このコード:
termplot2(rms_surv_fit, se=T, rug.type="density", rug=T, density.proportion=.05,
se.type="polygon", yscale="exponential", log="y",
xlab=c("Age", "Sex"),
ylab=rep("Hazard Ratio", times=2),
main=rep("cph() plot", times=2),
col.se=rgb(.2,.2,1,.4), col.term="black")
このプロットを与える:
coxphプロット
このコード:
termplot2(surv_fit, se=T, rug.type="density", rug=T, density.proportion=.05,
se.type="polygon", yscale="exponential", log="y",
xlab=c("Age", "Sex"),
ylab=rep("Hazard Ratio", times=2),
main=rep("coxph() plot", times=2),
col.se=rgb(.2,.2,1,.4), col.term="black")
このプロットを与える:
更新
@Frank Harrellが提案したように、彼の最近のコメントで提案に沿って調整した後、私は得ました:
p <- Predict(rms_surv_fit, age=seq(50, 70, times=20),
sex=c("Male", "Female"), fun=exp)
plot.Predict(p, ~ age | sex,
col="black",
col.fill=gray(seq(.8, .75, length=5)))
これはこの非常に素晴らしいプロットを与えました:
私はコメントの後、contrast.rmsをもう一度見て、プロットを与えるこのコードを試しました...できることはおそらくもっとたくさんありますが:-)
w <- contrast.rms(rms_surv_fit,
list(sex=c("Male", "Female"),
age=seq(50, 70, times=20)))
xYplot(Cbind(Contrast, Lower, Upper) ~ age | sex,
data=w, method="bands")
このプロットを与えた:
アップデート2
テルナウ教授は、腰の自信がないプロットについてコメントしてくれました。
coxphの平滑化スプラインは、gamの平滑化スプラインと同様に、sum(prediction)= 0になるように正規化されます。したがって、分散が非常に小さい固定の単一点はありません。
私はまだGAMに精通していませんが、これは私の質問に答えているようです。これは解釈の問題のようです。
plot
andのcontrast
代わりにplot.Predict
andを使用できますcontrast.rms
。私が使用するby
か、length
内部seq
の代わりに、times
と与えるだろうcontrast
あなたが対比されている正確に何を指定するように、2つのリストを。xYplot
信頼帯のシェーディングを使用することもできます。