2012-11-09 4 views
0

J'ai un histogramme de données (x, y) qui est un mélange de deux gaussiennes (cas simple c'est-à-dire dans une dimension). Pour obtenir un ajustement à elle, j'utiliseplot gmdistribution.fit avec données

obj = gmdistribution.fit (données, 2)

qui me donne la

obj =

distribution de mélange de gaussiennes avec 2 composants en 1 dimensions Composant 1: proportion de mélange: 0,499387 Mean: -0,4789

Composant 2: proportion de mélange: 0,500613 Moyenne: -0.4786

Maintenant, comment puis-je tracer cela avec l'histogramme d'origine? Je suis au courant de ces 2 liens, mais ils ne me aider tellement:

http://www.mathworks.com/matlabcentral/newsreader/view_thread/317868

http://www.mathworks.de/de/help/stats/gmdistribution.fit.html

Toute aide claire est très appréciée!

Répondre

1

Je suppose que cela pourrait être un peu en retard, mais il a été mis à jour sur matlabs site. Juste au cas

MU1 = [1 2]; 
SIGMA1 = [2 0; 0 .5]; 
MU2 = [-3 -5]; 
SIGMA2 = [1 0; 0 1]; 
X = [mvnrnd(MU1,SIGMA1,1000);mvnrnd(MU2,SIGMA2,1000)]; 

scatter(X(:,1),X(:,2),10,'.') 
hold on 

options = statset('Display','final'); 
obj = gmdistribution.fit(X,2,'Options',options); 
10 iterations, log-likelihood = -7046.78 

h = ezcontour(@(x,y)pdf(obj,[x y]),[-8 6],[-8 6]); 

Vous pourriez faire la même chose pour 3d en utilisant scatter3.

enter image description here

enter image description here