Установка раздачи 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 не были аргументами * gumbel.

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

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


person AF7    schedule 18.03.2016    source источник


Ответы (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))
person Ben Bolker    schedule 25.11.2018
comment
Есть идеи по определению rgumbel? Я получил Функция rgumbel должна быть определена при использовании bootdist - person Oliver Amundsen; 12.12.2018
comment
вы пробовали library("sos"); findFn("rgumbel")? VGAM, evd пакеты, возможно другие ... может потребоваться обернуть / переопределить, чтобы изменить параметризацию ... - person Ben Bolker; 12.12.2018
comment
РЕДАКТИРОВАТЬ: Кажется, что это случайный гамбель ... Теперь какие-нибудь подсказки, как выглядит эта функция? - person Oliver Amundsen; 12.12.2018
comment
кажется, вам следует сформулировать это как новый вопрос ...? - person Ben Bolker; 12.12.2018

start = list (mu = R, s = R) R = ваши параметры

person Parikshit yadav    schedule 26.12.2016
comment
Пожалуйста, добавьте пояснения к вашей формуле (или к коду в целом). - person Alexei - check Codidact; 26.12.2016

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

person Forever    schedule 06.08.2017
comment
У вас есть какой-либо источник, объяснение или ссылка? - person AF7; 06.08.2017
comment
если вы используете gumbel, это говорит: неподдерживаемый дистрибутив. Затем в документации пакета: «Распределения бета, Коши, хи-квадрат, экспоненциальное, f, гамма, геометрическое, логнормальное, логнормальное, логистическое, отрицательное биномиальное, нормальное, Пуассона, t и Вейбулла распознаются, регистр игнорируется. Библиотеки ismev и EnvStats могут оценивать параметры гумбеля. - person Forever; 06.08.2017
comment
на самом деле дистрибутив gumbel используется также в документации пакета: cran.r- project.org/web/packages/fitdistrplus/fitdistrplus.pdf, стр. 29, с настраиваемой гамбелью. Почему гамбель от VGAM не работает? Кстати, в вышеупомянутой документации указанной вами строки нет. Где ты взял это? Пожалуйста, предоставьте ссылки. - person AF7; 07.08.2017
comment
Но вы должны определить распределение гамбелей самостоятельно, чтобы добиться оптимального результата. - person Forever; 08.08.2017