Finding the mean in a Cumulative Distribution Function
7 views (last 30 days)
Show older comments
First off, I am working with data from an excel file and trying to model this data as accurately as possible. My function for the model is:F(t)=1-exp(-t/u). Furthermore, it turns out that F(t) is just the cumulative function of f(x)=(1/u)*exp(-x/u). Secondly, F(t) is one column of data in excel file, u is the mean, while t is another column representing time. Essentially, I can plot the exact data on matlab alongside this function F(t) which appears to be a cumulative distribution function. How do I find the mean using matlab? Thank you
5 Comments
Answers (1)
bym
on 19 Jul 2011
Here is a not very robust algorithm, but might give you some ideas. Basically it finds where the CDF crosses the 63.2% (mean value for exponential distribution) and outputs the corresponding t. Sometimes it outputs an empty matrix and sometimes more than 1 value, which would have to be adjusted for your data set.
x=1:100; % simulated t
y = expcdf(x,20); % simulated F(t), mu = 20
ynorm = y./max(y); % normalize
tol = 1./(2*max(x)); % tolerance (might have to adjust)
idx = find(y>.6321-tol & y<.6321+tol);
mu = x(idx)
3 Comments
bym
on 20 Jul 2011
mean of exponential distribution is where it crosses 63.2% (1-1/e), not 50% like a normal
Oleg Komarov
on 21 Jul 2011
Isn't the mean the lambda^-1 or in OP's case 1/u which is exactly what he's trying to find?
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!