I was running a model to check the survival rate among different treatments. Basically, the treatment has four groups. I firstly plot a K-M curve and noticed clear interactions among the four treatment groups over the time. So, in the cox regression model, I put the interaction between treatment and time in the model: such as treat1 * log(time) treat2 * log(time) treat3*log(time). And treatment 1 was used as the reference group. I obtained the result like belows:
variable | Estimate | Hazard ratio | P value |
---|---|---|---|
treatment 2 | 0.29 | 1.36 | <.0001 |
treatment 3 | -1.20 | 0.35 | <.0001 |
treatment 4 | -1.41 | 0.38 | <.0001 |
treat2*time | -0.25 | 0.84 | <.0001 |
treat3*time | 0.37 | 1.21 | <.0001 |
treat4*time | 0.28 | 1.25 | <.0001 |
How can I interpret these results? I thought I could explain it like this, for example, treatment 2 increases the risk of death by 36% in the early stage, and reduces the risk of death by 16% in the late stage. Only treatment 2 seems consistent with the K-M plot, but for the rest of the two treatments, when compared with treatment 1, they don't seem to reduce the risk of death so much in the early stage, and they don't seem to increase the risk of death so much comparing to treatment 1 in the late stage. But if I explain the result like this: treatment 2 increases the risk of death by 36% before interaction, and also increases the risk of death by 14%(1.36*0.74=1.14), it totally wrong.
So I am wondering if there is an appropriate way to explain the interaction results? Or should I run a model without the interaction, and compare it with the interaction model? Thank you!
And below is the K-M plot, the K-M plot seems different from the Cox-regression estimate. For example, blue line is treatment 2, and in the KM plot, it seems have better survival rate than red. But in the Cox table, it increased the risk of death by 36%, and after interaction, the risk of death also increased 14%(1.36*0.84). Is it normal or something wrong with the analysis?
trt*time
terms was probably incorrect and can't be trusted, anyway; see my answer. $\endgroup$tt
, but I can't get the result because it always said thatcannot allocate vector of size
. I have tried everything online, includingmemory.limit(size=)
, it still didn't work. I have 64 bit R, and 16G RAM, I don't know why. Do you have some ideas about that? $\endgroup$tt()
function makes an additional copy of each individual's data for all other individuals' event times while at risk. That leads to an extremely large data set when you have nearly 200,000 individuals in the study. When I made that suggestion I didn't know how large your data set is. I'll have some more suggestions in a day or so, in an edited answer. $\endgroup$tt()
function, I am still usingweight
which probably make a even larger data set? I have no idea how to make it work, I searched all solutions online, all didn't work. And I don't have another computers or Linux interface. Really desperate. $\endgroup$