抵消相互作用项

时间:2019-04-09 08:02:35

标签: r

我想将coxph模型拟合到r中,并抵消一个主要作用和相互作用项。

我尝试在变量前面使用偏移命令,但它给出了错误:model.frame.default(formula = Surv(time = X,event = Delta)〜中的错误:   可变长度有所不同(可找到“ offset(D:Y)”)

我们可以生成一些玩具数据,例如

require(survival)
D = rbinom(100, 1, 0.5)
Y = rbinom(100, 1, 0.5)
X = rexp(100, 1)
Delta = rbinom(100, 1, 0.5)
coxph(Surv(time = X, event = Delta) ~ D + offset(Y) + offset(D:Y))

我想偏移Y和D:Y,但是它一直给我错误。也许我在使用“偏移”时错了。

1 个答案:

答案 0 :(得分:0)

尽管您在公式表达式中使用表达式D:Y,但实际上它首先是由offset处理的,而实际上Error in model.frame.default(formula = Surv(time = X, event = Delta) ~ : variable lengths differ (found for 'offset(D:Y)') In addition: Warning messages: 1: In D:Y : numerical expression has 100 elements: only the first used 并没有“知道”使用“:”运算符做什么R公式解析上下文。相反,它给您一条警告消息,暗示它已被解析为整数序列运算符。

> coxph(Surv(time = X, event = Delta) ~ D + offset(Y) + offset(I(D*Y)))
Call:
coxph(formula = Surv(time = X, event = Delta) ~ D + offset(Y) + 
    offset(I(D * Y)))

     coef exp(coef) se(coef)      z        p
D -0.9959    0.3694   0.2825 -3.525 0.000423

Likelihood ratio test=12.26  on 1 df, p=0.0004635
n= 100, number of events= 53 

如果要将D和Y的乘积用作附加的“交互”偏移,则可以这样做:

export const getGroups = () => async dispatch => {
  axios.get(url + "groups")
   .then(response => {
     console.log(response.data);
    dispatch({
     type: GET_GROUPS,
      payload: response.data
   })
  },
  function(error) {
    console.log(error)
          }
      );

 };

看着它,我想可能甚至丢弃了I(),因为偏移量无论如何都没有使用公式解析逻辑。事实就是如此。