Retour haut

La croissance des villes est un phénomène complexe et ce sujet propose d'en étudier un modéle relativement simple. Pour cela, nous allons nous intéresser à la dynamique suivante.
Considérons deux villes dont les populations à l'instant 't' sont respectivement \( N_1(t) \) et \( N_2(t) \). A l'instant 't+1', un ouvel immigrant choisit d'émigrer vers la ville 1 avec une probabilité \( P(t)=\frac{N_1(t)}{N_1(t) + N_2(t)} \). \( P(t) \) est donc une variable aléatoire que nous allons étudier à l'aide de simulations.

Question 0: Décrire votre intuition

  1. Premières observations de la dynamique
    Nous avons pensé à trois variations possibles pour p(t):
    • Dans un premier cas, tous les habitants vont se diriger soit vers la ville 1, soit vers la ville 2. On va donc avoir une courbe ressemblant à un logarithme
    • Dans un dexiéme cas, chaque personne va à son tour dans le ville 1 et dans la ville 2. On peut donc penser que la courbe de \( P(t) \) va se raprocher le ½
  2. Loi statistique de la limite
    On va considérer que, si une personne se dirige vers la ville n1, c'est un succés. Et au contraire si elle se dirige vers la ville n2 on ce trouve en situation d'echec.
    On ce trouve donc avec une loi binomiale
  3. Influence de la répartition initiale
    Je pense que la répartition initiale va changer la phisionomie de la loi. Plus les villes ont un grand nombre de personne (de maniére égale) plus la limite se raprochera de ½. De plus, un ecart entre deux villes va etre amplifier.

Question 1: Premières observations de la dynamique

set.seed(1)

pop_dynamique <- function(n1 = 1, n2 = 1, nb = 10) {

    nv1 = c()
    nv2 = c()

    nv1 <- c(nv1, n1)
    nv2 <- c(nv2, n2)

    for (i in 1:nb) {
        if (runif(1) < (n1/(n1 + n2))) {
            n1 <- n1 + 1
        } else {
            n2 <- n2 + 1
        }

        nv1 <- c(nv1, n1)
        nv2 <- c(nv2, n2)
    }

    ratio = nv1/(nv1 + nv2)

}

On va ensuite creer une fonction trajectoire qui appel n fois la fonction pop_dynamique. Puis grace à plop on affiche toutes ces courbes dans un même graphique.

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.0.2

trajectoire <- function(n = 10, n1 = 1, n2 = 1, nbf = 1000) {
    ylim1 <- c(0, 1)
    par(new = F)
    for (i in 1:n) {
        trajectoires = pop_dynamique(n1, n2, nbf)

        plot(trajectoires, type = "l", col = i, ylim = ylim1)
        line(trajectoires)
        par(new = T)
    }
    par(new = F)

}

trajectoire(10)

plot of chunk unnamed-chunk-2

On arrive a mettre en evidence un même type de courbe dans deux ensembles de valeurs.Les courbes se situent soit plus proche de 0 soit plus proche de 1 dans une certaine limite. Il faut aussi rapeller que l'on a une situation ou les habitants sont équi-répartis.

Question 2: Loi statistique de la limite

limite <- function(nbtour = 10, n1 = 1, n2 = 1, nbf = 1000) {
    count = c()
    for (i in 1:nbtour) {
        p = pop_dynamique(n1, n2, nbf)
        count <- c(count, p[nbf])
    }
    ratio = count
}



hist(limite(2000, 1, 1, 1000), breaks = 100)

plot of chunk unnamed-chunk-3

Aprés avoir tracé l'histogramme de la limite, on constate qu'il s'agit d'une loi uniforme. En effet, d'aprés l'histogramme, les fréquences d'apparition de chaque valeur de la limite sont similaires.

Question 3: Influence de la répartition initiale

hist(limite(1000, 10, 10, 1000), breaks = 100)

plot of chunk unnamed-chunk-4

On se rend compte que la loi proche de l'uniforme se brise sur les extremes. L'on se rapproche d'une loi normal centré sur 0.5.

hist(limite(1000, 100, 100, 1000), breaks = 100)

plot of chunk unnamed-chunk-5

En augmentant encore la population initial pour les deux villes, la loi normale augmente en amplitude en reduisant sa periode. Il semble qu'en augmentant les populations initiale tout en gardant une proportion 50-50, il y ai de plus en plus de chance que les deux villes ai la meme population final.

hist(limite(1000, 1, 10, 1000), breaks = 100)

plot of chunk unnamed-chunk-6

Dans le cas d'un desequilibre dans l'etat initial. On observe une grande augmentation de la population finale dans la ville ayant la plus grande population initial.

hist(limite(1000, 1, 100, 1000), breaks = 100)

plot of chunk unnamed-chunk-7

Augmenter encore cet ecart confirme d'autant plus cette tendance.

Question 4:

Dans l'ensemble, les résultats obtenus lors de ce tp sont conformes à notre intuitions initiale. Nous pensions que la valeur de \( P(t) \) allait ateindre 1 ou 0 ou ½ mais il semblerai que les ecarts soient plus subtils. En effet, les valeurs obtenues sont plus proches de 0.7 ou de 0.2.
Nous n'avions pas pensé que de changer les valeurs initiales du nombre d'habitant ait un aussi gros impact sur les lois.
A notre avis, il n'y manque des variables aléatoires. On peut en effet penser qu'il n'y as pas que la taille de la ville qui influence le choix d'émigration. On peut ajouter la situation géographique, le situation economique et plein d'autre facteurs. Dans l'ensembles ces nouveaux critéres ne vont qu'affiner le resultat deja obtenu.