2014-12-23 12 views
2

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

set.seed(20) 
#Binomial distributed, mean score of 2 
scorebinom <- rbinom(n=40,size=8,prob=.25) 


fitBinom=fitdist(data=scorebinom, dist="binom", start=list(size=8, prob=mean(scorebinom)/8)) 

Я получаю ошибку:

Error in fitdist(data = scorebinom, dist = "binom", start = list(size = 8, : 
    the function mle failed to estimate the parameters, 
       with the error code 100 
In addition: There were 50 or more warnings (use warnings() to see the first 50) 

Я вижу много документации из этого пакета около отрицательного биномиального распределения, но не так много о биноме. Кажется, эта функция поддерживает этот дистрибутив (хотя fitdistr в MASS нет).

Любые мысли?

+0

Проблема возникает из-за процедуры MLE, называемой внутри 'fitdist', - есть (несколько бесполезный) список выходных кодов в разделе ** Значение ** файла справки'? Mledist'. Время от времени я сталкиваюсь с такими ошибками, когда устанавливаю параметры, и обычно больно отслеживать точную причину. Вы можете попробовать поиграть с 'custom.optim' функцией' fitdist' переходит на 'optim'. Иногда мне повезло с * Simulated Annealing *, чем алгоритм по умолчанию, используемый 'optim'. ... – nrussell

+0

Например, это возвращает оценки параметров, но не стандартные ошибки, и все еще вызывает предупреждения: 'fitdist (data = x, dist =" binom ", start = list (size = 8, prob = mean (x)/8), custom.optim = function (...) {optim (..., method = "SANN")}) '(где я перечислил ваш вектор' scorebinom' как 'x' для удобства). – nrussell

ответ

3

Разве вы не всегда знаете количество испытаний (т. Е. Параметр размера)? Если да, попробуйте

fitBinom=fitdist(data=scorebinom, dist="binom", fix.arg=list(size=8), start=list(prob=0.3)) 

оценить p и его погрешность.

+0

Спасибо! Это сработало. Мне кажется странным, что он не может оценить параметр размера, когда я поставлю его для начального значения, но я полагаю, что было бы разумно, что это необходимо в списке фиксированных аргументов. Я думаю, что документация 'fitdist' может быть более явной. – emudrak

Смежные вопросы