Therneau, Terry M., Ph.D.
2015-Nov-04 13:52 UTC
[R] Error survreg: Density function returned an an invalid matrix
> Hi, I want to perform a survival analysis using survreg procedure from > survival library in R for a pareto distribution for a time variable, so I > set the new distribution using the following sintax: > > library(foreign) > library(survival) > library(VGAM) > > mypareto <- list(name='Pareto', > init= function(x, weights,parms){etc. The survreg routine fits location-scale distributions such that (t(y) - Xb)/s ~ F, where t is an optional transformation, F is some fixed distribution and X is a matrix of covariates. For any distribution the questions to ask before trying to add the distribution to survreg are - can it be written in a location-scale form? - if so, how do the parameters of the distribution map to the location (Xb) and scale (s). In fitting data we normally have per-subject location (X b) but an intercept-only model is of course possible. If y is Weibull then log(y) fits into the framework, which is how survreg fits it. The transformation of parameters location and scale parameters for log(y) back to the usual Weibull parameterization for y often trips people up (see comments in the Examples section of ?survreg). The log of a Pareto can be written in this form (I think?). The two parameters are the scale a and lower limit b, with survival function of S(x)= (b/x)^a, for x >= b. If y = log(x) the survival function for y is S(y) = (b/exp(y))^a = exp[-(y - log(b))/(1/a)], which has location log(b) and scale 1/a. But even if I am correct the discontinuity at b will cause the underlying Newton-Raphson method to fail. Terry Therneau