Bu örnekte kullandığım termplotun kendi biraz geliştirilmiş versiyonunu oluşturdum, burada bulabilirsiniz . Daha önce SO üzerine yayınladım, ancak daha çok düşündüğümde, bunun muhtemelen gerçek kodlamadan daha çok Cox Orantılı tehlikeler modelinin yorumlanması ile ilgili olduğuna inanıyorum.
Sorun
Bir Tehlike Oranı grafiğine baktığımda, güven aralığının doğal olarak 0 olduğu bir referans noktasına sahip rms packageolmayı umuyorum ve bu durumdan cph () 'yi kullandığım halde survival package. Coxph () ile doğru davranış mı ve referans noktası nedir? Ayrıca, coxph () içindeki kukla değişken bir aralığa sahiptir ve değer?
Misal
İşte test kodum:
# 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 grafikleri
Bu kod:
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")
bu çizimi verir:

Coxx grafikleri
Bu kod:
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")
bu çizimi verir:

Güncelleme
@Frank Harrell'in önerdiği ve son yorumunda öneriyi ayarladıktan sonra:
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)))
Bu çok güzel bir arsa verdi:

Ben yorumdan sonra tekrar contrast.rms baktım ve bir arsa veren bu kodu denedim ... her ne kadar muhtemelen çok daha fazla yapılabilir :-)
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")
Bu çizimi ver:

GÜNCELLEME 2
Prof. Thernau, arazilerin güven bel eksikliği hakkında yorum yapmak için yeterince nazikti:
Kuyruktaki yumuşatıcı yivler, gamdakiler gibi, toplam (tahmin) = 0 olacak şekilde normalleştirilir. Dolayısıyla varyansın çok küçük olduğu sabit bir tek noktam yok.
Henüz GAM'ı tanımamış olmama rağmen bu sorumu yanıtlıyor gibi görünüyor : Bu bir yorum meselesi gibi görünüyor.
plotve contrastyerine plot.Predictve contrast.rms. Bunun yerine byveya lengthiçinde seqkullanmak timesve contrasttam olarak ne kontrast olduğunu belirtmek böylece iki liste verecekti . Gölgelemeyi xYplotgüven bantları için de kullanabilirsiniz .