# survreg (survival) reports erroneous results for left-censored data (PR#2287)

**Stefano Iacus
**
jago@mclink.it

*Sat, 16 Nov 2002 09:48:52 +0100*

Thomas,
you were right. It works now. This is what I get with Carbon R and the
patched survival package.
I will upload a patched version of survivalLib. Can you please fix
SurvS.h sources?
Stefano
> survreg(Surv(c(0,1,-1),c(T,T,F),type='left')~1,dist='gaussian')
Call:
survreg(formula = Surv(c(0, 1, -1), c(T, T, F), type = "left") ~
1, dist = "gaussian")
Coefficients:
(Intercept)
-0.2321569
Scale= 1.161135
Loglik(model)= -4.1 Loglik(intercept only)= -4.1
n= 3
On Saturday, November 16, 2002, at 12:59 AM, Thomas Lumley wrote:
>*
*>* I think it's a problem with the erfc macro in survS.h, which is
*>* defined
*>* as
*>* #ifndef erfc
*>* #define erfc(x) 2*pnorm5(-x*M_SQRT2,0,1,1,0)
*>* #endif
*>*
*>* The problem is that in survreg2.c we call erf(-z/ROOT_2), which
*>* expands to
*>* 2*pnorm5(--z/ROOT_2*SQRT2,0,1,1,0), and the -- becomes a predecrement
*>* operator. I hate macros.
*>*
*>* If so, the fix would be
*>* #ifndef erfc
*>* #define erfc(x) 2*pnorm5(-(x)*M_SQRT2,0,1,1,0)
*>* #endif
*>*
*>* -thomas
*>*
*>*
*
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._