[R] fitting a theoretical distribution with truncated tails
Spencer Graves
spencer.graves at pdf.com
Mon Dec 1 01:33:45 CET 2003
Have you considered "fitdistr"? The documentation says that the
second argument is "Either a character string or a function returning a
density evaluated at its first argument." It should be easy enough to
write something like the following:
dweibull.trunc <-
function(x, shape, scale=1, trunc.=Inf, log=FALSE){
ln.dens <- (dweibull(x, shape, scale, log=TRUE)
-pweibull(trunc., shape, scale = 1, lower.tail = TRUE, log.p =
TRUE))
if(any(oops <- (x>trunc.)))
ln.dens[oops] <- (-Inf)
if(log)ln.dens else exp(ln.dens)
}
x <- rweibull(100, 1)
range(x)
x4 <- x[x<=4]
fitdistr(x4, dweibull.trunc, start=list(shape=1, scale=1), trunc=4)
If you want to estimate the truncation point, that will be a more
difficult problem. For that, I suggest you compute the max of your data
and parameterize the truncated density with a parameter like
"log.trunc.over.max" so "trunc." in the above example is computed as
(max+exp(log.trunc.over.max)).
hope this helps. spencer graves
Piyush Sharma wrote:
>Hi,
> I have recently started working with R and am not really fluent in it. I
>am plotting a few graphs using the qqplot function. Is there a method for
>fitting a theoretical distribution (e.g Weibull) with truncated tails in R?
>
>Thanks for any help!
>Piyush
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>
>
More information about the R-help
mailing list