Les mélanges gaussiens

Un boa qui a mangé trois éléphants.
Un boa qui a man­gé trois élé­phants.

La plu­part des mesures que l'on obtient des expé­riences en bio­lo­gie suivent approxi­ma­ti­ve­ment une dis­tri­bu­tion dite "nor­male", ou "gaus­sienne", dont la den­si­té a la forme d'une cloche, symé­trique avec un unique som­met au milieu. C'est aus­si l'hypothèse d'un grand nombre d'outils d'analyse sta­tis­tique. Mais que faire quand on observe deux som­mets ou plus ? Le plus pro­bable, c'est qu'on observe alors un mélange de plu­sieurs com­po­santes nor­males, qu'on vou­drait sépa­rer.  Une fois décom­po­sées, on peut tra­vailler sur chaque com­po­sante sépa­ré­ment. Le tout s'appelle un "modèle de mélange gaus­sien", ou "gaus­sian mix­ture model" en anglais pour la lit­té­ra­ture.

 

Les exemples d'utilisation sont fré­quents. D'ailleurs, si j'ai choi­si d'écrire sur ce sujet, c'est que j'ai reçu il y a quelques jours le mes­sage sui­vant :

Salut,

bimodal_AJ'ai un ser­vice à te deman­der ! J'ai une série de 100 points qui repré­sentent des dis­tances d'expression de gène entre deux cel­lules après divi­sion. J'obtiens une dis­tri­bu­tion qui n'est pas une gaus­sienne, et j'aimerais savoir s'il y a moyen de trou­ver une double gaus­sienne qui pour­rait modé­li­ser de façon adé­quate ma dis­tri­bu­tion. Le but étant de fixer un seuil pour les paires de cel­lules avec une dis­tance éle­vée. Est-ce que tu pour­rais me mon­trer com­ment faire ça ? C'est assez urgent…

A.

Pour déter­mi­ner quel indi­vi­du appar­tient à quelle com­po­sante, la méthode usuelle est d'utiliser un algo­rithme EM (pour Expec­ta­tion-Maxi­mi­za­tion). Le résul­tat de l'algorithme est un ensemble de paires (moyenne, variance) — une pour chaque com­po­sante nor­male — , et une pro­ba­bi­li­té "a pos­te­rio­ri" pour chaque obser­va­tion d'appartenir à telle ou telle com­po­sante.

Sans entrer dans les détails, l'algorithme fonc­tionne en alter­nant deux phases : on attri­bue — arbi­trai­re­ment, la pre­mière fois — chaque point à l'une des com­po­santes (phase E), dont on peut alors esti­mer la den­si­té de pro­ba­bi­li­té (phase M). Puis on consi­dère fixes les den­si­tés, et on redis­tri­bue au mieux les points entre elles (phase E), par un cri­tère de maxi­mum de vrai­sem­blance. Et on recom­mence : on recal­cule les den­si­tés (phase M), etc. On peut mon­trer que chaque ité­ra­tion amé­liore la vrai­sem­blance, et donc qu'on converge tou­jours vers un maxi­mum local.

On peut voir la méthode comme une forme d'appren­tis­sage non-super­vi­sé (clus­te­ring).

En pratique

Voi­ci com­ment faire en uti­li­sant le lan­gage R. Pour ne pas s'encombrer avec l'import de don­nées réelles, géné­rons des don­nées aléa­toires, à par­tir de deux dis­tri­bu­tions nor­males, mélan­gées dans un même vec­teur :

C'est-à-dire, ça :

Linear distribution of test data

Mais comme les points sont dif­fi­ci­le­ment visibles, on pré­fère en prin­cipe des­si­ner un his­to­gramme ou une courbe de den­si­té, comme ça :

His­to­gramme et courbe de den­si­té (non-para­mé­trique) des don­nées.

On devine qu'il doit y avoir deux com­po­santes (deux "bosses"). Il sera impor­tant de pré­ci­ser à l'algorithme com­bien de com­po­santes il y a, sans quoi le résul­tat sera n'importe quoi.

