Установка распределения Gumbel с помощью fitdistrplus

Я пытаюсь воспроизвести код из этого ответа, однако у меня проблемы с этим. Я использую дистрибутив gumbel из пакета VGAM а также fitdistrplus, Проблема возникает при выполнении:

fit   = fitdist(data1, 'gumbel', start = list(location = 0, scale = 1))
Error in mledist(data, distname, start, fix.arg, ...) : 
  'start' must specify names which are arguments to 'distr'.

Как будто location а также scale не были аргументы * Гамбеля.

dgumbel, pgumbel, rgumbel а также qgumbel правильно предоставлены VGAM, Однако пакет также предоставляет функцию под названием gumbelс другим синтаксисом. Может ли это быть причиной проблем?

РЕДАКТИРОВАТЬ: да, действительно, это вызывает проблемы: использование пакета FAdist вместо этого прекрасно работает.

3 ответа

Для справки, из пакета виньетка, связанного в комментариях:

library(fitdistrplus)
data(groundbeef)
serving <- groundbeef$serving
dgumbel <- function(x, a, b) 1/b*exp((a-x)/b)*exp(-exp((a-x)/b))
pgumbel <- function(q, a, b) exp(-exp((a-q)/b))
qgumbel <- function(p, a, b) a-b*log(-log(p))
fitgumbel <- fitdist(serving, "gumbel", 
    start=list(a=10, b=10))

Или с функциями из VGAM:

rm(dgumbel) ## get rid of previous definition
## hack behaviour of VGAM::pgumbel() a little bit
pgumbel <- function(x,...) {
  if (length(x)==0) numeric(0) else VGAM::pgumbel(x,...)
}
library(VGAM)
fitgumbel <- fitdist(serving, "gumbel", 
       start=list(location=10, scale=10))

Это связано с тем, что пакет fitdistr не поддерживает распространение gumbel.

Начало = список (mu=R,s=R) R= ваши параметры

Другие вопросы по тегам