expfit
Estimate mean and confidence intervals for the exponential distribution.
muhat = expfit (x)
returns the maximum likelihood estimate
of the mean parameter, muhat, of the exponential distribution given the
data in x. x is expected to be a non-negative vector. If x
is an array, the mean will be computed for each column of x. If any
elements of x are NaN, that vector’s mean will be returned as NaN.
[muhat, muci] = expfit (x)
returns the 95%
confidence intervals for the parameter estimate. If x is a vector,
muci is a two element column vector. If x is an array, each
column of data will have a confidence interval returned as a two-row array.
[…] = evfit (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. Any invalid values for alpha
will return NaN for both CI bounds.
[…] = expfit (x, alpha, censor)
accepts a
logical or numeric array, 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. Any non-zero elements are regarded
as 1
s. By default, or if left empty,
censor = zeros (size (x))
.
[…] = expfit (x, alpha, censor, freq)
accepts a frequency array, 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))
.
Matlab incompatibility: Matlab’s expfit
produces unpredictable results
for some cases with higher dimensions (specifically 1 x m x n x ... arrays).
Octave’s implementation allows for arrays, consistently performing
calculations on individual column vectors. Additionally, censor and
freq can be used with arrays of any size, whereas Matlab only allows
their use when x is a vector.
A common alternative parameterization of the exponential distribution is to use the parameter defined as the mean number of events in an interval as opposed to the parameter , which is the mean wait time for an event to occur. and are reciprocals, i.e. .
Further information about the exponential distribution can be found at https://en.wikipedia.org/wiki/Exponential_distribution
See also: expcdf, expinv, explpdf, exprnd, explike, expstat
Source Code: expfit
## Sample 3 populations from 3 different exponential distibutions rande ("seed", 1); # for reproducibility r1 = exprnd (2, 4000, 1); rande ("seed", 2); # for reproducibility r2 = exprnd (5, 4000, 1); rande ("seed", 3); # for reproducibility r3 = exprnd (12, 4000, 1); r = [r1, r2, r3]; ## Plot them normalized and fix their colors hist (r, 48, 0.52); h = findobj (gca, "Type", "patch"); set (h(1), "facecolor", "c"); set (h(2), "facecolor", "g"); set (h(3), "facecolor", "r"); hold on ## Estimate their mu parameter muhat = expfit (r); ## Plot their estimated PDFs x = [0:max(r(:))]; y = exppdf (x, muhat(1)); plot (x, y, "-pr"); y = exppdf (x, muhat(2)); plot (x, y, "-sg"); y = exppdf (x, muhat(3)); plot (x, y, "-^c"); ylim ([0, 0.6]) xlim ([0, 40]) legend ({"Normalized HIST of sample 1 with μ=2", ... "Normalized HIST of sample 2 with μ=5", ... "Normalized HIST of sample 3 with μ=12", ... sprintf("PDF for sample 1 with estimated μ=%0.2f", muhat(1)), ... sprintf("PDF for sample 2 with estimated μ=%0.2f", muhat(2)), ... sprintf("PDF for sample 3 with estimated μ=%0.2f", muhat(3))}) title ("Three population samples from different exponential distibutions") hold off |