15 votos

Una buena manera de mostrar muchos datos gráficamente

Estoy trabajando en un proyecto que incluye 14 variables y 345.000 observaciones de datos sobre viviendas (cosas como el año de construcción, los metros cuadrados, el precio de venta, el condado de residencia, etc.). Me preocupa tratar de encontrar buenas técnicas gráficas y bibliotecas de R que contengan buenas técnicas de trazado.

Ya estoy viendo que en ggplot y lattice funcionará bien, y estoy pensando en hacer gráficos de violín para algunas de mis variables numéricas.

¿Qué otros paquetes recomendaría la gente para mostrar una gran cantidad de variables numéricas o de tipo factorial de forma clara, pulida y, sobre todo, sucinta?

0 votos

"de manera clara, pulida y, sobre todo, sucinta" Me suena a ggplot2.

1 votos

Estoy buscando no sólo las bibliotecas de R, sino también cualquier tipo específico de gráficos. Mi conocimiento de los gráficos se limita a los de dispersión, caja, qq, histogramas, violines, estimaciones de densidad del núcleo, etc. Cualquier gráfico un poco más oscuro que pueda revelar más sobre los datos que esos sería fantástico.

2 votos

Las coordenadas paralelas son otra de las que hay que mencionar. También podrían ser útiles los métodos de reducción de la dimensionalidad.

13voto

jldugger Puntos 7490

El mejor "gráfico" es tan obvio que nadie lo ha mencionado todavía: hacer mapas. Los datos de las viviendas dependen fundamentalmente de la ubicación espacial (según el viejo dicho sobre los bienes inmuebles), así que lo primero que hay que hacer es un mapa claro y detallado de cada variable. Para hacerlo bien con un tercio de millón de puntos se necesita un SIG de tipo industrial, que puede hacer el proceso en poco tiempo. Después tiene sentido seguir haciendo gráficos de probabilidad y diagramas de caja para explorar las distribuciones univariantes, y trazar matrices de dispersión y diagramas de caja esquemáticos, etc., para explorar las dependencias, pero los mapas sugerirán inmediatamente qué explorar, cómo modelar las relaciones de los datos y cómo dividir los datos geográficamente en subconjuntos significativos.

0 votos

Una gran idea. Ya tengo las latitudes y longitudes de todos los puntos de datos, así que esa tarea sería relativamente elemental. Estaba pensando que la biblioteca de mapas sería una buena manera de hacerlo, a menos que haya algo mejor.

2 votos

@Christopher También puedes hacerlo con ggplot2 (sobre todo si no es necesario trazar las fronteras de los países), had.co.nz/ggplot2/coord_map.html . Por lo demás, maps , gmaps son mejores. También hay GeoXp y una interfaz de R para GRASS. Por cierto, Mondrian tiene un plugin para datos geográficos :)

0 votos

Asignar una mejor respuesta puede ser difícil cuando hay varias sugerencias estupendas, pero creo que esta es la dirección correcta, teniendo en cuenta lo "sucinto". Le daré una oportunidad a ggplot2, y echaré un vistazo a maps, GeoXp y Mondrian. ¡Gracias por la idea de graficar espacialmente!

6voto

Omar Kooheji Puntos 384

Le recomiendo que eche un vistazo a GGobi que también tiene una interfaz R, al menos para fines de exploración. Dispone de una serie de visualizaciones gráficas especialmente útiles para tratar un gran número de observaciones y variables y para relacionarlas entre sí. Puede empezar por ver algunos de los vídeos de la sección "Watch a demo" de la página web Aprender GGobi página.

Actualización

Enlaces a las herramientas de Hadley Wickham para GGobi, como sugiere chl en los comentarios:

  • DescribeDisplay "Paquete de R que proporciona una forma de recrear los gráficos de ggobi en R"
  • clusterfly "Explorar los resultados de la agrupación en altas dimensiones"
  • rggobi "Paquete R que proporciona una interfaz sencilla con GGobi"

1 votos

@ars Añadamos las herramientas R de Hadley para mejorar la experiencia de GGobi, por ejemplo DescribeDisplay y clusterfly .

0 votos

Hola ars, como escribí en mi respuesta, mi experiencia con ggobi es que no maneja bien los conjuntos de datos grandes. ¿Tienes otra experiencia al respecto?

0 votos

@Tal El problema viene de no depender del glifo para la visualización/renderización en pantalla, que es común a los gráficos de base de R. Esto se discutió en la última conferencia de DSC ( j.mp/bpOhBH ). En realidad, hay un proyecto en curso con Qt como backend, y un nuevo puerto de GGobi, para mejorar la visualización interactiva de grandes conjuntos de datos.

6voto

Scott Cowan Puntos 1564

Creo que en realidad está haciendo dos preguntas: 1) qué tipo de visualizaciones utilizar y 2) qué paquete de R puede producirlas.

