Fitting a double exponential cumulative distribution function
조회 수: 10 (최근 30일)
이전 댓글 표시
Hello,
I have an empirical probability distribution function (PDF) that fits best to a double exponential, i.e. by specifying exp2 in the fit function:
a*exp(b*x) + c*exp(d*x)
However, I want to ensure that this is also true without binning, so I want to use an exponential cumulative distribution function (CDF).
So, I construct a CDF like this:
[p,x]=ecdf(x);
Now I want to fit a double CDF to this. For fitting to a double CDF, it seems like I could fit the double CDF with cftool, but I'd rather use the fit function as it needs to be automated. So does anyone know a) if I can specify a custom equation with the fit function and b) what the equation for a double exponential CDF would look like?
Thank you!
댓글 수: 0
채택된 답변
Tom Lane
2012년 3월 22일
You can do most things like this by writing a pdf and calling mle:
>> x = [exprnd(1,1000,1); exprnd(5,2000,1)];
>> pdf = @(x,p,a,b) (p)*exppdf(x,a) + (1-p)*exppdf(x,b)
>> mle(x,'pdf',pdf,'start',[.5,2,3])
ans =
0.31645 0.96406 4.8809
I was lucky that I got an estimate satisfying 0<p<1. If I didn't, I'd have to choose a parametrization to prevent that.
추가 답변 (1개)
Peter Perkins
2012년 3월 22일
Grant, can I suggest that you take a look at
before going too much further? It may be that you want dfittool, not cftool.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!