The check for tied survival times can fail due to floating point imprecision, which can make actual ties appear to be distinct values. Routines that depend on correct identification of ties pairs will then give incorrect results, e.g., a Cox model. This function rectifies these.
aeqSurv(x, tolerance = sqrt(.Machine$double.eps))
a Surv object
the tolerance used to detect values that will be considered equal
a Surv object identical to the original, but with ties restored.
This routine is called by both survfit
and coxph
to
deal with the issue of ties that get incorrectly broken due to
floating point imprecision. See the short vignette on tied times
for a simple example. Use the timefix
argument of
survfit
or coxph.control
to control the option
if desired.
The rule for `equality' is identical to that used by the
all.equal
routine. Pairs of values that are within round off
error of each other are replaced by the smaller value.
An error message is generated if this process causes a 0 length
time interval to be created.