MATLAB Answers


Error using fitdist. Distribution name 'multinomial' is unrecognized.

Asked by Matlab2010 on 19 Feb 2016
Latest activity Answered by the cyclist
on 19 Feb 2016
I am using 2015b. I read and see that it supports "multinomial"
I run
pd = makedist('Multinomial','probabilities',[1/2 1/3 1/6])
pd =
0.5 0.33333 0.16667
Then I run
fitdist([1 10]','normal')
ans =
Normal distribution
mu = 5.5 [-51.6779, 62.6779]
sigma = 6.36396 [2.83928, 203.075]
Then I try and run
fitdist([1 10]','multinomial')
Error using fitdist (line 146)
Distribution name 'multinomial' is unrecognized.
I do not understand why. Please advise.

  1 Comment

Possible work around
function ksd = fitdist2(data)
data(isnan(data)) = [];
u = unique(data);
h = histcounts(data,u);
pd = makedist('Multinomial','probabilities',h./sum(h));
ksd.pd = pd;
ksd.u = u;
%sample: ksd.u(ksd.pd.random)

Sign in to comment.


1 Answer

Answer by the cyclist
on 19 Feb 2016

I believe that this may be a documentation error. If you actually look inside the fitdist function, using
edit fitdist
you'll see that 'Multinomial' is not in the list of supported distributions. (But 'Kernel' is not there either, and actually does work.)
Weird. You might want to report to support@mathworks.


Sign in to comment.