[R] Fitting Mixed Distributions in the fitdistrplus package

Christophe Dutang dut@ngc @end|ng |rom gm@||@com
Sat Oct 24 08:08:29 CEST 2020


Dear Charles,

Please, when you have questions about fitdistrplus, contact directly the authors of the package and not R-help.

When fitting non « standard » distributions with fitdistrplus, you should define by yourself the density and the cumulative distribution functions, or load a package which define them.

See FAQ for a general example : https://cran.r-project.org/web/packages/fitdistrplus/vignettes/FAQ.html#how-do-i-find-non-standard-distributions ?

Regarding your mixed distribution, the code below works correctly. By the way, the Feller-Pareto distribution (see actual) is among the best distributions for the Danish dataset. You may also consider composite distributions, see https://CRAN.R-project.org/view=Distributions


Kind regards, Christophe 


dmixgam <- function(x, prob, shape1, scale1, shape2, scale2)
  prob*dgamma(x, shape1, scale=scale1)+ (1-prob)*dpareto(x, shape2, scale=scale2)

pmixgam <- function(q, prob, shape1, scale1, shape2, scale2)
  prob*pgamma(q, shape1, scale=scale1)+ (1-prob)*ppareto(q, shape2, scale=scale2)

library(actuar)
library(fitdistrplus)
data("danishuni")
x<- danishuni$Loss
fgam<- fitdist(x,"gamma",lower=0)
fpar<- fitdist(x,"pareto",start = list(shape=2,scale=2),lower=0)
fmixgam<- fitdist(x,"mixgam",start =
                       list(prob=1/2,shape1=1,scale1=1,shape2=1,scale2=1),lower=0)

cdfcomp(list(fgam, fpar, fmixgam), xlogscale = TRUE)
gofstat(list(fgam, fpar, fmixgam))




> 
> ---------- Forwarded message ---------
> From: Charles Thuo <tcmuigai using gmail.com>
> Date: Wed, Oct 21, 2020 at 12:03 AM
> Subject: [R] Fitting Mixed Distributions in the fitdistrplus package
> To: <r-help using r-project.org>
> 
> 
> Dear Sirs,
> 
> The below listed code fits a gamma and a pareto distribution to a data set
> danishuni. However the distributions are not appropriate to fit both  tails
> of the data set hence a mixed distribution is required  which has ben
> defined as "mixgampar"
> as shown below.
> 
> library(fitdistrplus)
> x<- danishuni$Loss
> fgam<- fitdist(x,"gamma",lower=0)
> fpar<- fitdist(x,"pareto",start = list(shape=2,scale=2),lower=0)
> fmixgampar<- fitdist(x,"mixgampar",start =
> list(prob=1/2,nu=1,lambda=1,alpha=1,theta=1),lower=0)
> Error in fitdist(x, "mixgampar", start = list(prob = 1/2, nu = 1, lambda =
> 1,  :
> 
> The  dmixgampar  function must be defined
> 
> Kindly assist to define the dmixgampar
> 
> Charkes
> 
>        [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list