Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Cox比例风险模型中的相互作用:对比与两个分类因素之间的问题_R_Categorical Data_Survival Analysis_Interaction_Cox Regression - Fatal编程技术网

R Cox比例风险模型中的相互作用:对比与两个分类因素之间的问题

R Cox比例风险模型中的相互作用:对比与两个分类因素之间的问题,r,categorical-data,survival-analysis,interaction,cox-regression,R,Categorical Data,Survival Analysis,Interaction,Cox Regression,我需要帮助来理解R中的coxph()函数如何工作,从而正确解释输出 我试图在“生存分析”数据集上运行一个cox比例风险模型,该数据集包含两个因素:性别和基因型。 性别因素有两个分类变量:男性为“m”,女性为“f”。 基因型因子有三个分类变量:“Ctrl”、“nKO”、“CRE\U Ctrl”。 我想看看是否有互动,因此我做了: library(survival) Survival = Surv(time = D$Age, event = D$outcome) #D is my dataframe

我需要帮助来理解R中的coxph()函数如何工作,从而正确解释输出

我试图在“生存分析”数据集上运行一个cox比例风险模型,该数据集包含两个因素:性别和基因型。 性别因素有两个分类变量:男性为“m”,女性为“f”。 基因型因子有三个分类变量:“Ctrl”、“nKO”、“CRE\U Ctrl”。 我想看看是否有互动,因此我做了:

library(survival)
Survival = Surv(time = D$Age, event = D$outcome) #D is my dataframe, Age is time of death, outcome is the column for censored individuals.
此外,我还想看到以下对比:“nKO vs Ctrl”和“nKO vs CRE_Ctrl”。因此,我使用这条线将nKO设置为对比度的基线:

D$Genotype = relevel(D$Genotype, ref = "nKO")
colnames(contrasts(D$Genotype)) = c(' (nKO vs CRE_Ctrl)', ' (nKO vs Ctrl)')
最后,我运行最后一行:

coxph(data = mydata, formula = Survival ~ Sex * Genotype)
输出如下所示:

                                   coef exp(coef) se(coef)      z        p
Sexm                            -0.5769    0.5616   0.2294 -2.514 0.011925
Genotype (nKO vs CRE_Ctrl)      -0.9983    0.3685   0.2593 -3.850 0.000118
Genotype (nKO vs Ctrl)          -0.4072    0.6655   0.2461 -1.654 0.098034
Sexm:Genotype (nKO vs CRE_Ctrl)  0.5940    1.8111   0.3483  1.705 0.088147
Sexm:Genotype (nKO vs Ctrl)      0.5607    1.7520   0.3444  1.628 0.103539
好吧,看来我想要的都有了。 然而,我注意到一件事!当我将性别因素的基线更改为“m”而不是上面的“f”时,我获得了不同的输出:

D$Sex = relevel(D$Sex, ref = "m")
coxph(data = D, formula = Survival ~ Sex * Genotype)

                                   coef exp(coef) se(coef)      z      p
Sexf                             0.5769    1.7805   0.2294  2.514 0.0119
Genotype (nKO vs CRE_Ctrl)      -0.4044    0.6674   0.2438 -1.658 0.0972
Genotype (nKO vs Ctrl)           0.1536    1.1660   0.2406  0.638 0.5232
Sexf:Genotype (nKO vs CRE_Ctrl) -0.5940    0.5521   0.3483 -1.705 0.0881
Sexf:Genotype (nKO vs Ctrl)     -0.5607    0.5708   0.3444 -1.628 0.1035
您可以看到,我有Sexf的oposite输出,Sexf:genetic(nKO vs CRE_Ctrl)和Sexf:genetic(nKO vs Ctrl),我理解。但不是基因型(nKO vs CRE_Ctrl),基因型(nKO vs Ctrl),我不明白。 所以,我不明白这里发生了什么。为什么我对没有交互作用的基因型因素的对比似乎受到性别因素基线的影响?事实上,您甚至可以看到,对于我的基因型对比,p值在以“f”为基线(第一个coxph输出)时是显著的,而在以“m”为基线(第二个coxph输出)时,p值并不显著。。。那么,信任哪一个呢

你能解释一下为什么会这样吗?这是我的第一次生存分析,我可能不知道关于这类分析的很多事情


提前感谢您的回复,

您犯了一个常见的错误。相互作用模型的模型预测解释不应侧重于主要效应的解释。(不幸的是,许多统计学教师并不理解这一事实,即使是有经验的统计学用户也经常试图从交互作用的角度讨论主效应系数的含义。)没有“没有交互作用的基因型因素的对比”,尽管在非交互作用模型中会有。因为您构建了交互模型,所以只能通过同时指定一种性别或另一种性别来解释基因型系数。相反,你应该专注于预测和比较特定变量的组合。这就是交互模型的含义,也就是说,您需要同时知道这两个变量。你确实有6种不同的可能情况,因此当你选择一种新的参考情况时,与新的参考情况相比,相对风险都会发生变化,这并不奇怪

性别系数与基因型变量的相同参考水平隐式配对。这就是允许绝对值相同的原因。在nKO vs CRE_Ctrl的情况下,请注意-0.4044-0.5940等于-0.9984,这与-0.9983的舍入误差相同。基因型(nKO与Ctrl)-0.4072+0.5607等于0.1536,直至舍入误差。您在对数刻度上看到了相同的差异,但从“不同的角度”


如果我们有数据可以处理,我们可以通过这样做来更好地说明这一点。

感谢您的快速响应。以下是我在Github上可用的数据帧:。所以你可以更好地说明你提到的。所以,据我所知,当我运行一个有交互作用的模型时,我无法获得基因型因子的对比。那么,我该怎么办?运行一个没有交互的模型以获得对比,然后运行一个有交互的模型以查看交互?你说的是“预测和比较特定变量组合”,你能解释一下这是什么吗?你知道有没有一个链接或网页,可以让我通过coxph()和包含交互和对比的模型来了解更多关于这类分析的信息?因为,我有一种感觉,我不理解所有的东西,而且这个话题很复杂,因此我担心不能正确解释我的数据…你可以从一开始。CrossValidate.com是一个更符合您对解释输出和理论之间关系的期望的SE论坛。我经常推荐弗兰克·哈雷尔(Frank Harrell)的“回归建模策略”给那些希望更深入地处理理论的人,尽管我记不起这个话题是否被具体地详细处理过。