Ensuite il existe de nom­breux packages à même de faire le tra­vail. Voi­là un exemple avec la librai­rie R "mix­tools" :

En rouge la densité jointe (non-paramétrique) ; en bleu/vert les courbes de densité des deux sous-populations, d'après les estimations de mixtools.
En rouge la den­si­té jointe (non-para­mé­trique) ; en bleu/​vert les courbes de den­si­té des deux com­po­santes nor­males, d'après les esti­ma­tions de mix­tools.

Et voi­là, on a sépa­ré les don­nées en deux com­po­santes nor­males. On peut ajou­ter à volon­té au graphe la posi­tion des moyennes, les écarts-types, les points colo­rés selon leur appar­te­nance à l'une ou l'autre com­po­sante, etc.

Alter­na­ti­ve­ment, en uti­li­sant la librai­rie "mclust" et en uti­li­sant d'autres pos­si­bi­li­tés gra­phiques :

On a ajouté à l'histogramme des données la densité jointe (non-paramétrique, en rouge), la moyenne (bleu plein) et la variance (bleu trait-tillé) de chaque sous-population.
On a ajou­té à l'histogramme des don­nées la den­si­té jointe (non-para­mé­trique, en rouge), la moyenne (bleu plein) et la variance (bleu trait-tillé) de chaque com­po­sante nor­male.

Généralisation

