> Statistiques > Analyse de données > Coefficients de corrélation
Coefficients de corrélation
Coefficient de corrélation de Pearson : il mesure à quel point 2 variables sont corrélées en cherchant les corrélations linéaires :
- varie entre -1 et 1 : 1 = corrélation positive parfaite, 0 = pas de corrélation, -1 = corrélation négative parfaite (quand une variable augmente, l'autre diminue).
- Calcul pour 2 vecteurs :
v1 <- c(5, 3, 8, 1, 9, 3, 6)
v2 <- c(10, 7, 14, 2, 15, 9, 8)
cor(v1, v2)
donne :
[1] 0.9214173
- S'il y a des valeurs manquantes, utiliser cor(v1, v2, use = "complete.obs") pour ignorer les paires correspondantes.
- On peut aussi donner un dataframe (ou une matrice) pour avoir les corrélations des colonnes 2 à 2 :
fr <- data.frame(v1 = c(3, 6, 1, 9, 7),
v2 = c(4, 7, 2, 12, 8),
v3 = c(6, 1, 9, 3, 5))
cor(fr)
donne la matrice de corrélation symétrique :
v1 v2 v3
v1 1.0000000 0.9848145 -0.7690636
v2 0.9848145 1.0000000 -0.7155858
v3 -0.7690636 -0.7155858 1.0000000
Coefficient de corrélation de Spearman : il compare simplement l'ordre dans lequel les valeurs apparaissent dans les 2 vecteurs sans faire d'hypothèse sur le type de fonction de dépendance (plus robuste), en calculant simplement un coefficient de corrélation de Pearson sur les rangs :
- Par exemple :
v1 <- c(5, 3, 8, 1, 9, 15)
v2 <- exp(v1)
cor(v1, v2, method = "spearman")
donne :
[1] 1
(alors que le coefficient de corrélation de Pearson vaut 0.8018705).
- rajouter l'argument use = "complete.obs" pour ignorer les paires dont l'un des deux membres est NA (cf ci-dessus).
- on peut donner un dataframe ou une matrice (cf ci-dessus).
Test d'association de paires :
- Test si 2 vecteurs ont des valeurs corrélées par paires avec méthode de Pearson :
v1 <- c(5, 7, 3, 8, 2, 4, 5, 1)
v2 <- c(4, 8, 2, 7, 2, 6, 3, 2)
cor.test(v1, v2)
donne :
Pearson's product-moment correlation
data: v1 and v2
t = 3.8223, df = 6, p-value = 0.008737
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3375377 0.9707045
sample estimates:
cor
0.8419498
- accès aux champs : si res <- cor.test :
- res$estimate : coefficient de corrélation.
- res$p.value : p value.
- paramètres de cor.test :
- method : "pearson" (le défaut), "spearman" (en utilisant les rangs, cf ci-dessus), "kendall".
- alternative : "two.sided" (le défaut), "greater" (teste seulement pour une corrélation positive), "less" (teste seulement pour une corrélation négative).
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R