En el caso de qué tipo de gráfico utilizar, hay muchos, y depende de tus necesidades (por ejemplo: tipos de variables - numéricas, factoriales, geográficas, etc., y el tipo de conexiones que te interesa mostrar):

  • Si tiene muchas variables numéricas, es posible que desee utilizar una matriz de dispersión (eche un vistazo aquí )
  • Si tiene muchas variables factoriales, puede utilizar una matriz de dispersión para los factores (eche un vistazo aquí )
  • También puede ir con hacer algo de Coordenadas paralelas allí son varios formas para hacerlo en R.
  • Para obtener una gama más amplia de facilidades gráficas en R, eche un vistazo al vista de la tarea de gráficos .

Ahora en cuanto a cómo hacerlo. Un problema con muchos puntos de datos es el tiempo hasta que se crea el gráfico. ggplot2, iplots, ggobi no son muy buenos para demasiados puntos de datos (al menos desde mi experiencia). En este caso, es posible que desee centrarse en las instalaciones de gráficos de base de R, o la muestra de sus datos y en que para utilizar todas las otras herramientas. O puedes esperar que la gente que desarrolla iplots extreme (o Acinonyx ) llegaría a una fase de lanzamiento anticipada.

0 votos

Gracias por los enlaces sobre rflowcyt y Acinonyx.

0 votos

BTW, rflowcyt ha quedado obsoleto con las últimas versiones de Bioconductor, ahora se recomienda utilizar flowViz . De todos modos, ambos se basan en lattice .

0 votos

Una respuesta muy completa, Tal. El tiempo de generación de gráficos no debería ser un gran problema. He estado haciendo la mayor parte de mis gráficos con el paquete base, y la cuestión de hacer que los gráficos se vean mejor era para cuando decida usar un gráfico para el papel. Había considerado usar una matriz de dispersión para las variables numéricas, pero como muchas de ellas son de diferentes unidades (algunas están en dólares, otras en pies cuadrados), la única información valiosa que obtendría serían las tendencias generales, pero con ~8 variables numéricas, un SPM de 8x8 es un poco desordenado.

3voto

DavLink Puntos 101

Mondrian ofrece funciones interactivas y maneja conjuntos de datos bastante grandes (aunque está en Java).

Paraview incluye funciones de viz. 2D/3D.

0 votos

Gracias por las dos novedosas bibliotecas. Mi principal conflicto con estas dos es que voy a presentar mi informe a través de una copia en papel, por lo que los gráficos interactivos podrían no ser utilizados en su totalidad. Los gráficos de Mondrian parecen bastante complejos. Le echaré un vistazo.

0 votos

@Christopher Para Mondrian, tienes la versión "equivalente" de R a través de iplots citado por @Tal. Sobre Paraview, tienes la opción de guardar una captura de pantalla de tu viz. DescribeDisplay es el camino a seguir para exportar la visualización dinámica de GGobi, cran.r-project.org/web/packages/DescribeDisplay/index.html .

-3voto

Dex Puntos 16

Me gustaría llamar su atención, Coordenadas paralelas: Geometría visual multidimensional y sus aplicaciones que contiene los últimos avances y aplicaciones en este campo.

El libro fue elogiado por Stephen Hawking, entre otros. Las superficies se describen (utilizando la dualidad) por sus vectores normales en sus puntos. Contiene aplicaciones al control del tráfico aéreo (evitación automática de colisiones - 3 patentes en EE.UU.), minería de datos multivariante (en conjuntos de datos reales, algunos con cientos de variables), optimización multiobjetivo, control de procesos, pantallas inteligentes de cuidados intensivos, seguridad, visualización de redes y, recientemente, Big Data.

5 votos

Hola Alfred, gracias por unirte al sitio, aunque esto parece un poco promocional. ¿Quizás tengas un ejemplo similar al conjunto de datos del OP (14 variables y 345.000 observaciones) que puedas ilustrar y describir/demostrar cómo las coordenadas paralelas podrían ser útiles? Muchos de los gráficos estáticos de coordenadas paralelas que he visto con tantas observaciones tienden a parecer espaguetis en un plato, aunque sospecho que usted tiene una mejor visión de cómo dar sentido a unos datos tan grandes.

0 votos

Hola Andy, no tengo un ejemplo con tantas observaciones. En

0 votos

Hola Andy, no tengo un ejemplo con tantas observaciones. La interactividad es esencial para la exploración de datos. Trabajé en un conjunto de datos con unas 800 variables y 10.000 observaciones en una red de telefonía celular para descubrir fallos "misteriosos". Usando los clasificadores por etapas y con interactividad se encontraron las 11 variables responsables y rastreando hacia atrás en el tiempo se detectó actividad no normal en la red 3-4 antes de notar el fallo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X