RICM4: Probabilité et Simulation. DM1
Table of Contents
- ABONNENC Alicia:
- ALLARD Estelle :
- AMAURIN Alexandre: file
- AMODRU-FAVIN Hervé: file
- BECHER Hugo: file
- BLANC Antoine : file
- BOISADAM Antoine : file
- BONHOURE Gilles : file
- BROCHIER Aymeric : file
- CHAMBONNET Simon :
- CHEVALIER Maxime : file
- COCHINHO Louis : file
- DALLE Oriane : file
- DELISE Antoine : file
- FERNANDES Héloïse : file
- FERRERA Alexandre
- FUSTES Raphaël : file
- DEREYMEZ Maxime :
- GALLIER Romane :
- GAMBRO Antoine :
- GUERRY Lucas :
- HOMBERG Nicolas : file
- LACHARTRE Denis et SAVARY Rémi : file Les points sont répartis équitablement entre les deux…
- LAW Christopher :
- LEMAIRE Timothée : file
- LESAGE Lucas : file
- MOREAU Gwenaël : file
- NASSIK : file
- PELLICER Marion :
- ROCHER Lambert :
- RIVOAL Alice :
- ROUQUIER : pas de fichier joint
- SIEST Damien et VEGREVILLE : file
- TURRIN Vincent : file
- VIAL-GRELIER Aymeric : file
- ZENNOUCHE Douria :
- FU Quian Quian : file
Sitemap
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 de0
à(i-1)
car le-1
est appliqué à l'ensemble du tableau1: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 simplementl[i]=1
? - La fonction
crealist
(qui renvoie un tableau d'ailleurs), aurait pu plus simplement s'écrirec(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.
- Pourquoi avoir caché les appels à vos fonctions ? La fonction
- 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.
- Ne mettez pas les
- 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 paspdf_document
pouroutput
…- 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 pasword_document
pouroutput
… 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 exemplec(rep(2,Bleu), rep(0,Marron, rep(1, Pop-Bleu-Marron)))
… - Utilisez les listes ou les data frames pour renvoyer des objets complexes.
- Wow, le code de
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.
- Aouch! Écrire
- 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 exemplec(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 simplesample(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'écrirec(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 …
- Plus simple pour
- 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 …
- Pas bête votre pie chart et l'idée de regarder la réparition
moyenne au bout de
- 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 fonctionrep
… - 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
etbb
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é!
- Pour
- 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 seulementi
. - Le reste de vos intuitions/expériences est bien. Jouer sur
P
eti
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 augmenterN
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 écrire1:(P-2)
. Ça a des conséquences dramatiques car vous faites des choses du genrepop[-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 ?…
- Utilisez
- 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 deifelse
? Pareil pour
pc
, il faut utiliser les fonctionssum
oulength
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 }
- Le code commençait bien. Pourquoi n'avez-vous pas vectorisé la
fonction
- 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'écritlength(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
etb
au lieu de le faire avant (pire, il est à l'extérieur de la boucle suri
).
- 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
, etN=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 duif
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.