Bivariate Guassian mixed model on 1D data
Mostrar comentarios más antiguos
Hi, I am trying to plot a guassian curve on the histogram distribution of my 1D data. This is my code:
data = xlsread('csf.xlsx','ab');
mu1 = mean('data');
sigma1 = std('data');
X = [mvnrnd(mu1,sigma1,1000)];
numComponents=2;
paramEsts = fitgmdist(X,numComponents);
MU=[paramEsts.mu(1);paramEsts.mu(2)];
SIGMA=cat(3,[paramEsts.Sigma(1)],[paramEsts.Sigma(2)]);
PPp=[paramEsts.PComponents(1),paramEsts.PComponents(2)];
gm = gmdistribution(MU,SIGMA,PPp);
dimension = gm.NumVariables
rng(1);
min_val = min(data(:)-100); max_val = max (data(:)+1000);
% min_val = min('data'); max_val = max ('data');
histogram(data, 'Normalization', 'pdf', 'EdgeColor', 'none')
x= min_val:0.01:max_val;
xlim([min_val max_val])
hold on;
xgrid = linspace (50,3000,500)';
n1 = makedist('normal',paramEsts.mu(1),sqrt(paramEsts.Sigma(1)));
n2 = makedist('normal',paramEsts.mu(2),sqrt(paramEsts.Sigma(2)));
p = paramEsts.ComponentProportion;
y = p(1)*pdf(n1,xgrid) + p(2)*pdf(n2,xgrid);
hold on; plot(xgrid,y,'b'); hold off
And this is what I get:

However, I am trying to get something like this:

Please, how do I achieve this?
2 comentarios
the cyclist
el 24 de Ag. de 2018
Can you upload either the Excel file or the resulting data variable in a MAT file (using that little paperclip icon)?
Trisha Kibaya
el 27 de Ag. de 2018
Respuestas (1)
Image Analyst
el 24 de Ag. de 2018
0 votos
Try something like the attached demo that fits two Gaussians to data. Adapt as needed (like replace blue dots on plot with white bars or whatever).

7 comentarios
Trisha Kibaya
el 27 de Ag. de 2018
Image Analyst
el 27 de Ag. de 2018
You might be able to get somewhat close by taking the log of your data and doing a multilinear regression with polyfit. See the attached and try to adapt the formula in it to be a sum of two Guassians.
Trisha Kibaya
el 28 de Ag. de 2018
Image Analyst
el 28 de Ag. de 2018
Yes. What do you have? Formulas, or vectors?
Trisha Kibaya
el 28 de Ag. de 2018
Image Analyst
el 28 de Ag. de 2018
Trisha Kibaya
el 28 de Ag. de 2018
Categorías
Más información sobre Uniform Distribution (Continuous) en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!