Несмотря на то, что вы используете выражение D:Y
в выражении формулы, оно сначала обрабатывается offset
, который на самом деле не «знает», что делать с оператором «:» в формуле R:разбор контекста.Вместо этого он выдает предупреждающее сообщение о том, что он анализируется как оператор целочисленной последовательности.
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
Если вы хотите использовать произведение D и Y в качестве дополнительного смещения "взаимодействия", то вы могли бы сделать это:
> 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
И, глядя на это, я подумалвозможно, даже сбросив I (), так как смещение не использовало логику синтаксического анализа формулы в любом случае.И это оказалось так.