[R] Convergence issues when using ns splines (pkg: spline) in Cox model (coxph) even when changing coxph.control
Göran Broström
goran.brostrom at umu.se
Wed Mar 30 11:40:56 CEST 2016
Hi Jennifer,
see below.
On 2016-03-29 22:47, Jennifer Wu, Miss wrote:
> Hi,
>
> I am currently using R v3.2.3 and on Windows 10 OS 64Bit.
>
> I am having convergence issues when I use coxph with a interaction
> term (glarg*bca_py) and interaction term with the restricted cubic
> spline (glarg*bca_time_ns).
Comment on interactions: (i) You should not create interaction terms
'manually' but rather in the formula in the call to coxph ('*' means
different things in a formula and on the command line). That assures
that you get the main effects included. In your formula, you are missing
the main effects 'bca_py' and 'bca_time_ns'. Is that intentional? In a
few exceptional cases it may make sense to drop a main affect, but
generally not. (ii) Convergence problems may also occur with
interactions of variables that are not centered, so try to center
involved covariates.
Your 'coxph.control' values have nothing to do with your convergence
problem.
And try to provide reproducible code, in your case, the data set. If it
is not possible, maybe you can scale it down to include only the
problematic variables (with some fake values, if necessary) and just a
few cases, but enough to show your problem.
Göran Broström
> I use survival and spline package to
> create the Cox model and cubic splines respectively. Without the
> interaction term and/or spline, I have no convergence problem. I read
> some forums about changing the iterations and I have but it did not
> work. I was just wondering if I am using the inter.max and outer.max
> appropriately. I read the survival manual, other R-help and
> stackoverflow pages and it suggested changing the iterations but it
> doesn't specify what is the max I can go. I ran something similar in
> SAS and did not run into a convergence problem.
>
> This is my code:
>
> bca_time_ns <- ns(ins_ca$bca_py, knots=3,
> Boundary.knots=range(2,5,10)) test <- ins_ca$glarg*ins_ca$bca_py
> test1 <- ins_ca$glarg*bca_time_ns
>
> coxit <- coxph.control(iter.max=10000, outer.max=10000)
>
> bca<-coxph(Surv(bca_py,bca) ~ glarg + test + test1 + age + calyr +
> diab_dur + hba1c + adm_met + adm_sulfo + adm_tzd + adm_oth +
> med_statin + med_aspirin + med_nsaids + bmi_cat + ccscat + alc + smk,
> data=ins_ca, control=coxit, ties=c("breslow"))
>
>
> This is the error message I get:
>
> Warning message: In fitter(X, Y, strats, offset, init, control,
> weights = weights, : Ran out of iterations and did not converge
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________ R-help at r-project.org
> mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the
> posting guide http://www.R-project.org/posting-guide.html and provide
> commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list