RICM4: Probabilité et Simulation. DM1

Table of Contents

Sitemap

---> misc
| ---> 2016
| ---> 2015
| ---> 2014
| ---> 2013
| ---> 2012
`--> Agenda

Pour rappel, voici l'énoncé du DM et voici un corrigé. Mes fonctions sont simples, exploitent la vectorisation de R et ne dépassent jamais la dizaine de ligne.

En ce qui concerne la notation: en gros, ceux qui ont bâclé ont D. Ceux qui ont joué le jeu mais ont fait des erreurs stupides dans leur code qui rendent l'ensemble tout faux on C. Ceux qui ont B ont un code à peu près correct mais des analyses pas vraiment claires. Ceux qui ont A, on un code juste, des remarques pertinentes. Certaines remarques particulièrement pertinentes ou au contraire plutôt à côté de la plaque m'ont conduit à mettre des + et des -.

Note: j'ai été très sympa en acceptant des devoirs en retard, avec un sujet non conforme, pas publiés sur rpubs, pas compilés en HTML et j'ai débuggé un certain nombre de codes. J'ai fait abstraction des fautes d'orthographe, des phrases sans sens pour chercher à voir ce que vous vouliez dire. Ça fait dans les 15 minutes par devoir…

Nom  
ABONNENC Alicia A
ALLARD Estelle C
AMAURIN Alexandre D
AMODRU-FAVIN Hugo A+
BECHER Hervé D
BLANC Antoine B-
BOISADAM Antoine A+
BONHOURE Gilles A
BROCHIER Aymeric D
CHAMBONNET Simon D
CHEVALIER Maxime A
COCHINHO Louis A
DALLE Oriane A
DELISE Antoine C
DEREYMEZ A(+)
FERNANDES DE ALMEIDA Héloïse B-
FERRERA Alexandre B+
FUSTES Raphaël A-
GALLIER Romane A-
GAMBRO Antoine A
GEOURJON ??
GUERRY Lucas B
HOMBERG Nicolas C
LACHARTRE Denis et SAVARY Denis C -> D
LAW Christopher A-
LEMAIRE Timothée B-
LESAGE Lucas C
MARCHAND ??
MOREAU Gwenaël B+
MOTTET ??
NASSIK C
ODIEVRE ??
PELLICER Marion A-
ROCHER A+
RIVOAL Alice A+
ROUQUIER ??
SAVARY C -> D
SIEST D
TURRIN B
VEGREVILLE D
VIAL-GRELIER A+
ZENNOUCHE Douria C
FU B

ABONNENC Alicia: http://rpubs.com/Talenie/PS_DM1

Code
Rien à redire.
Q1
Vous avez remarqué qu'il y avait une modification rapide entre la 1ère et la 2ème génération, c'est bien. Tu as aussi remarqué qu'il y avait "extinction mais pas tout le temps". Dommage que tu n'ais pas modifié l'horizon pour voir ce qu'il se passait.
Q2
Très bien.
Q3
  • "les parents ne sont pas choisit uniformément pour tout les enfants", non, je ne suis pas d'accord.
  • On "oscille entre les extrêmes", effectivement, sans pour autant nécessairement être attiré. Si vous trouvez vos courbes peu lisibles, n'hésitez pas à les adapter!

ALLARD Estelle : http://rpubs.com/Estelle-A/224103

Code
  • Pourquoi avoir caché les appels à vos fonctions ? La fonction exo1b par exemple est définie mais je n'ai pas trouvé où elle était appelée… Ça m'empèche de vérifier certaines choses.
  • La graine de votre générateur n'a pas l'air d'être controlée.
  • Les tableaux en R commencent à 1 et pas à 0! Et quand vous écrivez for (r in 1:i-1), ça itère de 0 à (i-1) car le -1 est appliqué à l'ensemble du tableau 1:i… Du coup, j'avoue que votre code marche peut-être mais que ça a l'air d'être un coup de chance…
  • Quel sens cela a-t-il d'écrire l[j]=c(1) ? Pourquoi n'écrivez-vous pas simplement l[i]=1 ?
  • La fonction crealist (qui renvoie un tableau d'ailleurs), aurait pu plus simplement s'écrire c(rep(0,bb0),rep(1,mm0),rep(2,(p-bb0-mm0))).
  • Pourquoi tout ce code compliqué et ce passage par des 'b' et de 'm' ? À mon avis, si votre code est long, ce n'est pas à cause des fonctions graphiques.
Q1
Ben non… :( Ces courbes sont difficiles à lire de toutes façons. De plus, il est probable au vu des résultats que votre code soit buggé et enfin, "l'aspect récessif du bleu" a l'air d'influer votre jugement.
Q2
  • Dommage que vous n'ayez pas conservé l'état initial (certainement stoqué à l'indice 0 de vos tableaux…), ça vous aurai permis de voir le décrochement…
  • "la prédominence d’une couleur au départ de l’évolution est totalement conservée par la suite." Hein ? Mais non, ça n'a rien d'évident et on voit bien sur vos figures qu'en regardant sur plus de générations, ça ne sera pas du tout le cas!
  • "cependant les courbes les plus basses sont bien des courbes des doublets BB qui tendent vers 0 en raison de l’aspect récessif de la couleur bleue." Pas du tout, les courbes rouges sont aussi très basses. Cette histoire de "récessif" vous aveugle…
Q3
Il y a visiblement une erreur dans votre code puisque vous avez des situations où il y a extinction d'un des couples d'allèles…

AMAURIN Alexandre: file

Code
:-O=============*, autrement dit BERK! Vous ne vous êtes pas foulé.
Q1 à Q3
Des bouts de codes, des courbes, des interprétations, pas claires…

AMODRU-FAVIN Hervé: file

Code
Très propre. Dommage que vous ayez caché les appels effectués pour générer les graphiques.
Q1
  • Très bonne représentation.
  • Très bon réflexe d'avoir augmenté l'horizon. Par contre, ça vous conduit à des situations où certains allèles disparaissent et vous n'en parlez pas alors que c'était ce que vous recherchiez…
  • "l’algorithme ne semble pas tronqué" ??? Que voulez-vous donc dire ?
Q2
  • "un sursaut d’orgueil". Sérieusement ? :)
  • "Au premier tour de l’algorithme, comme presque toute la population possède soit des allèles BB soit MM, la fonction aléatoire aura tendance à sélectionner une allèle M et une allèle B, d’où leur plus grand nombre dès la première génération calculée." Bien vu.
Q3
  • "Les bordures sont donc moins attractrices que le centre." Bonne réflexion.

BECHER Hugo: file

Code
Invisible… Comment puis-je vous aider dans ces conditions ?…
Q1
  • Représentation difficile à suivre mais bon, on voit où vous voulez en venir.
  • Bon réflexe d'avoir augmenté l'horizon. Par contre, vous n'en concluez rien…
Q2
Bof… Regardez bien le corrigé.

BLANC Antoine : file

Code
  • Ne mettez pas les set.seed à l'intérieur de vos fonctions mais une unique fois au début de votre code.
  • Vous devriez vectoriser, le code serait bien plus simple.
Q1
"Mais au file des générations la moyenne d’œil marron ou d’œil bleu reste proche de la population de départ." Comment pouvez vous dire ça en disant avant que "la population finale peut varier énormément" et qu'il peut y avoir extinction ?
Q2
"Si les yeux marrons dominent les yeux bleus, au bout de la 20eme génération, la domination moyenne ne change pas". Ça ne veut rien dire. Et la génération 20 n'a aucun rôle particulier.
Q3
"Mais on peut constater que les courbe reste au tour de la population de départ. Comme pour les précédentes questions." Et bien non. Assez rapidement, le point de départ n'a plus aucune importance. Je pense que vous n'êtes pas très objectif.

BOISADAM Antoine : file

Code
RAS, c'est clan.
  • Dommage qu'on ne voit pas le code utilisé pour générer vos graphiques.
Q1
Très bien. Très bonne idée de regarder la probabilité qu'un allèle.
Q2
Votre hypothèse est intéressante mais la seule convergence qui peut arriver est la domination d'un allèle. Le cas symétrique (.25,.25,.5) est un état transitoire, un peu plus probable que les autres mais pas énormément non plus il me semble.
Q3
Très bien d'avoir comparé avec la Q1.

BONHOURE Gilles : file

Code
il faut mettre html_document et pas pdf_document pour output
  • Votre code est propre. RAS.
Q1
Vous devriez mettre vos commentaires au fur et à mesure. On pouvait quand même remarquer des choses et si vous pensez qu'il faut regarder sur plus de générations et sur de plus grands ensembles, pourquoi ne l'avez-vous pas fait ?… Sur un horizon suffisamment long, vous auriez remarqué qu'il y avait dominance systématique.
Q2
Vous avez remarqué la chute au départ

Dans l'ensemble, c'est fait sérieusement mais j'ai le sentiment que vous n'avez pas vraiment saisi la structure sous-jacente. Il y a deux états absorbants (dominance de BB ou de MM). S'ils sont autorisés, on finira par y aller sur un horizon long. S'ils sont interdits, on va se balader sur les autres états et certains sont plus attracteurs que d'autres, ceux qui sont proche de l'arc de cercle que je montre dans ma correction.

BROCHIER Aymeric : file

Sans commentaire, vous auriez du y passer plus de temps.

CHAMBONNET Simon :

Code

il faut mettre html_document et pas word_document pour output… Ceci dit, le code ne compile pas avec le message suivant:

Line 115: error in Init(N,mm0,bb0): objet 'taille' introuvable

et effectivement, cette variable n'est jamais définie…

CHEVALIER Maxime : file

Code
RAS
Q1
En fait, il y a absorption donc il ne peut pas y avoir stabilisation vers 10%.
Q2
Dire que la "proba d’avoir les yeux bleus a l’air d’être 10%", ne veut rien dire. Vous vouliez certainement dire que l'espérance du nombre de BB au bout de 100 itérations est de l'ordre de 10% de la population totale.

COCHINHO Louis : file

Code
RAS
Q1
Si vous pensez que les paramètres ne vous permettent pas de conclure, pourquoi n'essayez vous pas de changer ces paramètres ?
Q2
Effectivement, il y a une forte variation au début puis une évolution lente autour d’une même valeur avec un éloignement de plus en plus important au fil des générations.

DALLE Oriane : file

Code
  • Wow, le code de calculcAllele est compliqué… et plus c'est compliqué plus il y a de chances qu'il y ait une erreur.
  • Pareil, il y a plus simple pour initialisationPop. Par exemple c(rep(2,Bleu), rep(0,Marron, rep(1, Pop-Bleu-Marron)))
  • Utilisez les listes ou les data frames pour renvoyer des objets complexes.

Rien à redire sur le reste.

DELISE Antoine : file

Code
  • Votre représentation n'est vraiment pas standard, ne correspond pas à ce qui était demandé et comme vous n'expliquez rien, c'est incompréhensible. Désolé mais après 10 minutes, je n'y comprenais toujours rien… :(

FERNANDES Héloïse : file

Code
Q1
vous avez calculé les répartitions théoriques à la seconde génération et comparé à celle obtenue en simulation. Cela vous a permis de vous rendre compte que les petites fluctuations avaient de l'importance. Par contre, vous n'avez regardé que pour une seule simulation et sur un horizon assez court, ce qui ne vous a pas permis de remarquer qu'il y avait toujours dominance au bout d'un certain moment.
Q2
Il y a forcément une erreur. Il est impossible que ça se stabilise ainsi… Et vous parlez de disparition des MB à la fin. Ce n'est pas possible non plus si vous y réfléchissez un peu. S'il reste des MM et de BB, il va y avoir des MB à la génération d'après avec très haute probabilité.

FERRERA Alexandre http://rpubs.com/Polytrope/224136

Code
  • Vous n'avez pas compris le principe du Rmarkdown. Les commentaires sont à mettre à l'extérieur des blocs de codes… en markdown…
  • Aouch, passer par les fonctions de répartition et les calculer toutes explicitement à chaque fois, c'est bien compliqué. Mais miraculeusement (ou grâce au temps/soin que vous y avez passé), ça marche.
Q1
"les résultats sont très variables". C'est sûr mais il est dommage que vous n'ayez pas remarqué l'extinction des populations de BB ou de MM.
Q2
"On observe des résultats assez proches de la situation d'origine au bout de 100 générations". Euh… bof. Non, pas vraiment. Par contre, quand vous dites "pour une population aussi grande, 100 générations ne sont pas suffisantes pour observer beaucoup de fluctuation (peut être que 2000 générations donneraient des résultats semblables à la question précédente.)", vous avez tout à fait raison. Dommage que vous n'ayez pas fait l'expérience…

FUSTES Raphaël : file

Code
Q1
  • Commentez au fur et à mesure.
  • "avec des petites populations, les courbes reste très grossierement dans la meme lignée que leur point de départ". Bof, il y a beaucoup de variabilité.
Q3
Effectivement, la préservation ne change pas significativement les choses quand la population est grande.

DEREYMEZ Maxime : http://rpubs.com/MDereymez/224042

Code
Bonne idée d'avoir fait ces graphes avec polygon. Ça ne permet pas de visualiser plusieurs trajectoire mais c'est très fidèle/clair pour une seule trajectoire.
Q1
C'est bien, vous avez regardé ce qu'il se passait pour différents points de départ et sur des intervalles plus longs mais vons n'expliquez pas au fur et à mesure ce que vous faites. Difficile de vous suivre dans ces conditions… Plutôt que de conclure juste à la fin, expliquez votre démarche au fur et à mesure. Ce que vous testez, ce que vous observez.
Q2
Avec votre représentation, le décrochage à l'itération 2 est peu visible. Dommage. Attention, parfois vos explications sont vraiment peu claires "Cela peu s’expliquer par le fait que sur une population, on dispose de moins de tirages aléatoires, donc l’impact d’un seul tirage est élevé." Que voulez-vous dire par "sur une population" et "on dispose de de moins de tirages aléatoires" ?
Q3
Très bonne idée de regarder sur une longue période de temps et de remettre la dynamique initiale pour comparaison

GALLIER Romane : http://rpubs.com/gallierr/DM1_PS

Code
  • Aouch! Écrire function(M,P) avec M un tableau et P un entier, c'est malvenu comme choix de nom de variables!
  • Au final, ça marche mais dommage que vous n'ayez pas vectorisé. Le code aurait été plus court, plus lisible et plus efficace.
Q1
Très bien.
Q2
  • Effectivement, pas d'extinction mais certainement car l'horizon était trop faible.
  • Dommage que vous n'ayez pas remarqué le décrochement.
Q3
OK
Conclusion
"les resultats sont plus aleatoire", ça ne veut pas dire grand chose.

GAMBRO Antoine : http://rpubs.com/ant38/224331

Code
  • Rhoo, il y avait plus simple pour vectorToCouple… par exemple

    c(sum(V=="BB"),sum(V=="MM"))
    
  • Judicieux usage de la fonction sample pour faire une permutation par contre. Je ne connaissais pas. Ceci dit, faire une permutation aléatoire de l'ensemble du tableau alors que tu souhaites simplement récupérer 2 individus au hasard, un simple

    sample(x=population, n=2, replace=F)
    

    aurait fait l'affaire.

Q1
Au début, j'ai trouvé tes courbes de toutes les couleurs et de tous les styles pas claire mais c'est une bonne idée en fait.
Q2
Le décrochement était bien visible. Dommage que tu n'en ai pas parlé.
Q3

Dans l'ensemble, tes observations sont sensées mais restent superficielles. Quand tu observe quelque chose, que ça te conduit à faire telle ou telle hypothèse, il faut creuser. Par exemple, dans la question 1, tu as vu que c'était varié mais qu'il y avait souvent extinction. Pourquoi ne pas avoir regardé sur un horizon plus important. Pareil pour Q2, etc.

GUERRY Lucas : http://rpubs.com/gr05/222431

Code
  • Plus simple pour Init, plus simplement s'écrire c(rep(0,bb0),rep(1,mm0),rep(2,(p-bb0-mm0))).
  • Vous n'avez pas les mêmes échelles en y d'un graphique à l'autre, ça n'aide vraiment pas …
Q1
  • Il faut commenter au fur et à mesure.
  • Si vous vous êtes rendus compte que pour un horizon plus long, il y a avait disparition, pourquoi ne pas l'avoir montré?!
Q2
Q3

HOMBERG Nicolas : file

Code
  • Pas bête votre pie chart et l'idée de regarder la réparition moyenne au bout de I itérations.
  • Vous n'avez pas les mêmes échelles en y d'un graphique à l'autre, ça n'aide vraiment pas …
Q1
  • C'est bizarre, votre code m'a l'air correct mais il devrait y avoir des extinctions (i.e., uniquement des BB ou bien uniquement des MM) et j'ai l'impression que ça n'arrive jamais. En plus, vous l'aviez indiqué dans vos intuitions initiales!
  • J'ai trouvé, ça m'a pris du temps… :( Vous faites:

    pop = tab ;
    ...
    for {
        Pere = sample(tab, size = P ,replace = TRUE )
        Mere = sample(tab, size =  P ,replace = TRUE )
        ...
        pop = allpere + allmere 
    }
    

    Vous ne mettez pas tab à jour et puisez donc toujours dans la population de départ!

Q2
  • Il y a un problème avec le premier graphique: yeux marrons et yeux bleus sont inversés.
  • Comme vous regardez uniquement ce qu'il se passe à la fin et pas du tout la dynamique au cours du temps, vous ne réalisez pas qu'il y a un décrochement au début. C'est dommage.
Q3
  • "plus de chance d’enlever deux allèles marrons qu’on remplacera par des allèles bleu rapprochant de ce fait d’une population homogène." Euh, homogène ? Bof, pas vraiment.
  • En ne regardant pas la dynamique, vous n'avez pas vraiment vu la différence avec les questions précédentes.

LACHARTRE Denis et SAVARY Rémi : file Les points sont répartis équitablement entre les deux…

Code
Berk.
  • Pas de fonctions pour emballer tout ça ?
  • Le code a l'air correct ceci dit.
  • Le code n'est pas visible quand vous augmentez la taille de l'univers. Pareil pour la Q2.
  • Vous calculez des moyennes sans indiquer la variance ?!
Q1
Vous avez compris ce qu'il se passait mais c'est mal expliqué. Ces moyennes sur l'ensemble des simulations rendent les choses très difficile à interpréter.
Q2
Q3
  • "Le taux de personnes BB et celui de personnes MM tend vers la même valeur, 28% de la population." Non, la population évolue en permanence.

LAW Christopher : http://rpubs.com/Lawc/224389

Code
Au début, il m'a paru bien et en y regardant de plus près, il y a un paquet de petits trucs sales… :(
  • Pour generer_pop, regardez la fonction rep
  • J'ai mis un moment à comprendre le sens de sum(pop [! pop %in% c(0,1)])/2; (en particulier le /2). Pourquoi faire ça alors que la ligne d'après, vous utilisez justement la fonction length.
  • Ouh là, appeler set.seed dans vos fonctions est une très mauvaise idée! Appelez le une bonne fois pour toute au début de votre code.
  • Vous définissez une fonction

    new_population = function(pop, P = 20, mm = 12, bb = 4)
    

    mais mm et bb ne sont jamais utilisés! C'est super trompeur!

  • Dans cette même fonction, vous mettez pop à jour au fur et à mesure. Ce n'est pas du tout ce qui était demandé!
Q1
  • "En augmentant le nombre de générations possibles à 100 générations, la courbe se lisse et se rapproche de plus en plus à un modèle d’exponentielle décroissante." Euh… pas vraiment. Ça n'est pas plus lisse et il n'y a pas d'exponentielle là dedans.
  • "Avec un nombre de génération très grand (ici 500), les chance que la population ait un nombre de personnes avec 2 allèles marrons est plus restreint." Pas vraiment, non. Impossible de compter/évaluer ceci sur ce type de graphe. Vous auriez pu calculer ces fréquences par contre puisque vous avez fait les simulations. Mais pour avoir des statistiques vous permettant de conclure, il aurait bien sûr fallu augmenter N et pas seulement i.
  • Le reste de vos intuitions/expériences est bien. Jouer sur P et i est une bonne chose pour explorer et développer vos intuitions. Très bien d'avoir compris qu'il y avait toujours disparition d'une catégorie sur un horizon long. Une fois votre intuition établie, il faut augmenter N pour conclure.
Q2
Très bien.
Q3

Attention, votre code est ultra buggé. Il n'est pas possible de passer aussi rapidement et souvent d'une situation avec quasiment aucun BB à une situation avec quasiment aucun MM… C'est dommage.

  • 1:P-2 ne fait pas ce que vous croyez. Il faut écrire 1:(P-2). Ça a des conséquences dramatiques car vous faites des choses du genre pop[-2]. Je vous laisse cet exemple à méditer:

    pop=1:20
    pop
    pop[-2]
    pop[-2]=0
    pop
    
    [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
    [1]  1  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
    [1] 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
  • Les tableaux sont indicés de 1 à N.

LEMAIRE Timothée : file

Code
  • Hallucination: Vous n'avez pas trouvé plus compliqué que ça ?

     gen0<-function(P,B,M){ 
         res=c(sample(size=B,c(2,2),replace = T),
               sample(size=(P-B-M),c(1,1),replace=T),
               sample(size=M,c(0,0),replace=T))
         res
     }
    
  • C'est bien les erreurs sont commentées au moins. :)

    Pi=c(Pi,2,1,0) # fausse les résultats
    ....  #erreur dans certain cas, bloque Knit
    
Q1
Assez difficile à suivre dans l'ensemble mais la conclusion finale (" De manière général, avec un petit population(P=20), un des allèle disparaît au fil des générations. la configuration de base influence lequel disparaît et au bout de combien de générations.") est juste.
Q2
Vous ne regardez jamais l'évolution au cours du temps de la population, ce qui vous empèche de comprendre vraiment la différence entre les différentes situations.
Q3

LESAGE Lucas : file

Code
  • Utilisez rep pour les initialisations.
  • Vous savez que la variable I n'est pas utilisée dans vos fonctions ?…
Q1
Ben, c'est n'importe quoi du coup…
Q2
Pareil

MOREAU Gwenaël : file

Une introduction/description de ce qu'il va se passer très claire.

Code
  • Le code commençait bien. Pourquoi n'avez-vous pas vectorisé la fonction enfant à l'aide de ifelse ?
  • Pareil pour pc, il faut utiliser les fonctions sum ou length plutôt que d'écrire des trucs comme:

    for(k in 1:length(p)) {
      if (p[k] == 0) bb <- bb+1
      if (p[k] == 1) mb <- mb+1
      if (p[k] == 2) mm <- mm+1
    }
    
Q1
  • "Pour conclure, nous pouvons dire que si l’on augmente l’horizon mais pas la taille de la population, les résultats sont radicaux et pas très explicites." Rhooo, déception. C'était bien d'augmenter l'horizon et de voir la différence. Ce qu'il faut en conclure, c'est qu'il y a domination des allèles purs au bout d'un certain temps.
Q2
  • Vous ne regardez pas du tout l'évolution au cours du temps. Vous ne pouvez donc pas vraiment différencier ces situations et comprendre ce qu'il se passe.

NASSIK : file

Une introduction/description de ce qu'il va se passer très claire.

Code
  • vous ne montrez pas le code utilisé pour produire les graphiques, ce qui complique la compréhension de ce que vous faites…
  • Aouch. Que le code de une_generation est long et compliqué. Vectorisez comme on a fait en TD.
  • Argh. compter_mm, ça s'écrit length(g[g==2,].
Q1
Je ne comprends pas d'où sortent les lignes horizontales bleus ou rouges. Je ne comprends pas non plus pourquoi pour le troisième graphique on a l'impression qu'il n'y a qu'une seule trajectoire. C'est très louche.
Q2
vous ne commentez pas sur le décrochage de la seconde génération
Q3
Où est le code ?
  • "Cepandant, l’allèle fini quand meme par disparaitre (sauf pour le cas préservé)." Hein ???? Il y a un problème avec votre code.

PELLICER Marion : http://rpubs.com/cKyZoar/PS

Code
C'est très soigné dans l'ensemble
  • Évitez les grosses fonctions qui font tout et composez plutôt quelques petites fonctions simples.
  • Ne mettez pas les set.seed à l'intérieur de vos fonctions mais une unique fois au début de votre code.
Q1
Vous avez remarqué l'extinction, c'est bien.
Q2
  • Quand vous dites "celles-ci se positionnent toujours autour d’une ligne centrale et donc que leur moyenne prouve qu’avec le temps nous aurons toujours le même nombre de BB que de MM sur 100 générations du moins." Non, par symétrie, il y a autant de chance que le BB soient en plus grand nombre que les MM que l'inverse. Au cours du temps, il se peut tout à fait que l'un des deux disparaisse.
  • Dommage que vous n'ayez pas remarqué le décrochement à l'itération 2. C'était pourtant assez visible.
Q3
Vous avez bien remarqué que le système avait bien un "état stationnaire" et qu'une seule simulation était représentative de l'ensemble des simulations.

ROCHER Lambert : http://rpubs.com/lambert/224083

Intuitions initiales
Explications très claires.
Code
Nickel. Juste un conseil, séparez la partie graphique de la partie simulation. Ça permet de faire des visualisations alternatives et des calculs plus spécifiques sans avoir à tout resimuler.
Q1
Nickel. Vous analisez au fur et à mesure et vos conclusions sont sensées.
Q2
Vous n'avez pas remarqué le décrochement systématique à l'itération 2, dommage. Sinon, faire un changement d'échelle à la fois dans le temps et dans l'espace est une bonne idée.
Q3
Le système est effectivement instable dans le temps et en même temps toujours du même type. On a atteint un régime stationnaire.

RIVOAL Alice : http://rpubs.com/alice2909/224370

Code

Très soigné, rien à dire. Sauf p-e pour compter les allèles où un simple

c(sum(V=="BB"),sum(V=="MM"))

aurait fait l'affaire.

Q1
Très bien d'avoir regardé sur des horizons plus grands et de vous être aperçu qu'il y avait disparition des BB. Pourquoi donc n'avez-vous pas montré les simulations correspondantes ?
Q2
Q3

Très soigné dans l'ensemble et des commentaires précis et détaillés.

ROUQUIER : pas de fichier joint

De toutes façons, vu ce que vous en disiez …

SIEST Damien et VEGREVILLE : file

Code
  • Pas de code dans le html ? Je dois aller le chercher moi même dans le Rmd ? Vous abusez!
  • L'analyse est fait à coup de print en R ? Et le markdown, c'est fait pour qui, selon vous ?
  • Vous n'avez pas observé d'absorption en Q1, c'est illisible. Vous avez du vous mettre à deux pour me rendre ça ?

TURRIN Vincent : file

Code
  • Pas de code dans le html ? Je dois aller le chercher moi même dans le Rmd ? Vous abusez!
Q1
  • En ne regardant que l'évolution de BB, vous ne pouvez pas savoir s'il y a extinction/domination des allèles bleus ou pas. Il arrive fréquemment que le nombre d'individus aux yeux bleus passe à 0 puis remonte, puis repasse à 0.
Q2
  • "Chacuns des tests tend directement vers une certaine valeur". Ben non, ça fait une marche aléatoire dans un certain espace en fait…
  • "On remarque à chaque fois une grande variation du passage de la première génération à la deuxième". Effectivement. Bonne idée de l'illustrer avec une situation extrême.

VIAL-GRELIER Aymeric : file

Code
Super. Rien à redire.
Q1
  • "C’est pas joli joli pour les yeux marrons." C'est pas un match de foot, hein ?
Q2
  • "Chacuns des tests tend directement vers une certaine valeur". Ben non, ça fait une marche aléatoire dans un certain espace en fait…
  • "On remarque à chaque fois une grande variation du passage de la première génération à la deuxième". Effectivement. Bonne idée de l'illustrer avec une situation extrême.
Q3
OK.

ZENNOUCHE Douria : http://rpubs.com/zenn/224363

Code
  • Du code très peu lisible, parfois sans aucun sens. Par exemple:

    if(R==1){K=P} else {K=P}
    

    Et à quoi sert ce K au final ?

  • Utiliser un compteur de boucle (for(i in 2:Imax) après la boucle (Enfant[i]=2), c'est en général une assez mauvaise idée. Selon les langages, les conventions sur l'état de ces variables peuvent être très différentes.
  • Au passage, votre réajustement de la population en fonction de la stratégie est fait trop tard, i.e., après avoir réévalué a et b au lieu de le faire avant (pire, il est à l'extérieur de la boucle sur i).
Q1
  • Relisez ce que vous avez écrit. C'est parfois incompréhensible. Au passage, quand vous écrivez "le pourcentage d’avoir des individus ayant des yeux bleus", vous vouliez dire "probabilité".
  • Dans vos figures, il y a moins de trajectoires que ce que vous avez demandé (par exemple pour la seconde avec a=0.6, b=0.4, P=20, R=1, Imax=20, et N=10, je ne vois que 3 courbes bleus et 3 courbes marrons au lieu de 10 de chaque). J'ai bien l'impression que votre code fait n'importe quoi. Argh, j'ai fini par trouver! Votre deuxième appel à lines n'est pas dans le bloc du if correspondant. Et ce n'est probablement pas le seul problème. Vous n'avez pas pris soin de faire un code propre, vous en payez le prix… Du coup, tout ce que vous racontez après, n'a pas de sens.
Q2
Q3
Il ne pouvait y avoir extinction des B ou des M, ce qui arrive chez vous… Je ne comprends pas pourquoi c'est si différent de la question 1 vu comme vous avez placé votre test sur R.

FU Quian Quian : file

Code
OK.
Q1
  • "un horizon grand me permet d’observer la disparition de l’allèle bleus". Ou au contraire une domination…
Q2
  • Attention au terme "converge". À part quand il y a domination ou extinction, il n'y a jamais convergence.
Q3
OK.