Finding the mean in a Cumulative Distribution Function
Mostra commenti meno recenti
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 Commenti
bym
il 18 Lug 2011
@ Oleg deleted my answer referencing expfit based upon you comment. Thanks
Oleg Komarov
il 18 Lug 2011
@ proecsm: but your answer was correct because you wrote expfit(t) % where t is from F(t), so if he has t he can still fit it.
Thomas
il 19 Lug 2011
Thomas
il 19 Lug 2011
Oleg Komarov
il 20 Lug 2011
Is your input data t? If yes just expfit(t).
Risposte (1)
bym
il 19 Lug 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 Commenti
Oleg Komarov
il 20 Lug 2011
Why 63.2?
bym
il 20 Lug 2011
mean of exponential distribution is where it crosses 63.2% (1-1/e), not 50% like a normal
Oleg Komarov
il 21 Lug 2011
Isn't the mean the lambda^-1 or in OP's case 1/u which is exactly what he's trying to find?
Categorie
Scopri di più su Exploration and Visualization in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!