Statistics: gamfit

### Function Reference: `gamfit`

statistics: paramhat = gamfit (x)
statistics: [paramhat, paramci] = gamfit (x)
statistics: [paramhat, paramci] = gamfit (x, alpha)
statistics: […] = gamfit (x, alpha, censor)
statistics: […] = gamfit (x, alpha, censor, freq)
statistics: […] = gamfit (x, alpha, censor, freq, options)

Estimate parameters and confidence intervals for the Gamma distribution.

`paramhat = gamfit (x)` returns the maximum likelihood estimates of the parameters of the Gamma distribution given the data in x. `paramhat(1)` is the shape parameter, k, and `paramhat(2)` is the scale parameter, theta.

`[paramhat, paramci] = gamfit (x)` returns the 95% confidence intervals for the parameter estimates.

`[…] = gamfit (x, alpha)` also returns the `100 * (1 - alpha)` percent confidence intervals for the parameter estimates. By default, the optional argument alpha is 0.05 corresponding to 95% confidence intervals. Pass in `[]` for alpha to use the default values.

`[…] = gamfit (x, alpha, censor)` accepts a boolean vector, censor, of the same size as x with `1`s for observations that are right-censored and `0`s for observations that are observed exactly. By default, or if left empty, `censor = zeros (size (x))`.

`[…] = gamfit (x, alpha, censor, freq)` accepts a frequency vector, freq, of the same size as x. freq typically contains integer frequencies for the corresponding elements in x, but it can contain any non-integer non-negative values. By default, or if left empty, `freq = ones (size (x))`.

`[…] = gamfit (…, options)` specifies control parameters for the iterative algorithm used to compute the maximum likelihood estimates. options is a structure with the following field and its default value:

- `options.Display = "off"`
- `options.MaxFunEvals = 1000`
- `options.MaxIter = 500`
- `options.TolX = 1e-6`

There are two equivalent parameterizations in common use:

1. With a shape parameter k and a scale parameter θ, which is used by `gamcdf`.
2. With a shape parameter α = k and an inverse scale parameter β = 1 / θ, called a rate parameter.

Further information about the Gamma distribution can be found at https://en.wikipedia.org/wiki/Gamma_distribution

See also: gamcdf, gampdf, gaminv, gamrnd, gamlike

Source Code: gamfit

### Example: 1

     ## Sample 3 populations from different Gamma distibutions
     randg ("seed", 5);    # for reproducibility
     r1 = gamrnd (1, 2, 2000, 1);
     randg ("seed", 2);    # for reproducibility
     r2 = gamrnd (2, 2, 2000, 1);
     randg ("seed", 7);    # for reproducibility
     r3 = gamrnd (7.5, 1, 2000, 1);
     r = [r1, r2, r3];

     ## Plot them normalized and fix their colors
     hist (r, 75, 4);
     h = findobj (gca, "Type", "patch");
     set (h(1), "facecolor", "c");
     set (h(2), "facecolor", "g");
     set (h(3), "facecolor", "r");
     ylim ([0, 0.62]);
     xlim ([0, 12]);
     hold on

     ## Estimate their α and β parameters
     k_thetaA = gamfit (r(:,1));
     k_thetaB = gamfit (r(:,2));
     k_thetaC = gamfit (r(:,3));

     ## Plot their estimated PDFs
     x = [0.01,0.1:0.2:18];
     y = gampdf (x, k_thetaA(1), k_thetaA(2));
     plot (x, y, "-pr");
     y = gampdf (x, k_thetaB(1), k_thetaB(2));
     plot (x, y, "-sg");
     y = gampdf (x, k_thetaC(1), k_thetaC(2));
     plot (x, y, "-^c");
     hold off
     legend ({"Normalized HIST of sample 1 with k=1 and θ=2", ...
              "Normalized HIST of sample 2 with k=2 and θ=2", ...
              "Normalized HIST of sample 3 with k=7.5 and θ=1", ...
              sprintf("PDF for sample 1 with estimated k=%0.2f and θ=%0.2f", ...
                      k_thetaA(1), k_thetaA(2)), ...
              sprintf("PDF for sample 2 with estimated k=%0.2f and θ=%0.2f", ...
                      k_thetaB(1), k_thetaB(2)), ...
              sprintf("PDF for sample 3 with estimated k=%0.2f and θ=%0.2f", ...
                      k_thetaC(1), k_thetaC(2))})
     title ("Three population samples from different Gamma distibutions")
     hold off