[R] Fitting weibull, exponential and lognormal distributions to left-truncated data.
lgxlg1 at nottingham.ac.uk
Wed Oct 8 12:48:35 CEST 2008
Thank you very much for your reply. This seems to be working OK when
fitting weibull and lognormal distributions. However, fitdistr now
requires me to include start values:
> ltweifit<-fitdistr(x,ltwei) # x is observed data
Error in fitdistr(x, ltwei) : 'start' must be a named list
There were 34 warnings (use warnings() to see them)
( 0.01936651) ( 0.42897340)
Is there anyway I can fit to truncated data without having to name start
values? Alternatively, is there any recommended technique for choosing
sensible start values?
Further, when I try to fit an exponential distribution I get an error
Error in fitdistr(x, ltexp) : 'start' must be a named list
In optim(x = c(2.541609, 1.436143, 4.600524, 6.437174, 2.84974, :
one-diml optimization by Nelder-Mead is unreliable: use optimize
Error in dn[] : subscript out of bounds
This error message seems to occur regardless of the start value used.
Do you know why this is?
Sorry to pester you again, and apologies if I am asking silly questions
- my knowledge of R and probability distributions (except the normal!)
are rather limited!
From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
Sent: 07 October 2008 12:25
To: Richard.Cotton at hsl.gov.uk
Cc: Gough Lauren; vito muggeo; r-help at r-project.org
Subject: Re: [R] Fitting weibull, exponential and lognormal
distributions to left-truncated data.
On Tue, 7 Oct 2008, Richard.Cotton at hsl.gov.uk wrote:
>>> I have several datasets, all left-truncated at x=1, that I am
>>> to fit distributions to (lognormal, weibull and exponential). I had
>>> been using fitdistr in the MASS package as follows:
>> A possible solution is to use the survreg() in the survival package
>> without specifying the covariates, i.e.
>> survreg(Surv(..)~1, dist="weibull")
>> where Surv(..) accepts information about "times",
>> censoring/truncation variables and dist allows to specify alternative
>> See ?Surv e ?survreg
> The survival package is mostly targeted at right-censored data. The
> NADA package provides wrappers for many of the survival routines so
> they work with left-censored data.
Left-censoring and left-truncation are not the same thing. With
left-censoring you see that you had observations < 1, and with
left-truncation you do not (at least how the terms are usually applied:
occasionally the meanings are reversed).
For left-truncation it is relatively easy, e.g.
ltwei <- function(x, shape, scale = 1, log = FALSE)
dweibull(x, shape, scale, log)/pweibull(1, shape, scale,
and use this in fitdistr.
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
This message has been checked for viruses but the contents of an attachment
may still contain software viruses, which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.
More information about the R-help