Lachartre Denis
Savary Remi


DM Probabilités et Simulation : Evolution de la couleur des yeux au fil des ages


Question 1 : intution
Nous sommes dans le cas d’une petite population. Ici notre intuition était qu’au bout d’un moment, l’un des allèles va prendre le dessus sur l’autre, et le second aura tendance à disparaitre. Cette disparition dépendra du nombre de personnes ayant les yeux bleus au début : plus on aura de personnes aux yeux bleus à P(0), plus on aura de chances pour que l’allèle B prenne le dessus sur l’allele M (et vice-versa).

Question 2 : intuition
On s’intéresse maintenant à de grandes populations. On pense qu’on observera le même comportement que pour la question 1, mais que la dominance d’un allèle sur l’autre mettra beaucoup plus de temps à apparaitre.

Question 3 : intuition
L’ajout à chaque génération de population de deux individus, un avec des allèles MM et l’autre avec des allèles BB va empécher la disparition d’un des allèles. C’est à dire que le nombre de personnes ayant les yeux bleux ne vas pas se stabiliser, et va toujours fluctuer.

 

Question 1 :

Voici notre code pour simuler le comportement d’une petite population ainsi que nos résultats pour cet exemple : (P = population)

set.seed(2)
e=10 #nb d'echantillon
I=20 #horizon
P=20 #population
BBinit=5
MMinit=5
nombreYeuxBleus <- matrix(nrow=e, ncol=I)
nombreYeuxBleus[,1] <- BBinit
nombreYeuxMarrons <- matrix(nrow=e, ncol=I)
nombreYeuxMarrons[,1] <- BBinit
for(n in 1:e){
  BB=BBinit
  MM=MMinit
  for(i in 2:I){
    BBsuivant=0
    MMsuivant=0
    R1=sample(1:(2*P),P) #on tire deux alleles au sort parmis les 2*P présentes
    R2=sample(1:(2*P),P)
    
    for(j in 1:(P)){
      if ((R1[j] <= 2*BB+(P-BB-MM)) && (R2[j] <= 2*BB+(P-BB-MM))){   #2*BB+(P-BB-MM) correspond au nombre d'alleles bleus
        BBsuivant<-BBsuivant+1
      }
      if ((R1[j] > 2*BB+(P-BB-MM)) && (R2[j] > 2*BB+(P-BB-MM))){   #2*MM+(P-BB-MM) correspond au nombre d'alleles marrons
        MMsuivant<-MMsuivant+1
      }
    }
    nombreYeuxBleus[n,i]<-BBsuivant
    nombreYeuxMarrons[n,i]<-MMsuivant
    BB<-BBsuivant
    MM<-MMsuivant
  }
}

#on en fait la moyenne:
NbYeuxBleus<-rep(0.0,I)
NbYeuxMarrons<-rep(0.0,I)
for(i in 1:I){
  a=0
  b=0
  for(j in 1:e){
    a<-a+nombreYeuxBleus[j,i]
    b<-b+nombreYeuxMarrons[j,i]
  }
  NbYeuxBleus[i]<-a/e
  NbYeuxMarrons[i]<-b/e
}
generations<-1:I
plot(generations,NbYeuxBleus)

plot(NbYeuxMarrons/P*100,NbYeuxBleus/P*100)

On obtient des résultats très disparates, on ne peut pas tirer de conclusion avec un univers aussi petit. On augmente désormais sa taille : Remarque : On néglige le fait qu’on peut tirer deux allèles d’une même personne.

 

On observe tout d’abord que le nombre de personnes ayant 2 allèles bleus et 2 allèles marrons évoluent de la même façon. Cela est représenté par la ligne droite du deuxième graphique.
Ensuite, on remarque que le nombre d’yeux bleus augmente avec le temps et tend vers une certaine valeur (ici 10 sur 20 personnes en tout). Cela veut dire que les personnes ayant un allèle de chaque couleur viennent à disparaitre.
Ces premières observations ont été faites avec le même nombre initial d’yeux bleus et marrons. Lorsqu’on change ces parametres initiaux et qu’on met plus de bleus que de marrons, alors la valeur finale ne sera plus de 10 mais sera comprise entre 10 et 20. De même, si on met moins de bleus que de marrons, cette valeur sera comprise entre 0 et 10.

 

