Fitting Bimodal Data to Histogram
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am having trouble fitting the below bimodal data, which I plotted on a histogram. I am using the suggested MathWorks code to fit bivariate distributions (below), but for some reason, when I plot probability density on the yaxis, it appear to the 10^4 power, while the maximum value of the original histogram is 14, so I cannot overlay the two.
min_pts =
1.0e-04 *
0.0341 -0.1578 -0.1203
0.0198 -0.1459 -0.1284
0.0014 -0.1314 -0.1343
-0.0106 -0.1208 -0.1378
-0.0157 -0.1243 -0.1385
-0.0146 -0.1235 -0.1360
-0.0085 -0.1184 -0.1302
0.0015 -0.1092 -0.1216
0.0140 -0.0964 -0.1355
0.0278 -0.0807 -0.1465
0.0417 -0.0698 -0.1551
0.0554 -0.0655 -0.1618
0.0687 -0.0601 -0.1673
0.0816 -0.0550 -0.1721
0.0937 -0.0535 -0.1764
0.0860 -0.0726 -0.1803
0.0746 -0.1059 -0.1838
0.0443 -0.1343 -0.2418
0.0175 -0.1572 -0.2958
-0.0059 -0.1753 -0.3404
-0.0267 -0.1894 -0.3754
-0.0455 -0.2006 -0.4009
-0.0646 -0.2097 -0.4175
-0.0860 -0.2176 -0.4259
-0.1122 -0.2252 -0.4271
-0.1635 -0.2325 -0.4222
-0.2402 -0.2406 -0.4124
-0.3529 -0.2804 -0.3989
-0.4898 -0.3394 -0.3829
-0.6217 -0.4144 -0.4013
-0.7379 -0.4785 -0.4637
-0.8333 -0.5280 -0.5109
-0.9040 -0.5600 -0.5454
-0.9467 -0.5744 -0.5877
-0.9629 -0.5723 -0.6217
-0.9552 -0.5548 -0.6455
-0.9265 -0.5251 -0.6580
-0.9125 -0.4869 -0.6580
-0.8938 -0.4436 -0.6452
-0.8624 -0.3977 -0.6207
-0.8205 -0.3534 -0.5859
-0.7651 -0.3244 -0.5425
-0.7324 -0.2901 -0.4927
-0.7186 -0.2511 -0.4389
-0.6929 -0.2083 -0.3833
-0.6558 -0.1624 -0.3274
-0.6081 -0.1434 -0.3061
-0.5509 -0.1350 -0.3289
-0.4862 -0.1283 -0.3494
-0.4163 -0.1228 -0.3659
-0.4981 -0.1175 -0.3768
-0.6118 -0.1146 -0.3808
-0.7117 -0.1273 -0.3766
-0.7933 -0.1395 -0.3633
-0.8527 -0.1499 -0.3409
-0.8893 -0.1573 -0.3095
-0.9035 -0.1608 -0.2699
-0.8962 -0.1593 -0.2241
-0.8706 -0.1520 -0.1857
-0.8303 -0.1394 -0.2045
-0.7791 -0.1221 -0.2232
-0.7207 -0.1010 -0.2405
-0.6610 -0.0774 -0.2552
-0.6147 -0.0663 -0.2662
-0.5666 -0.0562 -0.2724
-0.5184 -0.0455 -0.2727
-0.4712 -0.0417 -0.2670
-0.4261 -0.0796 -0.2551
-0.3832 -0.1217 -0.2371
-0.3425 -0.1664 -0.2138
-0.3041 -0.2118 -0.1923
-0.2677 -0.2561 -0.2120
-0.2332 -0.2973 -0.2276
-0.2003 -0.3335 -0.2378
-0.1686 -0.3632 -0.2417
-0.1377 -0.3855 -0.2384
-0.1071 -0.3998 -0.2282
-0.0769 -0.4057 -0.2114
-0.0469 -0.4033 -0.1889
-0.0175 -0.3931 -0.1620
0.0106 -0.3755 -0.1446
0.0364 -0.3510 -0.1289
0.0252 -0.3204 -0.1119
-0.0195 -0.2842 -0.1305
-0.0644 -0.2435 -0.1471
-0.1089 -0.1992 -0.1612
-0.1521 -0.1523 -0.1726
-0.1932 -0.1620 -0.1811
-0.2311 -0.1738 -0.1865
-0.2646 -0.1840 -0.1892
-0.2927 -0.1924 -0.1897
-0.3141 -0.1986 -0.1885
-0.3280 -0.2023 -0.1864
-0.3335 -0.2031 -0.1900
-0.3300 -0.2010 -0.2451
-0.3174 -0.2063 -0.2989
-0.2960 -0.2274 -0.3493
x = min_pts(:);
figure;
hist(x,100);
pdf_normmixture = @(x,p,mu1,mu2,sigma1,sigma2) ...
p*normpdf(x,mu1,sigma1) + (1-p)*normpdf(x,mu2,sigma2);
pStart = .5;
muStart = quantile(x,[.25 .75]);
sigmaStart = sqrt(var(x) - .25*diff(muStart).^2);
start = [pStart muStart sigmaStart sigmaStart];
lb = [0 -Inf -Inf 0 0];
ub = [1 Inf Inf Inf Inf];
paramEsts = mle(x, 'pdf',pdf_normmixture, 'start',start, ...
'lower',lb, 'upper',ub);
bins = 100;
%h = bar(bins,histc(x,bins)/(length(x)*.5),'histc');
%h.FaceColor = [.9 .9 .9];
xgrid = linspace(1.1*min(x),1.1*max(x),300);
pdfgrid = pdf_normmixture(xgrid,paramEsts(1),paramEsts(2),paramEsts(3),paramEsts(4),paramEsts(5));
hold on
plot(xgrid,pdfgrid,'-')
hold off
xlabel('x')
ylabel('Probability Density')
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Interpolation dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!