[R] Error survreg: Density function returned an an invalid matrix
Therneau, Terry M., Ph.D.
therneau at mayo.edu
Wed Nov 4 14:52:35 CET 2015
> 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
More information about the R-help
mailing list