L'astuce du jour: produire une courbe de Bonferroni

Aller en bas

L'astuce du jour: produire une courbe de Bonferroni

Message  flbresson le Mar 10 Mai - 11:01

La courbe de Bonferroni est un des multiples outils disponibles pour étudier les inégalités de revenus. Comme la courbe de Lorenz, elle présente en abscisse les centiles de population ordonnés par niveau croissant de revenus. Pour les p% les plus pauvres de la population, elle indique alors le ratio du revenu moyen de ce groupe par rapport au revenu moyen pour l'ensemble de la population. Voici du code pour produire les coordonnées d'une courbe de Bonferroni et la tracer:
Code:
Bc   <-   function (x, n = rep(1, length(x)), plot = FALSE) {
    k <- length(x)
    o <- order(x)
    x <- x[o]
    n <- n[o]
    x <- n * x
    p <- cumsum(n)/sum(n)
    B <- (cumsum(x)/cumsum(n))/mean(x)
    p <- c(0, p)
    B <- c(0, B)
    Bc <- list(p, B)
    names(Bc) <- c("p", "B")
    class(Bc) <- "Bc"
    if (plot)
        plot(Bc)
    Bc
}

plot.Bc   <-   function (x, lwd = 2, xlab = "p", ylab = "B(p)", main = "Bonferroni curve", las = 1, ...) {
    plot(x$p, x$B, type = "l", main = main, lwd = lwd, xlab = xlab,
        ylab = ylab, xaxs = "i", yaxs = "i", las = las, ...)
    abline(0,1)
}

Pour la fonction Bc, x désigne le vecteur de revenus et n (optionnel) le vecteur de fréquence de chaque niveau de revenu présent dans x dans la population. Le code est directement inspiré de la fonction Lc pour les courbes de Lorenz du paquet ineq.
avatar
flbresson

Messages : 360
Date d'inscription : 19/11/2009
Age : 39
Localisation : Clermont-Ferrand

Voir le profil de l'utilisateur http://sites.google.com/site/flbresson2/

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum