Una buena forma de mostrar muchos datos gráficamente

15

Estoy trabajando en un proyecto que involucra 14 variables y 345,000 observaciones para datos de vivienda (cosas como año de construcción, pies cuadrados, precio de venta, condado de residencia, etc.). Me preocupa tratar de encontrar buenas técnicas gráficas y bibliotecas R que contengan buenas técnicas de trazado.

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

¿Qué otros paquetes recomendarían las personas para mostrar una gran cantidad de variables numéricas o factorizadas de forma clara, pulida y, lo más importante, sucinta?

Christopher Aden
fuente
"claro, pulido y, lo más importante, sucinto" Me suena como ggplot2.
Brandon Bertelsen
1
Estoy buscando no solo las bibliotecas R, sino también cualquier tipo específico de gráficos. Mi conocimiento de los gráficos se limita a la dispersión, la caja, el qq, los histogramas, los violines, las estimaciones de densidad del núcleo, etc. Cualquier gráfico un poco más oscuro que pueda revelar más acerca de los datos de lo que sería fantástico.
Christopher Aden
2
coordenadas paralelas suena como otra para mencionar. También los métodos de reducción de dimensionalidad pueden ser útiles.
Tal Galili

Respuestas:

13

El mejor "gráfico" es tan obvio que nadie lo ha mencionado todavía: hacer mapas. Los datos de la vivienda dependen fundamentalmente de la ubicación espacial (según la antigua sierra sobre bienes raíces), por lo que lo primero que debe hacerse es hacer un mapa detallado y claro de cada variable. Hacer esto bien con un tercio de un millón de puntos realmente requiere un SIG de fuerza industrial, que puede hacer un trabajo corto del proceso. Después de eso, tiene sentido continuar y hacer diagramas de probabilidad y diagramas de caja para explorar distribuciones univariadas, y trazar matrices de diagramas de dispersión y diagramas de caja esquemáticos errantes, etc., para explorar dependencias, pero los mapas sugerirán inmediatamente qué explorar, cómo modelar el relaciones de datos y cómo dividir los datos geográficamente en subconjuntos significativos.

whuber
fuente
¡Gran idea! Ya tengo latitudes y longitudes de todos los puntos de datos, por lo que tal tarea sería relativamente elemental. Estaba pensando que la biblioteca de mapas sería un buen camino, a menos que haya algo mejor.
Christopher Aden
2
@Christopher También puede hacer esto con ggplot2(especialmente si no necesita trazar los límites del país), had.co.nz/ggplot2/coord_map.html . De lo contrario, maps, gmapsson mejores. También hay GeoXpuna interfaz R para GRASS. Por cierto, Mondrian tiene un complemento para datos geográficos :)
chl
Asignar una mejor respuesta puede ser difícil cuando hay varias sugerencias geniales, pero creo que esta es la dirección correcta, teniendo en cuenta "sucinto". Voy a probar ggplot2 y echar un vistazo a mapas, GeoXp y Mondrian. ¡Gracias por la idea de graficar espacialmente!
Christopher Aden
Algunas publicaciones interesantes sobre mapas blog.revolutionanalytics.com/2012/07/… stevendkay.wordpress.com/2010/04/21/…
Chris Beeley
He tenido buen éxito con lattice's levelploty contourplot. El paquete fieldstiene algunas características agradables, quiltplotque incluyen lo que es bueno si sus datos no están estrictamente en una cuadrícula. También tiene una buena función de spline de placa delgada Tpspara suavizar los datos no cuadriculados en una cuadrícula. En cuanto al software SIG dedicado, GRASS de alguna manera nunca tiene sentido para mí, prefiero QGIS.
Wayne
6

Recomiendo echar un vistazo a GGobi , que también tiene una interfaz R, al menos con fines exploratorios. Tiene una serie de pantallas gráficas especialmente útiles para manejar un gran número de observaciones y variables y para vincularlas. Es posible que desee comenzar viendo algunos de los videos en la sección "Ver una demostración" en la página de Learn GGobi .

Actualizar

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

  • DescribeDisplay "Paquete R que proporciona una forma de recrear gráficos ggobi en R"
  • clusterfly "Explore resultados de agrupamiento en altas dimensiones"
  • rggobi "Paquete R que proporciona una interfaz fácil con GGobi"
