我已经定义了 LogNormal 和 Generalized Pareto (actuar) 的混合,如下所示:
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)
}
我正在尝试使用 fistdistrplus 将其拟合到一些数据中:
dist<-fitdist(data,"lnormgenpar")
但是我收到错误:
Unknown starting values for distribution lnormgenpar.
如果我以通常的 fitdistrplus 方式扩展拟合函数,则错误仍然存在:
dist<-fitdist(data,"lnormgenpar",dparams=list(
w_lnorm=0.5,
meanlog=0,
sdlog=1,
par_shape1=1,
par_shape2=1,
par_scale=1
))
我应该如何将我的参数传递给拟合函数?
谢谢
西蒙