Je ne sais pas comment ces complots sont appelés et j'ai donc donné à cette question un titre stupide.
Disons que j'ai un ensemble de données ordonné comme suit
4253 4262 4270 4383 4394 4476 4635 ...
Chaque numéro correspond au nombre de publications qu'un certain utilisateur a contribué à un site Web. J'étudie empiriquement le phénomène "d'inégalité de participation" tel que défini ici .
Afin de le rendre facile à saisir, je voudrais produire un graphique qui permet au lecteur de déduire rapidement des déclarations telles que "10% des utilisateurs contribuent 50% des données". Cela devrait probablement ressembler à ce croquis de peinture certes assez moche:
Je n'ai aucune idée de comment cela s'appelle donc je ne sais pas où chercher. De plus, si quelqu'un avait une implémentation R
, ce serait génial.
la source
ecdf
enR
un début. Le terme est «fonction de distribution cumulative empirique». Vous pourriez également être intéressé par les "diagrammes de probabilité" et les "diagrammes QQ": ce sont des versions de l'ECDF montrant les données sur différentes échelles (non linéaires).ecdf
et je l'ai déjà utilisé, mais de manière "classique", l'axe des x montre le nombre de publications et l'axe des y leur probabilité. Je ne sais pas comment faire quelque chose comme ci-dessus.Réponses:
Si vous voulez le faire simplement avec les
R
commandes de base , les codes suivants peuvent vous aider.Au début, vous lisez les données.
Ensuite, vous pouvez voir la contribution de chaque utilisateur.
Vous pouvez également voir combien les deux, trois, quatre, ..., sept premières personnes contribuent.
Enfin, vous pouvez obtenir votre tracé souhaité (en proportions dans les deux axes) par les commandes suivantes:
J'ai étiqueté les axes comme vous le vouliez. Il peut vous donner une idée claire du pourcentage de données fournies par une certaine proportion de personnes.
la source
J'ai trouvé un moyen de visualiser rapidement la courbe de Lorenz avec
ggplot2
, résultant en un graphique plus esthétique et plus facile à interpréter. Pour cette dernière raison, j'ai reproduit la courbe de Lorenz sur la ligne diagonale, ce qui donne une forme plus intuitive, si vous me le demandez. Il contient également des lignes d'annotation qui devraient faciliter l'explication de l'intrigue (par exemple "Les 5% des utilisateurs les plus contributeurs représentent 50% des données"). Attention: trouver le bon endroit pour la ligne d'annotation utilise une heuristique assez idiote et peut ne pas fonctionner avec un ensemble de données plus petit.Exemples de données:
Code:
la source
Deux autres façons de le faire alors que je travaillais récemment à ce sujet pour les essais cliniques de vaccins:
1.Utilisez Hmisc Ecdf. Ceci est simple et le trace bien que peu difficile à comprendre les détails sur la modification des différents éléments du graphique.
2.Calculez la distribution cumulative, puis 1-cumulatif est le cumulatif inverse. Tracez l'inverse en utilisant ggplot2 en utilisant geom_step si vous aimez une fonction pas à pas dans le graphique. La fonction ci-dessous utiliserait ecdf de base r pour vous donner une distribution cumulative puis 1-cumulative:
dans le rcdf ci-dessus est une fonction définie par l'utilisateur définie en utilisant ecdf.
la source