首页 > 解决方案 > 错误代码 100 在 r 中使用 fitdist 拟合 gamma3 分布(参数列表错误)

问题描述

我正在尝试使用库中的 fitdistr(fitdistrplus)来拟合我的数据的多个分布,以找到最合适的分布。我使用图书馆(FAdist)中的 dgamma3。如何为每个分布设置起始参数?

library(FAdist)
library(fitdistrplus)
x <- rnorm(30,5,1)
fitdist(x, distr = 'gamma3',start = list(meanlog=0,sdlog=1))

这是错误:

$start.arg
$start.arg$meanlog
[1] 0

$start.arg$sdlog
[1] 1


$fix.arg
NULL

Error in checkparamlist(arg_startfix$start.arg, arg_startfix$fix.arg,  : 
  'start' must specify names which are arguments to 'distr'.

2021/7/15修改:我更改了参数列表,仍然出现错误。我正在使用库:FAdist、fitdistrplus

x <- rgamma3(30, shape = 1, scale = 1, thres = 0)
fitdist(x, distr = 'gamma3', start = list(shape = 1, scale = 1, thres = 0)) 

[1] "gamma3"
$start.arg
$start.arg$shape
[1] 1

$start.arg$scale
[1] 1

$start.arg$thres
[1] 0


$fix.arg
NULL
Error in checkparamlist(arg_startfix$start.arg, arg_startfix$fix.arg, : 'start' must specify names which are arguments to 'distr'.

标签: r

解决方案


您的初始参数列表 (start) 需要具有与 dgamma3 函数对应的名称。从文档中:

dgamma3(x,shape=1,scale=1,thres=0,log=FALSE)

所以,

fitdist(x, 'gamma3', start=list(shape=1,scale=1, thres=0))

推荐阅读