Notez que si dans notre exemple nous avons deux com­po­santes nor­males à une dimen­sion, on peut faci­le­ment géné­ra­li­ser à X com­po­santes en N dimen­sions (comme dans l'exemple ci-des­sous) mais aus­si avec d'autres sortes de dis­tri­bu­tions de pro­ba­bi­li­té. Dans le cas de deux dimen­sions, la ligne de points de notre toute pre­mière figure ci-des­sus devient un nuage de points dans un plan.

A gauche les données initiales ; on devine trois sous-groupes. A droite, la décomposition par mixtools.
A gauche les don­nées ini­tiales ; on devine trois sous-groupes. A droite, la décom­po­si­tion par mix­tools, où on a colo­ré les points selon la com­po­sante à laquelle ils appar­tiennent le plus pro­ba­ble­ment.

Remarque : le cal­cul a tout de même pris une bonne dizaine de minutes sur mon vieux Mac.

Il existe dans à peu près tous les lan­gages des librai­ries de ce genre. Un exemple notable est le tout pro­met­teur lan­gage Julia, encore en déve­lop­pe­ment, qui pos­sède une librai­rie "Mix­tu­re­Mo­dels", par exemple :

Par­fois c'est plus com­pli­qué : l'algorithme EM peut être implé­men­té dans sa forme géné­rale (il a beau­coup d'autres usages), et c'est à vous de spé­ci­fier à quoi l'appliquer. Mais c'est un autre sujet qui mérite un livre à lui tout seul.

Mer­ci à ook4mi, frval­lee, Bu, ZaZo0o et Yoann M. pour leur relec­ture.

Toutes les figures sont de l'auteur de l'article.



Pour continuer la lecture :


Commentaires

34 réponses à “Les mélanges gaussiens”

  1. Bon­jour Mr. Julien Dela­fon­taine,

    je trouve ce tuto­riel très enri­chis­sant et aime­rais vous poser une ques­tion par rap­port à ma thèse de mas­ter que j'ecris en ce moment.
    Le thème est le sui­vant : Recherche sur le em algo­rithme.
    je suis ain­si à la recherche des exemples d'applications du modèle.
    j'ai deja fait un exemple pour les valeurs man­quantes avec R et aime­rais en faire 2 autres exemples.
    auriez vous d'autres cas d'apllications ?

    Mer­ci d'avance

    1. Bon­jour,
      Oui, il y a beau­coup d'autres appli­ca­tions de l'algo EM.
      Très sou­vent c'est en pro­ba­bi­li­tés, pour un cal­cul de maxi­mum de vrai­sem­blance (voir en par­ti­cu­lier Monte-Car­lo EM).
      Pour un usage plus spé­ci­fique en bioin­fo, il y a l'étude de l'épissage alter­na­tif (spli­cing) pour le RNA-seq : des pro­grammes comme RSEM ou Cuf­flinks en implé­mentent un.
      Enfin dans un autre domaine, le Filtre de Kal­man est une appli­ca­tion très impor­tante (GPS par exemple).

      1. bon­jour,

        mer­ci pour cette reponse rapide et les exemples men­tionnes.
        en image seg­men­ta­tion on pour­rait aus­si appa­ren­ment luti­li­ser mais je nar­rive pas a com­prendre cela.
        En plus mon pro­fe­seur sou­he­rait avoir des codes dont il pour­rait aus­si tes­ter a la mai­son.
        auriez vous des exemples , codes y com­pris qui me per­met­tront de mieux com­prendre.
        mer­ci

        1. Je n'en ai pas direc­te­ment, mais on peut trou­ver du code sur le net, comme en cher­chant "kal­man fil­ter EM example", on tombe sur du code R qui fait ca :
          http://www.econ.umn.edu/~karib003/help/kalman_example2.htm
          (SSM = State Space Model)

  2. Avatar de kalzoumbé Pallaye
    kalzoumbé Pallaye

    Bon­jour Mon­sieur Julien Dela­fon­taine,
    Mer­ci pour ce tuto­riel qui ma beau­coup aidé dans mon tra­vail, je sou­hai­te­rais vous posez quelques ques­tions sur la per­for­mance de cette approche lorsque le pro­blème se com­plique, je veux dire lorsque les com­po­santes deviennent plus imbri­qués. Com­ment peut-on étu­dier par Monte-Car­lo la pré­ci­sion de EM (variance des esti­ma­teurs)?
    En exé­cu­tant votre pro­gramme, j'ai aus­si remar­qué que dans le cas mul­ti­va­rié l’algorithme est lent, je vou­drais savoir à quoi cela est du ? Est ce que la taille de l'échantillon y est pour quelques chose ou bien c'est le nombre des com­po­sants (ici 3)?
    Je sou­haite faire une com­pa­rai­son entre l'algorithme EM et k‑mean mais je viens de débu­ter en R (je tra­vaille avec SAS) je sou­haite savoir quelle est la commande(ou biblio­thèque) qui me per­met­tra de faire cela?(en pas­sant je ne com­prend pas pour­quoi la bibliothèque(mclust) ne marche pas chez moi,il n'existe pas dans mon aide).
    Infi­ni­ment mer­ci pour ce tuto­riel.
    cor­dia­le­ment.

    1. Bon­jour,

      Pour étu­dier la pré­ci­sion de la méthode, on peut géné­rer soi-même des don­nées comme je l'ai fait (Monte-Car­lo c'est juste une méthode pour le sam­pling d'une dis­tri­bu­tion don­née), par exemple un cer­tain nombre de com­po­santes nor­males. Comme on connaît par construc­tion l'appartenance de chaque point a l'un des géné­ra­teurs, on peut la com­pa­rer à ce que retrouve l'algorithme EM sans cette infor­ma­tion.

      Je ne sais pas exac­te­ment pour­quoi il est lent, mais ça peut être parce que
      — c'est écrit en R
      — il lui faut beau­coup d'itérations pour conver­ger
      — (?) l'algorithme est intrin­sè­que­ment lent (demande beau­coup d'opérations au CPU)

      Si c'est pour du clus­te­ring, les k‑means seront plus effi­caces, d'autant que dans les deux cas il faut devi­ner en avance le nombre de com­po­santes. En R, c'est la fonc­tion "kmeans" qui est pré­sente sans package par­ti­cu­lier.

      Mclust au contraire doit être ins­tal­lé au préa­lable : install.packages("mclust").

  3. Avatar de kalzoumbé Pallaye
    kalzoumbé Pallaye

    Je vous remer­cies pour votre aide.

  4. Avatar de kalzoumbé Pallaye
    kalzoumbé Pallaye

    En consi­dé­rant les don­nées biva­riees (erup­tions, wai­ting) de la table fai­th­ful, com­ment peut-on appli­quer la méthode ci-des­sus ? En appli­quant les codes j'ai l'impression que la fonc­tion mvnor­mal­mixEM marchent de façon infi­nie.

    1. Je ne connais pas ces tables. Si c'est lent c'est nor­mal. Soit le jeu de don­nees est tres grand, soit l'algorithme met beau­coup de temps a conver­ger.

  5. Salut Mr. kal­zoum­bé Pal­laye,

    dans le cadre de tra­vail, j'aimerais aus­si faire une com­pa­rai­son entre le k‑means et Lal­go­rithme EM. Jusqu'à pré­sent mes essais sont encore loin detre concluants. Aurais tu deja des meilleures idées a pro­pos.
    Mr. Julien Dela­fon­taine votre aide sera aus­si la bien­ve­nue.
    je compte en fait gene­rer des don­nees dans R et y appli­quer les 2 methodes et com­pa­rer les resul­tats.
    Mer­ci d'avance

    1. La dif­fé­rence c'est que l'EM va retour­ner les para­mètres des gaus­siennes, alors que le K‑means va seule­ment don­ner des groupes. Par ailleurs le modèle de mélange gaus­sien est appli­quable comme son nom l'indique uni­que­ment aux don­nées sup­po­sées gaus­siennes.

      Le plus simple en effet est de "gene­rer des don­nees dans R et y appli­quer les 2 methodes et com­pa­rer les resul­tats". Dans l'article on montre com­ment géné­rer les don­nées.

  6. Avatar de kalzoumbé Pallaye
    kalzoumbé Pallaye

    Comme a dit ci haut Mr Julien Delafontaine,constate que même si le k‑means souffre d’un cadre théo­rique rigou­reux pour le choix des classes, il donne des résul­tats plus satis­fai­sant que le EM. Avec un grand nombre de don­nées, cet algo­rithme est rapide, per­for­mant et effi­cace. Com­pa­ra­ti­ve­ment à EM, quand le nombre de classe devient plus imbri­qué (m=3), ont attend au moins huit minutes pour qu’il converge et un essai avec quatre mélange ne fait que confirme cette len­teur. Toute fois, elle per­met de don­ner un cadre théo­rique et d’être ain­si une approche qui vien­dra ren­for­cer le k‑means. La len­teur de EM peut s'expliquer par le fait que la maxi­mi­sa­tion de la log-vrai­sem­blance qui inter­vient dans le cal­cul des para­mètres se fait linéairement.Ainsi lorsque le EM atteint un maxi­mun local il peut conver­ger alors, ce maxi­mum n'est pas le maxi­mum glo­bal recher­ché.

  7. Bon­jour,
    Je suis très inté­res­sée par votre métho­do­lo­gie pour étu­dier ces mélanges gaus­siens. J'aurais aimé savoir s'il y existe selon vous un moyen pour iden­ti­fier le point d'iso-probabilité, c'est à dire le point déli­mi­tant les deux com­po­sants du mélange (entre les deux com­po­sants)?

  8. Re !
    En fait voi­là j'aimerais effec­tuer une ana­lyse de mélanges sur la dis­tri­bu­tion d'une variable. J'aimerais voir s'il est pos­sible d'identifier au sein de cette dis­tri­bu­tion deux com­po­sants. Lorsque j'applique le script R pré­sen­té ci-des­sus via le package mix­tool j'obtiens les pro­por­tions de chaque com­po­sant, les moyennes…Mais j'aimerais pou­voir savoir :
    — à quel groupe chaque obser­va­tion appar­tient
    — quel est le point à par­tir duquel on passe d'un com­po­sant à l'autre
    — quel est le taux d'erreur (soit le taux indi­quant la pro­ba­bi­li­té de pla­cer une obser­va­tion dans le mau­vais com­po­sant)

    1. Bon­jour,
      Ce sont les pro­ba­bi­li­tés a pos­te­rio­ri, "mixmodel$posterior" dans l'exemple. On ne peut pas attri­buer avec cer­ti­tude une obser­va­tion à une dis­tri­bu­tion, par défi­ni­tion. Par contre on peut choi­sir, par exemple dans le cas d'un mélange de deux gaus­siennes, d'attribuer à cha­cune les obser­va­tions qui ont une pro­ba­bi­li­té > 0.5 de puis appar­te­nir. C'est ce qui a été fait pour mettre les cou­leurs dans le gra­phique illus­trant le cas à deux dimen­sions. Le point d'iso-probabilité est l'endroit où les deux courbes de den­si­té se croisent.

      1. Bon­jour,
        Mer­ci beau­coup ! Oui c'est ce que je pen­sais avoir com­pris concer­nant le point d'iso-probabilité mais je me deman­dais s'il y avait un moyen de le cal­cu­ler direc­te­ment au lieu de l'identifier gra­phi­que­ment.
        J'ai une autre ques­tion concer­nant l'allure du gra­phique obtenu…En fait sur la repré­sen­ta­tion gra­phique obte­nue l'une des deux courbes du mélange est vrai­ment "plate". Dans ce cas est-ce qu'il est juste de dire qu'on a pu iden­ti­fier deux dis­tri­bu­tions gaus­siennes mais que l'une des deux dis­tri­bu­tion regroupe un très faible nombre d'observations ? Ou bien la forme plate de cette deuxième com­po­sante empêche de conclure sur l'existence réelle de deux com­po­santes et il vaut mieux retes­ter le modèle en pre­nant une autre valeur de k ?
        Par avance mer­ci

        1. Il faut uti­li­ser cette méthode si on sait 1. qu'on a des popu­la­tions nor­males, et 2. que d'après l'histogramme il n'y en a pas qu'une (même si c'est "plat"). Si c'est "plat" pour une autre rai­son, c'est qu'on n'a pas une dis­tri­bu­tion nor­male, et le modèle de mix­ture gaus­sienne est inap­pro­prié.

          Ces deux cri­tères découlent du contexte du pro­blème, et donc c'est entiè­re­ment la res­pon­sa­bi­li­té du cher­cheur de les devi­ner. Dans l'exemple j'ai géné­ré des points à par­tir de deux lois nor­males, donc il est cer­tain que le modèle est appro­prié.

          On peut cal­cu­ler le point d'iso-probabilité en connais­sant les para­mètres des deux nor­males, car on a une for­mule pour ces deux courbes (voir Wiki "loi nor­male", celle avec l'exponentielle). On peut écrire un sys­tème à deux équa­tions et le résoudre.

  9. Ok, mer­ci beau­coup pour tous ces ren­sei­gne­ments.
    Bonne jour­née.

  10. Avatar de Nicolas-apprentiVC
    Nicolas-apprentiVC

    Cher Julien,

    Mer­ci beau­coup pour votre blog très ins­truc­teur.
    Une ques­tion ici sur le test d'ajustement qui vien­drait si on veut avoir une idée de la pré­ci­sion de l'approximation gaus­sienne ; le test du chi-deux serait j'imagine le fleu­ron de l'arsenal clas­sique pour ceci, mais que devient-il si nous tra­vaillons sur des lois biva­riées par exemple ?

    Et avec les don­nées issues de la réa­li­té l'approximation (même avec un mélange gaus­sien) est sou­vent très brute & la pro­ba­bi­li­té issue du chi-deux est trop faible pour être "mon­trable" ; auriez-vous idée d'autres tests d'ajustements qui pour­raient par­ve­nir à quan­ti­fier la pré­ci­sion de l'approximation ? Si vous avez des liens vers d'autres articles je suis bien sûr pre­neur.

    Mer­ci encore & bonne conti­nua­tion !
    Cor­dia­le­ment,

    Nico­las

    1. Il existe de nom­breux tests de nor­ma­li­té, et cer­tains sont exten­sibles à N dimen­sions, comme celui de Mar­dia (https://​en​.wiki​pe​dia​.org/​w​i​k​i​/​M​u​l​t​i​v​a​r​i​a​t​e​_​n​o​r​m​a​l​_​d​i​s​t​r​i​b​u​t​i​o​n​#​M​u​l​t​i​v​a​r​i​a​t​e​_​n​o​r​m​a​l​i​t​y​_​t​e​sts). A ma connais­sance il n'y a pas de test qui dise si c'est un mélange gaus­sien, ce qui est très dif­fé­rent d'une nor­male mul­ti­va­riée. Mais on peut tes­ter la nor­ma­li­té de chaque com­po­sante après la sépa­ra­tion, comme diag­nos­tic.

      A mon avis si le test retourne des résul­tats insa­tis­fai­sants, le modèle est mau­vais et il faut réflé­chir à autre chose, pas chan­ger le test jusqu'à obte­nir une bonne p‑valeur. Le test a une signi­fi­ca­tion (la somme des car­rés des erreurs, par exemple, est tout ce qu'il y a de concret).

      On peut com­pa­rer dif­fé­rents modèles par leur cri­tère d'AIC (qui découle du rap­port des vrai­sem­blances).

  11. Bon­jour Julien et bra­vo pour ce tuto.
    J'aimerai savoir s'il y a un moyen de savoir la meilleur valeur de k (moda­li­tés).
    J'ai vu un article qui par­lait de la " MLE error" mais je ne sais pas trop s'il y a d'autres moyens.

    Mer­ci

    1. Bon­jour, Il y a des moyens mathé­ma­tiques, mais je ne le conseille­rais pas. La meilleure méthode c'est de pro­duire un gra­phique des don­nées pour véri­fier si déjà à l'oeil on observe une sépa­ra­tion, comme la courbe de den­si­té ci-des­sus. Si on ne voit rien de pro­bant, il ne faut même pas faire de stats du tout.

      Si on y tient quand même, ou si on a des nor­males mul­ti-dimen­sion­nelles, il faut d'abord obser­ver que plus il y a de com­po­santes mélan­gées, moins le modèle sera per­for­mant, donc la plu­part du temps on peut juste tes­ter 1,2,3,4 com­po­santes. Enfin, la librai­rie uti­li­sée devrait retour­ner un esti­ma­teur de vrai­sem­blance, et on peut l'utiliser pour cal­cu­ler des cri­tères d'accord du modèle aux don­nées (p.ex. Akaike, AIC) ou faire un test des rap­ports de vrai­sem­blance (like­li­hood ratio test). Ces cri­tères indi­que­ront quel est le modèle qui cor­res­pond le mieux aux don­nées.

      Il n'y a pas de façon par contre de déter­mi­ner le nombre idéal de com­po­santes sans appli­quer le modèle dans chaque cas et com­pa­rer les résul­tats.

  12. Avatar de Caupos

    Bon­jour et mer­ci pour ce tuto­riel.

    J'ai uti­li­ser la fonc­tion boot.comp sur mon jeu de don­nées pour trou­ver un nombre de com­po­sante qui retrans­crit au "mieux la réa­li­té". Par la suite j'utilise nor­mal­mixEM pour une simu­la­tion sur mon jeu de don­nées. Ma ques­tion est la sui­vante, en fonc­tion du nombre d'opérations, le nb de k sélec­tion­nés peut varier, de plus avec nor­mal­mixEM pour la même ligne de code les valeurs mu lamb­da et sig­ma peuvent chan­ger éga­le­ment. Com­ment choi­sir alors le "meilleur modèle". J'aimerais avoir l'AIC ou le BIC qui existe dans mix­tools avec les mix­ture et autre modele (com­pa­rai­son des modeles en fonc­tion du nombre de com­po­sante) mais pas avec la fonc­tion nor­mal­mixEM. Je ne vois pas com­ment faire, je pen­sais le cal­cu­ler manuel­le­ment mais com­ment avoir accès aux nb de rési­dus, a la somme des car­rés des res.…DSL j'espère que je ne suis pas a côté de la plaque.

    1. Je ne com­prends pas. Avec nor­mal­mixEM(), on choi­sit soi-meme le `k`. Si on n'arrive pas à le choi­sir en voyant l'histogramme, c'est pro­ba­ble­ment que le modèle de mélange gaus­sien est un mau­vais choix au départ.
      En ce qui concerne l'implémentation, je ne me sou­viens plus pré­ci­sé­ment et ne me sub­sti­tue pas à la docu­men­ta­tion du package.

  13. Avatar de ZHANG

    Bon­jour Mon­sieur Dela­fon­taine,

    Je suis une étu­diante qui est en train de tra­vailler sur les mélanges gaussienne.J'avais uti­li­sé votre code pour le réa­li­ser, mais chaque fois quand je lance le pro­gramme, je pour­rais obte­nir des résul­tats dif­fé­rents. En plus, je trouve que des valeur qu'il a trou­vé c'est pas tout du le résul­tat que je veux. est ce que vous pou­vez m'aidez ?

    1. Pour vous aider, il fau­drait que vous pré­ci­siez ces termes : "le pro­gramme", "résul­tats dif­fé­rents", "des valeur qu'il a trou­vé" et "le résul­tat que je veux".

  14. Avatar de Olivia

    Bon­jour Mr. Julien Dela­fon­taine,

    Com­ment je peux choi­sir un bon valeur de k ? S'il me dit "war­ning, not convergent", qu'est-ce que ça veut dire ?

    1. Bon­jour,
      Pour la valeur de k, je fais réfé­rence aux com­men­taires ci-des­sus.
      "Not convergent" veut dire que la condi­tion de ter­mi­na­tion de l'algorithme n'a pas été atteinte après un grand nombre d'itérations.
      Si l'algorithme ne converge pas, c'est pro­ba­ble­ment que les don­nées ne se prêtent pas à ce modèle (p.ex. avec dis­tri­bu­tion hors de la famille expo­nen­tielle dont la nor­male fait par­tie). S'il ne converge pas, le résul­tat n'est pas uti­li­sable.

      1. Avatar de Olivia

        Mer­ci pour la reponse. J'ai une autre ques­tion à vous poser aus­si. Si le k=3 par exemple, j'aimerais bien de trou­ver un bias de ma sys­tème, donc il faut que je concen­tré sur quelle gaus­sienne ? Laquelle a une plus grosse sur­face ?
        mer­ci d'avance.

  15. Avatar de Olivia

    Je vous remer­cie.

  16. Bon­jour Julien,

    Pour­riez-vous m'expliquer la "pro­por­tion" de la gaus­sienne ? qu'est-ce qu'elle signi­fie ?
    (lamb­da = mixmodel$lambda # pro­por­tions ~ [0.72,0.28])
    Mer­ci d'avance.

    Bien cor­dia­le­ment,
    Fanny.D

  17. Avatar de Angelina

    Bon­jour,

    Je suis à la recherche d'une solu­tion pour pré­sen­ter des résul­tats issus d'expériences où on mesure les pptés nano­mé­ca­niques, notam­ment le module élas­tique des bac­té­ries en contact des nano­par­ti­cules oxydes. Géné­ra­le­ment, on obtient une dis­tri­bu­tion en double gaus­sienne. Je suis tom­bée sur votre tuto­riel, mais je n'ai pas réus­si à m'en sor­tir.
    Pour­riez-vous m'indiquer la marche à suivre. Mes don­nées sont sous forme d'histogrammes (Fré­quence en fct de l'élasticité).
    Mer­ci par avance
    Ange­li­na

  18. C'est extrê­me­ment bien expli­qué mer­ci ^^

  19. Avatar de Romaric, Mouafo-Tchinda
    Romaric, Mouafo-Tchinda

    Bon­jour Julien,
    Mer­ci pour le tuto­riel.
    Je vou­lais savoir com­ment faire pour avoir les dif­fé­rents para­mètres du modèle.
    En fait moi dans le cadre de mes tra­vaux, J'aimerais pour­voir géné­rer les para­mètres des modèles car elles ont une signi­fi­ca­tion bio­lo­gique.
    para­mètres : opti­mums, lar­geurs des courbes …

    Cor­dia­le­ment,
    Roma­ric

Laisser un commentaire