Interpretation :
Tout d’abord, chaque simulation (on en fait ici 300) a deux points stables : 0 et 20 yeux bleus. Lorsqu’une simulation atteint ce résultat, il y reste. Ensuite, notre courbe représente une moyenne de ces 300 simulations.
Lorsqu’on tombe sur une valeur finale de 10 yeux bleus, cela signifie que la moitié des simulations n’ont que des yeux bleus et l’autre moitié, que des yeux marrons.

 


Question 2 :

On augmente la taille de la population. On passe de 20 à 2000 :

Sur cette plus grande population, on constate que la proportion des personnes ayant les yeux bleus se stabilise vite à 1/4 de la population. Il en va de même pour la proportion des personnes ayant deux allèles M.
Cela provient du fait que les valeurs “stables” sont 0 et 2000, et qu’elles sont beaucoup moins atteintes lors des simulations par rapport à la question 1.

 


Question 3 :

On reprend une taille de 20 personnes et on ajoute la condition suivante : à chaque création de génération, il y a au moins un BB et un MM.

set.seed(2)
e=300 #nb d'echantillon
I=300 #horizon
P=20 #population
BBinit=4
MMinit=12
nombreYeuxBleus <- matrix(nrow=e, ncol=I)
nombreYeuxBleus[,1] <- BBinit
nombreYeuxMarrons <- matrix(nrow=e, ncol=I)
nombreYeuxMarrons[,1] <- BBinit
for(n in 1:e){
  BB=BBinit
  MM=MMinit
  for(i in 2:I){
    BBsuivant=1
    MMsuivant=1
    R1=sample(1:(2*P),P-2) #on tire deux alleles au sort parmis les 2*P présentes
    R2=sample(1:(2*P),P-2)
    
    for(j in 1:(P-2)){
      if ((R1[j] <= 2*BB+(P-BB-MM)) && (R2[j] <= 2*BB+(P-BB-MM))){   #2*BB+(P-BB-MM) correspond au nombre d'alleles bleus
        BBsuivant<-BBsuivant+1
      }
      if ((R1[j] > 2*BB+(P-BB-MM)) && (R2[j] > 2*BB+(P-BB-MM))){   #2*MM+(P-BB-MM) correspond au nombre d'alleles marrons
        MMsuivant<-MMsuivant+1
      }
    }
    nombreYeuxBleus[n,i]<-BBsuivant
    nombreYeuxMarrons[n,i]<-MMsuivant
    BB<-BBsuivant
    MM<-MMsuivant
  }
}

#on en fait la moyenne:
NbYeuxBleus<-rep(0.0,I)
NbYeuxMarrons<-rep(0.0,I)
for(i in 1:I){
  a=0
  b=0
  for(j in 1:e){
    a<-a+nombreYeuxBleus[j,i]
    b<-b+nombreYeuxMarrons[j,i]
  }
  NbYeuxBleus[i]<-a/e
  NbYeuxMarrons[i]<-b/e
}
generations<-1:I
plot(generations,NbYeuxBleus)

plot(NbYeuxMarrons/P*100,NbYeuxBleus/P*100)

 

Observation :
Nous avons remarqué que peu importe les données initiales P0, on obtient les mêmes conclusions:
Le taux de personnes BB et celui de personnes MM tend vers la même valeur, 28% de la population.

 


Question 4 :

Finalement, les résultats sont bien plus compliqués que nous le pensions. Certains éléments ont pourtant étés conformes à nos attentes, comme le fait qu’une allèle allait prendre le dessus à la question 1.

Pour la question 2, nous nous attendions à voir des fluctuations, et on constate qu’au contraire on obtient rapidemment un comportement stable, avec environ 1/4 de la population ayant les yeux bleus.