binofit
              Estimate parameter and confidence intervals for the binomial distribution.
 pshat = binofit (x, n) returns the maximum
 likelihood estimate (MLE) of the probability of success for the binomial
 distribution.  x and n are scalars containing the number of
 successes and the number of trials, respectively.  If x and n are
 vectors, binofit returns a vector of estimates whose -th
 element is the parameter estimate for x(i) and n(i).  A scalar
 value for x or n is expanded to the same size as the other input.
 [pshat, psci] = binofit (x, n, alpha)
 also returns the 100 * (1 - alpha) percent confidence intervals
 of the estimated parameter.  By default, the optional argument alpha
 is 0.05 corresponding to 95% confidence intervals.
 binofit treats a vector x as a collection of measurements from
 separate samples, and returns a vector of estimates.  If you want to treat
 x as a single sample and compute a single parameter estimate and
 confidence interval, use binofit (sum (x), sum (n)) when
 n is a vector, and
 binofit (sum (x), n * length (x)) when n is a
 scalar.
Further information about the binomial distribution can be found at https://en.wikipedia.org/wiki/Binomial_distribution
See also: binocdf, binoinv, binopdf, binornd, binolike, binostat
Source Code: binofit
| 
 ## Sample 2 populations from different binomial distibutions
 rand ("seed", 1);    # for reproducibility
 r1 = binornd (50, 0.15, 1000, 1);
 rand ("seed", 2);    # for reproducibility
 r2 = binornd (100, 0.5, 1000, 1);
 r = [r1, r2];
 ## Plot them normalized and fix their colors
 hist (r, 23, 0.35);
 h = findobj (gca, "Type", "patch");
 set (h(1), "facecolor", "c");
 set (h(2), "facecolor", "g");
 hold on
 ## Estimate their probability of success
 pshatA = binofit (r(:,1), 50);
 pshatB = binofit (r(:,2), 100);
 ## Plot their estimated PDFs
 x = [min(r(:,1)):max(r(:,1))];
 y = binopdf (x, 50, mean (pshatA));
 plot (x, y, "-pg");
 x = [min(r(:,2)):max(r(:,2))];
 y = binopdf (x, 100, mean (pshatB));
 plot (x, y, "-sc");
 ylim ([0, 0.2])
 legend ({"Normalized HIST of sample 1 with ps=0.15", ...
          "Normalized HIST of sample 2 with ps=0.50", ...
          sprintf("PDF for sample 1 with estimated ps=%0.2f", ...
                  mean (pshatA)), ...
          sprintf("PDF for sample 2 with estimated ps=%0.2f", ...
                  mean (pshatB))})
 title ("Two population samples from different binomial distibutions")
 hold off
                     | 
