
estimate the parameters of lognormal distribution by the some values of CDF
3 ビュー (過去 30 日間)
古いコメントを表示
hello,
I want to find estimate the parameters of lognormal distribution by the some values of CDF
for example:
x= [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
y= [0.000 0.000 0.005 0.022 0.051 0.091 0.138 0.188 0.240 0.291 0.341 0.389 0.434 0.476 0.515 0.552 0.586 0.617 0.646 0.672 0.696 0.719 0.739 0.758 0.776 0.792 0.806 0.820 0.832 0.844 0.854 0.864 0.873 0.881 0.889 0.896 0.903 0.909 0.915 0.920 0.925]
I want to estimate the mu and beta of the lognormal parameters
thanks
5 件のコメント
John D'Errico
2019 年 2 月 9 日
編集済み: John D'Errico
2019 年 2 月 9 日
Assuming this is the CDF, then it is close to complete, just missing part of the upper tail. The PDF would go down, but not the CDF.
Image Analyst
2019 年 2 月 9 日
I know. So give us the PDF since it's the PDF that has the log normal shape.
I know we can get it from the CDF but why not make it EASY for us to help you, not hard?
回答 (3 件)
Star Strider
2019 年 2 月 9 日
編集済み: Star Strider
2019 年 2 月 9 日
Try this:
fcn = @(b,x) cdf('Lognormal',x,b(1),b(2));
x= [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00];
y= [0.000 0.000 0.005 0.022 0.051 0.091 0.138 0.188 0.240 0.291 0.341 0.389 0.434 0.476 0.515 0.552 0.586 0.617 0.646 0.672 0.696 0.719 0.739 0.758 0.776 0.792 0.806 0.820 0.832 0.844 0.854 0.864 0.873 0.881 0.889 0.896 0.903 0.909 0.915 0.920 0.925];
[B,resnorm] = fminsearch(@(b) norm(y - fcn(b,x)), [1; 1]);
evf = fcn(B,x);
figure
plot(x, y, '.')
hold on
plot(x, evf, '-r')
hold off
grid
text(median(x), median(y)/2, sprintf('\\mu = %6.3f\n\\sigma = %6.3f', B))
EDIT — (9 Feb 2019 at 19:06)

EDIT — Added plot figure.
1 件のコメント
Star Strider
2019 年 2 月 9 日
@Alon Urlainis —
If my Answer helped you solve your problem, please Accept it!
John D'Errico
2019 年 2 月 9 日
Looks like this does reasonably well to me.
fplot(@(x) logncdf(x,-.4,.75),[0,2])
hold on
plot(x,y,'.')

0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!