Un bon moyen d'afficher graphiquement de nombreuses données

15

Je travaille sur un projet qui comprend 14 variables et 345 000 observations pour les données sur le logement (des choses comme l'année de construction, la superficie, le prix vendu, le comté de résidence, etc.). Je cherche à trouver de bonnes techniques graphiques et des bibliothèques R qui contiennent de belles techniques de traçage.

Je vois déjà ce qui fonctionnera bien dans ggplot et lattice, et je pense à faire des tracés de violon pour certaines de mes variables numériques.

Quels autres packages recommanderaient les utilisateurs pour afficher une grande quantité de variables numériques ou factorisées de manière claire, polie et, surtout, succincte?

Christopher Aden
la source
"manière claire, polie et, surtout, succincte" Cela me ressemble à ggplot2.
Brandon Bertelsen
1
Je recherche non seulement les bibliothèques R, mais aussi tous les types spécifiques de graphiques. Ma connaissance des graphiques est limitée à la dispersion, à la boîte, au qq, aux histogrammes, aux violons, aux estimations de densité du noyau, etc. Tout graphique légèrement plus obscur qui peut révéler plus sur les données que ceux serait fantastique.
Christopher Aden
2
les coordonnées parallèles sonnent comme une autre à mentionner. Des méthodes de réduction de la dimensionnalité pourraient également être utiles.
Tal Galili

Réponses:

13

Le meilleur "graphique" est si évident que personne ne l'a encore mentionné: faites des cartes. Les données sur le logement dépendent fondamentalement de la localisation spatiale (selon l'ancienne scie de l'immobilier), donc la toute première chose à faire est de faire une carte claire et détaillée de chaque variable. Pour bien faire cela avec un tiers de million de points, il faut vraiment un SIG de puissance industrielle, ce qui peut rendre le processus court. Après cela, il est logique de continuer et de faire des graphiques de probabilité et des boîtes à moustaches pour explorer des distributions univariées, et à tracer des matrices de nuages ​​de points et des boîtes à moustaches schématiques errantes, etc., pour explorer les dépendances - mais les cartes suggéreront immédiatement ce qu'il faut explorer, comment modéliser le les relations entre les données et comment répartir géographiquement les données en sous-ensembles significatifs.

Whuber
la source
Bonne idée! J'ai déjà des latitudes et des longitudes de tous les points de données, donc une telle tâche serait relativement élémentaire. Je pensais que la bibliothèque de cartes serait une bonne façon de procéder, à moins qu'il y ait quelque chose de mieux.
Christopher Aden
2
@Christopher Vous pouvez également le faire avec ggplot2(en particulier si vous n'avez pas besoin de tracer les frontières des pays), had.co.nz/ggplot2/coord_map.html . Dans le cas contraire, maps, gmapssont mieux. Il y a aussi GeoXpet une interface R pour GRASS. BTW, Mondrian a un plugin pour les données géographiques :)
chl
Attribuer une meilleure réponse peut être difficile lorsqu'il y a plusieurs bonnes suggestions, mais je pense que c'est la bonne direction, en gardant à l'esprit "succinct". Je vais essayer ggplot2 et jeter un œil aux cartes, GeoXp et Mondrian. Merci pour l'idée de représenter graphiquement spatialement!
Christopher Aden
Quelques articles sympas sur les cartes blog.revolutionanalytics.com/2012/07/… stevendkay.wordpress.com/2010/04/21/…
Chris Beeley
J'ai eu un bon succès avec lattice« s levelplotet contourplot. Le paquet fieldsa de belles fonctionnalités, y compris quiltplotce qui est bien si vos données ne sont pas strictement sur une grille. Il a également une belle fonction de spline en plaque mince Tpspour lisser les données non maillées vers une grille. En ce qui concerne les logiciels SIG dédiés, GRASS n'a en quelque sorte jamais de sens pour moi, je préfère QGIS.
Wayne
6

Je recommanderais de jeter un œil à GGobi , qui a également une interface R, au moins à des fins exploratoires. Il dispose d'un certain nombre d'affichages graphiques particulièrement utiles pour traiter un grand nombre d'observations et de variables et pour les relier entre elles. Vous voudrez peut-être commencer par regarder certaines des vidéos dans la section "Regarder une démo" sur la page Apprendre GGobi .

Mise à jour

Liens vers les outils de Hadley Wickham pour GGobi, comme suggéré par chl dans les commentaires:

  • DescribeDisplay "Package R qui fournit un moyen de recréer des graphiques ggobi dans R"
  • clusterfly "Explorez les résultats du clustering dans des dimensions élevées"
  • rggobi "Paquet R qui fournit une interface facile avec GGobi"
ars
la source
1
@ars Ajoutons les outils R de Hadley pour améliorer l'expérience GGobi, par exemple DescribeDisplayet clusterfly.
chl
Bonjour ars, comme je l'ai écrit dans ma réponse - mon expérience avec ggobi est qu'il ne gère pas bien les grands ensembles de données. Avez-vous une autre expérience avec ça?
Tal Galili
@Tal Le problème vient de ne pas s'appuyer sur le glyphe pour l'affichage / le rendu d'écran, qui est commun aux graphiques de base R. Cela a été discuté lors de la dernière conférence DSC ( j.mp/bpOhBH ). En fait, il existe un projet en cours avec Qt comme backend et un nouveau port de GGobi, pour améliorer l'affichage interactif de grands ensembles de données.
chl
1
@Tal: D'après mon expérience, il est assez lent de rafraîchir / repeindre les vues, par exemple lors de l'ajout d'une variable ou du glissement pour réorganiser les affichages dans le PCP. Pourtant, il est utilisable mais pas aussi interactif que annoncé avec de grandes données. @chl: C'est vraiment bon à savoir, merci!
ars
1
@ars @Tal Voici les liens sur l'interface Qt pour R ( j.mp/d1AJp7 ) et GGobi ( j.mp/cUOvfp ). Voir aussi le référentiel Github de Hadley!
chl
6

Je pense que vous posez en fait deux questions: 1) quels types de visualisations utiliser et 2) quel package R peut les produire.

