如何使用随机效应模型为 Cox 编码三个级别的分类变量?
How to code categorical variable with three levels for Cox with random effects model?
我想估计 Cox 随机效应模型的回归参数。假设我有一个具有两个级别的分类变量,例如性别。然后对变量进行编码很简单:例如,男性为 0,女性为 1。与该变量相关的回归系数的解释很简单。
现在假设我有一个具有三个水平的分类变量。如果我只是为三个级别(A、B 和 C)用 0、1、2 对变量进行编码,则相关回归系数的估计值将不是我要寻找的。如果我想估计与其他级别的每个“级别”相关的风险,我应该如何编码变量?
到目前为止我做了什么:
我定义了三个变量。
我定义了一个变量,其中我将级别 A 编码为 1,将其余级别(级别 B 和 C)编码为 0。
我定义了另一个变量,其中我将级别 B 编码为 1,将其余部分(级别 A 和 C)编码为 0。
最后,我定义了一个变量,其中我将级别 C 编码为 1,其余(级别 A 和 B)编码为 0。
然后我估计与变量相关的三个回归参数。
明确一点,我不想使用任何包,例如 coxph、coxme、survival 等
有更简单的方法吗?
您的描述(一个预测变量是全 1,另外两个预测变量作为 B 组和 C 组的指示变量)完全概括了 R 使用的标准 治疗对比 .
如果您想为单个因素f
(在数据框d
内)构造一个具有处理对比的模型矩阵,那么model.matrix(~f, data=d)
将起作用
d <- data.frame(f=factor(c("A","B","B","C","A")))
model.matrix(~f, data=d)
结果:
(Intercept) fB fC
1 1 0 0
2 1 1 0
3 1 1 0
4 1 0 1
5 1 0 0
attr(,"assign")
[1] 0 1 1
attr(,"contrasts")
attr(,"contrasts")$f
[1] "contr.treatment"
如果你喜欢,你可以使用其他对比;这些将改变您的单个变量的参数估计(和解释!),但不会改变整体模型拟合。例如
model.matrix(~f , data=d, contrasts=list(f=contr.sum))
我想估计 Cox 随机效应模型的回归参数。假设我有一个具有两个级别的分类变量,例如性别。然后对变量进行编码很简单:例如,男性为 0,女性为 1。与该变量相关的回归系数的解释很简单。
现在假设我有一个具有三个水平的分类变量。如果我只是为三个级别(A、B 和 C)用 0、1、2 对变量进行编码,则相关回归系数的估计值将不是我要寻找的。如果我想估计与其他级别的每个“级别”相关的风险,我应该如何编码变量?
到目前为止我做了什么:
我定义了三个变量。 我定义了一个变量,其中我将级别 A 编码为 1,将其余级别(级别 B 和 C)编码为 0。 我定义了另一个变量,其中我将级别 B 编码为 1,将其余部分(级别 A 和 C)编码为 0。 最后,我定义了一个变量,其中我将级别 C 编码为 1,其余(级别 A 和 B)编码为 0。
然后我估计与变量相关的三个回归参数。
明确一点,我不想使用任何包,例如 coxph、coxme、survival 等
有更简单的方法吗?
您的描述(一个预测变量是全 1,另外两个预测变量作为 B 组和 C 组的指示变量)完全概括了 R 使用的标准 治疗对比 .
如果您想为单个因素f
(在数据框d
内)构造一个具有处理对比的模型矩阵,那么model.matrix(~f, data=d)
将起作用
d <- data.frame(f=factor(c("A","B","B","C","A")))
model.matrix(~f, data=d)
结果:
(Intercept) fB fC
1 1 0 0
2 1 1 0
3 1 1 0
4 1 0 1
5 1 0 0
attr(,"assign")
[1] 0 1 1
attr(,"contrasts")
attr(,"contrasts")$f
[1] "contr.treatment"
如果你喜欢,你可以使用其他对比;这些将改变您的单个变量的参数估计(和解释!),但不会改变整体模型拟合。例如
model.matrix(~f , data=d, contrasts=list(f=contr.sum))