我想将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,但是它一直给我错误。也许我在使用“偏移”时错了。
答案 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(),因为偏移量无论如何都没有使用公式解析逻辑。事实就是如此。