Package R pour identifier les relations entre les variables [fermé]

13

Existe-t-il un package R que je peux utiliser pour explorer s'il existe des relations entre les variables?

Généralement, lorsque je recherche des motifs, je regarde les corrélations, puis un tracé à facettes. Ensuite, j'applique manuellement certaines transformations aux variables dans les données. Je me demandais si je pouvais accélérer ce processus grâce à un package R.

celenius
la source
Si vous avez votre propre processus, vous pouvez toujours rouler votre propre package. Ou simplement une fonction réutilisable dans un fichier chargé au début de votre script.
Brandon Bertelsen

Réponses:

9

AFAIK, non. Pour être plus précis, je ne connais pas un seul package R qui ferait une partie de ce qu'on appelle l' analyse exploratoire des données (EDA) pour vous via un seul appel de fonction - je pense aux aspects de la ré-expression et de la révélation discuté dans Hoaglin, Mosteller et Tukey, Understanding Robust and Exploratory Data Analysis . Wiley-Interscience, 1983, en particulier.

Cependant, il existe quelques alternatives intéressantes dans R, en particulier en ce qui concerne l'exploration interactive des données (regardez ici pour une discussion intéressante: quand la visualisation interactive des données est-elle utile? ). Je peux penser à

  • iplots , ou son successeur Acinonyx , pour la visualisation interactive (permettant le brossage, les graphiques liés, etc.) (Certaines de ces fonctionnalités peuvent être trouvées dans le package latticist ; enfin, rgl est idéal pour la visualisation interactive 3D.)
  • ggobi pour les affichages interactifs et dynamiques, y compris la réduction des données (mise à l'échelle multidimensionnelle) et la poursuite de projection

C'est uniquement pour l'exploration de données interactive, mais je dirais que c'est l'essence de l'EDA. Quoi qu'il en soit, les techniques ci-dessus pourraient aider lors de l'exploration de relations bivariées ou d'ordre supérieur entre des variables numériques. Pour les données catégorielles, le package vcd est une bonne option (visualisation et tableaux récapitulatifs). Ensuite, je dirais que les packages vegan et ade4 viennent en premier pour explorer les relations entre les variables de types de données mixtes.

Enfin, qu'en est-il de l'exploration de données dans R? (Essayez ce mot-clé sur Rseek )

chl
la source
(+1) Ravi de vous revoir répondre aux questions!
whuber
+1 Btw: petite faute de frappe - Acinonyx (i & y sont transposés).
Iterator
@Iterator Merci d'avoir attrapé la faute de frappe. (J'ai déjà attribué +1 à votre réponse, c'est bien que vous ayez cité l'article de Wilkinson).
chl
2
Il y a maintenant loonaussi waddella.github.io/loon Credit va à @hadleywickham pour l'avoir signalé.
Ari B. Friedman
11

Si vous voulez simplement voir rapidement comment les variables de votre jeu de données sont corrélées, jetez un œil à la fonction pairs (), ou mieux encore, à la fonction pairs.panels () du package psych. J'ai écrit un peu sur la fonction des paires ici .

En utilisant la fonction pairs () ou psych :: pairs.panels (), il est assez facile de faire des matrices de nuage de points.

pairs.panels(iris[-5], bg=c("blue","red","yellow")[iris$Species], pch=21,lm=TRUE)

entrez la description de l'image ici

Stephen Turner
la source
7

Consultez l' scagnosticsemballage et le document de recherche original . Ceci est très intéressant pour les relations bivariées. Pour les relations multivariées, la poursuite de la projection est une très bonne première étape.

En général, cependant, l'expertise du domaine et des données permettra à la fois d'affiner et d'améliorer vos méthodes pour étudier rapidement les relations.

Itérateur
la source
7

La fonction chart.Correlation de PerformanceAnalytics fournit des fonctionnalités similaires à la fonction plot.pairs mentionnée par @Stephen Turner, sauf qu'elle se lisse avec une fonction de loess plutôt qu'un modèle linéaire et la signification des corrélations.

library(PerformanceAnalytics)
chart.Correlation(iris[-5], bg=c("blue","red","yellow")[iris$Species], pch=21)

Graphique

Zach
la source
5

Si vous recherchez des transformations possibles pour travailler avec la corrélation, alors un outil qui n'a pas encore été mentionné et qui peut être utile acese trouve dans le acepackpackage (et probablement d'autres packages également). Cela fait un processus interactif d'essayer de nombreuses transformations différentes (en utilisant des lissoirs) pour trouver les transformations afin de maximiser la corrélation entre un ensemble de variables x et une variable ay. Le traçage des transformations peut alors suggérer des transformations significatives.

Greg Snow
la source
2

Vous pouvez utiliser la fonction DCOR dans le package «énergie» pour calculer une mesure de dépendance non linéaire appelée corrélation de distance et tracer comme ci-dessus. Le problème avec la corrélation de Pearson est qu'elle ne peut détecter que les relations linéaires entre les variables. Assurez-vous de choisir le paramètre d'écriture pour l'index dans la fonction DCOR qui a dit.

corbillard
la source