R-用fitplus拟合混合分布

R-用fitplus拟合混合分布,r,fitdistrplus,R,Fitdistrplus,我已将对数正态分布和广义帕累托(精算师)混合定义如下: dlnormgenpar<-function(x, w_lnorm, meanlog=0, sdlog=1, par_shape1=1, par_shape2=1, par_scale=1) { w_par=1-w_lnorm dln=dlnorm(

我已将对数正态分布和广义帕累托(精算师)混合定义如下:

dlnormgenpar<-function(x,
               w_lnorm,
               meanlog=0,
               sdlog=1,
               par_shape1=1,
               par_shape2=1,
               par_scale=1) {
  w_par=1-w_lnorm
  dln=dlnorm(x,meanlog = meanlog,sdlog = sdlog)
  dpar=dgenpareto(x,shape1=par_shape1,shape2=par_shape2,scale=par_scale)
  return(w_lnorm*dln+w_par*dpar)
}
如果我以通常的FitDistributPlus方式展开拟合函数,则错误仍然存在:

dist<-fitdist(data,"lnormgenpar",dparams=list(
  w_lnorm=0.5,
  meanlog=0,
  sdlog=1,
  par_shape1=1,
  par_shape2=1,
  par_scale=1
  ))

应定义与帮助不同的dname、pname和qname。您这样做了吗?尝试在
fitdist
调用中添加
start=list(w\u lnorm=0.1)
Unknown starting values for distribution lnormgenpar.
dist<-fitdist(data,"lnormgenpar",dparams=list(
  w_lnorm=0.5,
  meanlog=0,
  sdlog=1,
  par_shape1=1,
  par_shape2=1,
  par_scale=1
  ))