Dans le cas du type de graphique à utiliser, il y en a beaucoup et cela dépend de vos besoins (par exemple: types de variables - numériques, facteurs, géographiques, etc., et le type de connexions que vous êtes intéressé à afficher):

  • Si vous avez de nombreuses variables numériques, vous pouvez utiliser une matrice de nuage de points (regardez ici )
  • Si vous avez de nombreuses variables de facteur, vous voudrez peut-être utiliser une matrice de nuage de points pour les facteurs (regardez ici )
  • Vous pouvez également utiliser des coordonnées parallèles, il existe plusieurs façons de le faire dans R.
  • Pour une gamme plus large de fonctionnalités graphiques dans R, consultez la vue des tâches graphiques .

Maintenant, comment le faire. Un problème avec de nombreux points de données est le temps jusqu'à la création du tracé. ggplot2, iplots, ggobi ne sont pas très bons pour trop de points de données (du moins d'après mon expérience). Dans ce cas, vous souhaiterez peut-être vous concentrer sur les fonctionnalités graphiques de base R, ou échantillonner vos données et utiliser ces autres outils. Ou vous pouvez espérer que les personnes développant des iplots extreme (ou Acinonyx ) arriveront à un stade de sortie avancé.

Tal Galili
la source
Merci pour les liens sur rflowcytet Acinonyx.
chl
BTW, rflowcyta été déconseillé avec les dernières versions de Bioconductor, il est maintenant recommandé de l'utiliser flowViz. Quoi qu'il en soit, les deux comptent sur lattice.
chl
Réponse très complète, Tal! Le temps de génération du tracé ne devrait pas être un gros problème. J'ai fait la plupart de mes graphiques avec le package de base, et le problème de rendre les graphiques plus beaux était quand j'ai décidé d'utiliser un graphique pour le papier. J'avais envisagé d'utiliser une matrice de nuage de points pour les variables numériques, mais comme beaucoup d'entre elles sont d'unités différentes (certaines sont en dollars, d'autres en pieds carrés), les seules informations précieuses que j'obtiendrais seraient les tendances générales, mais avec ~ 8 chiffres variables, un SPM 8x8 est un peu encombré.
Christopher Aden
3

Mondrian fournit des fonctionnalités interactives et gère des ensembles de données assez volumineux (c'est en Java, cependant).

Paraview comprend des informations 2D / 3D. Caractéristiques.

chl
la source
Merci pour les deux nouvelles bibliothèques. Mon principal conflit avec ces deux éléments est que je soumets mon rapport sur papier, de sorte que les graphiques interactifs peuvent ne pas être pleinement utilisés. Les graphismes de Mondrian sont assez complexes. Je vais y jeter un œil.
Christopher Aden
@Christopher Pour Mondrian, vous avez la version "équivalente" de R iplotscitée par @Tal. À propos de Paraview, vous avez la possibilité d'enregistrer une capture d'écran de votre visualisation. DescribeDisplayest le chemin à parcourir pour exporter la visualisation dynamique à partir de GGobi, cran.r-project.org/web/packages/DescribeDisplay/index.html .
chl
-3

Je voudrais attirer votre attention sur les coordonnées parallèles: la géométrie multidimensionnelle visuelle et ses applications , qui contient les dernières percées et applications dans le domaine.

Le livre a été salué entre autres par Stephen Hawking. Les surfaces sont décrites (en utilisant la dualité) par leurs vecteurs normaux en ses points. Il contient des applications pour le contrôle du trafic aérien (évitement automatique des collisions - 3 brevets américains), l'exploration de données multivariée (sur des ensembles de données réels dont certains avec des centaines de variables), l'optimisation multiobjective, le contrôle de processus, les écrans intelligents de soins intensifs, la sécurité, la visualisation réseau et récemment Big Les données.

Alfred Inselberg
la source
5
Salut Alfred, merci d'avoir rejoint le site, cela semble cependant un peu promotionnel. Peut-être avez-vous un exemple similaire à l'ensemble de données du PO (14 variables et 345 000 observations) que vous pouvez fournir une image et décrire / démontrer comment les coordonnées parallèles pourraient être utiles? Beaucoup de tableaux de coordonnées parallèles statiques que j'ai vus avec tant d'observations ont tendance à ressembler à des spaghettis sur une plaque, je pense que vous avez une meilleure idée de la façon de donner un sens à de si grandes données N.
Andy W
Salut Andy, je n'ai pas d'exemple avec autant d'observations. Dans
Alfred Inselberg
Salut Andy, je n'ai pas d'exemple avec autant d'observations. L'interactivité est essentielle pour l'exploration des données. J'ai travaillé sur un ensemble de données avec environ 800 variables et 10 000 observations dans un réseau téléphonique cellulaire pour découvrir des pannes "mystérieuses". En utilisant les classificateurs par étapes et avec interactif, les 11 variables responsables ont été trouvées et retracées en arrière dans le temps une activité inhabituelle dans le réseau a été détectée 3-4 avant de remarquer l'échec.
Alfred Inselberg