Comment trouver des corrélations significatives dans un grand jeu de données
Je suis l'aide de R.
Mon dataset a environ 40 différentes Variables/Vektors et chacun a environ 80 entrées. J'essaie de trouver des corrélations significatives, cela signifie que je veux choisir une variable et soit R le calcul de toutes les corrélations de cette variable pour les 39 autres variables.
J'ai essayé de faire cela en utilisant un modèle linéaire avec un expliquant variable qui signifie: Y=a*X+b.
Ensuite, le lm() la commande me donne un estimateur pour une p-valeur de l'estimateur pour un. Je voudrais ensuite aller sur et utiliser l'une des autres variables que j'ai pour X et essayez à nouveau jusqu'à ce que je trouve une valeur de p c'est vraiment petit.
Je suis sûr que c'est un problème commun, est-il une sorte de package ou de la fonction que peut essayer toutes ces possibilités (Brute force),de leur montrer et puis peut-être même les trie par la p-valeur?
C'est un bel outil de visualisation: statpics.blogspot.cz/2013/11/correlation-ellipse-matrix.html
Vous n'avez rien hypothèse basée sur la théorie? Pourquoi avez-vous effectuer ces mesures?
Partie du point de modèles linéaires, c'est que vous pouvez prédire votre réponse varient en fonction de plusieurs autres variables à la fois, plutôt que d'avoir à exécuter des modèles individuels pour chaque variable prédictive.
OriginalL'auteur user3279779 | 2014-02-06
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de données pour la reproductibilité.
Vous pouvez calculer la corrélation entre deux colonnes à l'aide de
cor
. Ce code passe en boucle sur toutes les colonnes à l'exception de la première (qui contient notre réponse), et calcule la corrélation entre cette colonne et la première colonne.Vous trouverez ensuite la colonne avec le plus grand de l'ampleur de la corrélation avec
y
à l'aide de:Donc, sachant que les variables sont corrélées qui que d'autres variables peuvent être intéressant, mais s'il vous plaît ne pas tirer de grandes conclusions à partir de cette connaissance. Vous avez besoin d'un bon de penser à ce que vous essayez de comprendre, et quelles sont les techniques que vous devez utiliser. Les gens de plus en Croix Validé peut vous aider.
OriginalL'auteur Richie Cotton
Afin d'imprimer une liste des corrélations significatives (p > 0,05) de, vous pouvez utiliser ce qui suit.
En utilisant les mêmes données démo de @Richie:
Installer Hmisc
Importation de bibliothèque et de trouver les corrélations (@Carlos)
Boucle sur les valeurs de l'impression de les corrélations significatives
OriginalL'auteur toto_tico
Vous pouvez utiliser la fonction
rcorr
de l'emballageHmisc
.En utilisant les mêmes données de démonstration de Richie:
Alors:
Pour accéder aux valeurs de p:
De visualiser, vous pouvez utiliser le package
corrgram
Qui va produire:
OriginalL'auteur Carlos Cinelli
Si vous êtes en essayant de prédire y à l'aide d'une seule variable que vous avez à prendre celui qui est principalement corrélée avec y.
Pour ce faire, utilisez la commande
which.max(abs(cor(x,y)))
. Si vous souhaitez utiliser plus d'une variable dans le modèle, alors vous devez envisager quelque chose comme l'estimateur lassoOriginalL'auteur Donbeo