ars
fuente
1
@ars Agreguemos las herramientas R de Hadley para mejorar la experiencia de GGobi, por ejemplo, DescribeDisplayy clusterfly.
chl
Hola, como escribí en mi respuesta: mi experiencia con ggobi es que no maneja bien grandes conjuntos de datos. ¿Tienes otra experiencia con eso?
Tal Galili
@Tal El problema proviene de no confiar en el glifo para la visualización / representación en pantalla, que es común a los gráficos de base R. Esto se discutió en la última conferencia DSC ( j.mp/bpOhBH ). En realidad, hay un proyecto en curso con Qt como back-end y un nuevo puerto de GGobi para mejorar la visualización interactiva de grandes conjuntos de datos.
chl
1
@Tal: Mi experiencia es que es bastante lento al actualizar / repintar las vistas, por ejemplo, al agregar una variable o arrastrar para reorganizar las pantallas en el PCP. Aún así, es utilizable, aunque no tan interactivo como se anuncia con grandes datos. @chl: Eso es realmente bueno saberlo, gracias!
ars
1
@ars @Tal Aquí están los enlaces en la interfaz Qt para R ( j.mp/d1AJp7 ) y GGobi ( j.mp/cUOvfp ). ¡Vea también el repositorio Hadith's Github!
chl
6

Siento que en realidad estás haciendo dos preguntas: 1) qué tipos de visualizaciones usar y 2) qué paquete R puede producirlas.

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

  • Si tiene muchas variables numéricas, es posible que desee utilizar una matriz de diagrama de dispersión (eche un vistazo aquí )
  • Si tiene muchas variables de factores, es posible que desee utilizar una matriz de diagrama de dispersión para los factores (eche un vistazo aquí )
  • También se puede ir con la realización de unas coordenadas paralelas no son varias maneras de hacerlo en R.
  • Para una gama más amplia de instalaciones gráficas en R, eche un vistazo a la vista de tareas de gráficos .

Ahora con respecto 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 ese caso, es posible que desee centrarse en las instalaciones de gráficos de base R, o muestrear sus datos y utilizar todas las otras herramientas. O puede esperar que las personas que desarrollan iplots extreme (o Acinonyx ) lleguen a una etapa de lanzamiento avanzado.

Tal Galili
fuente
Gracias por los enlaces sobre rflowcyty Acinonyx.
chl
Por cierto, rflowcytha quedado en desuso con versiones recientes de Bioconductor, ahora se recomienda su uso flowViz. De todos modos, ambos confían lattice.
chl
Respuesta muy completa, Tal! El tiempo de generación de la trama no debería ser un gran problema. He estado haciendo la mayoría de mis gráficos con el paquete base, y la cuestión de hacer que los gráficos se vean mejor fue cuando decidí usar un gráfico para el papel. Había considerado usar una matriz de diagrama de dispersión para las variables numéricas, pero dado que 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ía tendencias generales, pero con ~ 8 numéricos variables, un SPM 8x8 está un poco desordenado.
Christopher Aden
3

Mondrian proporciona características interactivas y maneja conjuntos de datos bastante grandes (sin embargo, está en Java).

Paraview incluye visualización 2D / 3D. caracteristicas.

chl
fuente
Gracias por las dos nuevas bibliotecas. Mi principal conflicto con estos dos es que estoy enviando mi informe a través de una copia impresa, por lo que es posible que los gráficos interactivos no se usen por completo. Los gráficos de Mondrian se ven bastante complejos. Lo echaré un vistazo.
Christopher Aden
@Christopher Para Mondrian, tiene la versión R "equivalente" a través iplotsde @Tal. Acerca de Paraview, tiene la opción de guardar una captura de pantalla de su visualización. DescribeDisplayes el camino a seguir para exportar visualización dinámica desde GGobi, cran.r-project.org/web/packages/DescribeDisplay/index.html .
chl
-3

Me gustaría llamar su atención, Coordenadas paralelas: geometría visual multidimensional y sus aplicaciones , que contiene los últimos avances y aplicaciones en el 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 para el control del tráfico aéreo (Evitación automática de colisiones - 3 patentes de EE. UU.), Minería de datos multivariada (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 Datos.

Alfred Inselberg
fuente
55
Hola Alfred, gracias por unirte al sitio, sin embargo, esto es un poco promocional. ¿Quizás tenga un ejemplo similar al conjunto de datos del OP (14 variables y 345,000 observaciones) en el que puede proporcionar una imagen y describir / demostrar cómo podrían ser útiles las coordenadas paralelas? Muchos de los gráficos de coordenadas paralelas estáticas que he visto con tantas observaciones tienden a parecerse a los espaguetis en un plato, aunque sospecho que tiene una mejor idea de cómo dar sentido a los datos de N tan grandes.
Andy W
Hola Andy, no tengo un ejemplo con tantas observaciones. En
Alfred Inselberg
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 aproximadamente 800 variables y 10,000 observaciones en una red telefónica celular para descubrir fallas "misteriosas". Usando los clasificadores por etapas y con interactividad, se encontraron las 11 variables responsables y rastreando hacia atrás en el tiempo, se detectó una actividad inusual en la red 3-4 antes de notar la falla.
Alfred Inselberg