绘制二次关系在R Cox回归的预测(Plot a quadratic relation for a

2019-10-29 07:58发布

我需要绘制的相对风险为Cox回归的二次效应。 我的模型看起来是这样的:

cox_mod <- coxph(Surv(time, status) ~
               ph.karno + pat.karno + meal.cal + meal.cal_q,
             data = lung)

凡meal.cal_q被定义为:

lung$meal.cal_q <- lung$meal.cal^2

该地块应考虑meal.cal和meal.cal_q系数,并显示在y轴的相对风险,在x轴的meal.cal值。 相对风险应该被定义为在给定值meal.cal的风险相比,所有预测在它们的意思。 Additionaly,情节应包括95%的置信区间。 该地块应该是这个样子: 预计阴谋

如果可能的话,剧情应该是ggplot对象,以便我可以自定义。

我一直在阅读了网络上的时间,但无法弄清楚如何使所描述的情节,希望有人能帮助我。 我试了一下,例如与预测()函数:

meal.cal_new <- seq(min(lung$meal.cal, na.rm= TRUE), max(lung$meal.cal, na.rm= TRUE), by= 1)

meal.cal_q_new <- meal.cal_new^2

n <- length(meal.cal_new)

lung_new <- data.frame(ph.karno= rep(mean(lung$ph.karno, na.rm= TRUE), n), pat.karno= rep(mean(lung$pat.karno, na.rm= TRUE), n), meal.cal= meal.cal_new, meal.cal_q = meal.cal_q_new)

predicted_rel_risk <- predict(cox_mod, lung_new,  interval = "confidence")

print(predicted_rel_risk)

首先,预测值不包括95%的置信itnervals。 而另外还有在predicted_rel_risk负值这在我opinien不应该是这种情况,因为最小相对风险应该是零。 因此,我不能得到所希望的描绘。 所以,我所能做的是这样的:

lung_new$predicted_rel_risk <- predicted_rel_risk

ggplot(lung_new, aes(meal.cal, predicted_rel_risk)) +
geom_smooth(se= TRUE)

所得的情节不包括置信区间和显示neagtive相对风险。 以下是我得到:

谢谢很多提前!

Answer 1:

预测包括负值,因为你没有指定要获得相对风险(如你所说)。 试试下面的代码

predicted_rel_risk <- predict(cox_mod, lung_new,  interval = "confidence",
type= "risk")

这给你如下情节:

情节没有负值

为了获得信心intervalls,以及,你可以使用引导。 把它短,这意味着一个随机抽样将从您的数据可以得出,相对风险将被计算。 这个过程将重复10000次,例如。 这给你10000个不同的相对风险值预测您的每个值。 您可以通过计算你预测的每个值的平均相对风险得到您的情节主线。 要获得85。。自信INTERVALL,你需要订购从最小到最大的相对风险为您预测的每个值。 第250个(第九千七百五)相对危险度向你下(上)CI。 再次,这是每个预测值的第250(第九千七百五十)值。

希望这可以帮助。



文章来源: Plot a quadratic relation for a predictor of a cox regression with R