如何在r中的cox模型中可视化交互?

如何在r中的cox模型中可视化交互?,r,survival-analysis,cox-regression,survival,R,Survival Analysis,Cox Regression,Survival,我拟合了一个模型,产生了显著的交互作用。我如何在图形中绘制这个 下面是一个玩具示例(仅用于说明): 如果答案既适用于分类的超分类交互,也适用于分类与连续交互,那就太好了。分类x分类 如果你认为变量是分类的,在变量“Rx”中,你有2个组和变量“EnUM”4个组,这给了你总共8条曲线。p> (1) 将其可视化的一种方法是在同一图表上绘制所有曲线: bladder$rx_enum <- paste(as.character(bladder$rx), as.character(bladder$en

我拟合了一个模型,产生了显著的交互作用。我如何在图形中绘制这个

下面是一个玩具示例(仅用于说明):

如果答案既适用于分类的超分类交互,也适用于分类与连续交互,那就太好了。

分类x分类

如果你认为变量是分类的,在变量“Rx”中,你有2个组和变量“EnUM”4个组,这给了你总共8条曲线。p> (1) 将其可视化的一种方法是在同一图表上绘制所有曲线:

bladder$rx_enum <- paste(as.character(bladder$rx), as.character(bladder$enum), sep="_")
ggadjustedcurves(fit2, data = bladder, method='average', variable = "rx_enum")
…而修改线型可能更复杂

(2) 显然,您还可以为任一变量的不同级别创建单独的面板。使用“rx”变量,您将有一个数据帧子集面板,其中“rx”==1,另一个面板中“rx”==2。我可能不会使用单独的面板/图形,因为您可以直观地表示一个绘图上的所有信息,除非您的叙述有必要/有道理。但是如果你想走那条路,请告诉我

范畴x连续

如果对连续变量进行分类,同样的方法也适用于连续变量。我不知道如何在保持连续变量的同时使KM成为连续变量(甚至不知道这是怎么可能的)


注意:这个答案只考虑了生存分析中最常见的KM图,但可能还有其他选择。

如文所述,它似乎太宽泛了。在解释中有一些重要的问题,这个问题不承认。对于cat和cat continuous的答案请求实际上是一个多部分的问题(不是关于主题的),你能展示一个例子吗?一个像你试图实现的那样的图形?这是一个有趣的问题:如何将交互可视化以进行生存分析。在SO或SE上没有太多关于它的内容。@Oka:过去我在通过连续交互可视化连续交互时,我使用了一个带有
predict
的合成网格。我看不出为什么
expand.grid
和预先确定的连续变量级别不能用来构造一个适合的变量,然后交给下面说明的方法。我总是使用
rms
包制作晶格图。我不太喜欢ggplot代码库或它的外观和感觉。当我有问题的时候,我不能进入“内部”对象并修补内部。@42-谢谢。我同时使用,ggplot和lattice,而ggplot有时会令人沮丧(就像在本例中,更改线型似乎相当棘手)。这只是猜测,是错误的。@42-你有什么错误?它在我的设置上给出了一个ok图(尽管给出了一些警告)?哪一部分错了?@42-谢谢你的评论。我更正了代码:显然必须指定避免警告的方法。好的。固定的。新的
rx_enum
也可以通过
interaction
创建,该交互设计用于cat交互。
ggadjustedcurves(fit2, data = bladder, variable = "rx") +
  facet_wrap(~enum)
ggadjustedcurves(fit2, data = bladder, variable = c("enum","rx"))
bladder$rx_enum <- paste(as.character(bladder$rx), as.character(bladder$enum), sep="_")
ggadjustedcurves(fit2, data = bladder, method='average', variable = "rx_enum")
ggadjustedcurves(fit2, data = bladder, method='average', palette = c(1,2,3,4,1,2,3,4), variable = "rx_enum")