No sé cómo se llaman tales tramas y, por lo tanto, le di a esta pregunta un título estúpido.
Digamos que tengo un conjunto de datos ordenado de la siguiente manera
4253 4262 4270 4383 4394 4476 4635 ...
Cada número corresponde a la cantidad de publicaciones que un determinado usuario contribuyó a un sitio web. Estoy investigando empíricamente el fenómeno de "desigualdad de participación" como se define aquí .
Para facilitar su comprensión, me gustaría producir un gráfico que permita al lector deducir rápidamente declaraciones como "el 10% de los usuarios contribuyen con el 50% de los datos". Probablemente debería parecerse a este boceto de pintura ciertamente bastante malo:
No tengo idea de cómo se llama esto, por lo tanto, no sé dónde buscar. Además, si alguien tuviera una implementación R
, sería genial.
fuente
ecdf
enR
un principio. El término es "función empírica de distribución acumulativa". También podría interesarle los "gráficos de probabilidad" y los "gráficos QQ": son versiones del ECDF que muestran los datos en diferentes escalas (no lineales).ecdf
y lo he usado antes, pero en la forma "clásica" que el eje x muestra el número de contabilizaciones y el eje y su probabilidad. No sé cómo hacer algo como arriba.Respuestas:
Si desea hacerlo simplemente con los
R
comandos básicos , los siguientes códigos pueden ayudar.Al principio lees los datos.
Entonces puedes ver la contribución de cada usuario.
También puede ver cuánto contribuyen las primeras dos, tres, cuatro, ..., siete personas.
Finalmente, puede obtener su diagrama deseado (en proporciones en ambos ejes) mediante los siguientes comandos:
He etiquetado los ejes como quisiste. Puede darle una visión clara sobre la cantidad de datos que aporta una determinada proporción de personas.
fuente
Encontré una manera de visualizar rápidamente la curva de Lorenz
ggplot2
, lo que resultó en un gráfico más estético y más fácil de interpretar. Por esta última razón, reflejé la curva de Lorenz en la línea diagonal que resulta en una forma más intuitiva, si me preguntas. También contiene líneas de anotación que deberían facilitar la explicación de la trama (por ejemplo, "El 5% de los principales contribuyentes constituyen el 50% de los datos"). Atención: encontrar el lugar correcto para la línea de anotación utiliza una heurística bastante idiota y podría no funcionar con un conjunto de datos más pequeño.Datos de ejemplo:
Código:
fuente
Dos formas más de hacer esto, ya que recientemente estaba trabajando en esto para ensayos clínicos de vacunas:
1.Utilice Hmisc Ecdf. Esto es sencillo y lo traza, aunque es un poco difícil descubrir detalles sobre cómo cambiar los diferentes elementos del gráfico.
2.Calcule la distribución acumulativa y luego 1-acumulativo es acumulativo inverso. Trace el reverso usando ggplot2 usando geom_step si desea una función de paso en el gráfico. La siguiente función usaría ecdf de base r para darle una distribución acumulativa y luego 1-acumulativa:
en el anterior rcdf es una función definida por el usuario definida usando ecdf.
fuente