Pourquoi la grande différence
Si vos données sont normalement distribuées ou uniformément distribuées, je pense que la corrélation de Spearman et Pearson devrait être assez similaire.
S'ils donnent des résultats très différents comme dans votre cas (0,65 contre 0,30), je suppose que vous avez des données biaisées ou des valeurs aberrantes, et que les valeurs aberrantes conduisent la corrélation de Pearson à être plus grande que la corrélation de Spearman. C'est-à-dire que des valeurs très élevées sur X peuvent coexister avec des valeurs très élevées sur Y.
- @chl est parfait. Votre première étape devrait être de regarder le nuage de points.
- En général, une si grande différence entre Pearson et Spearman est un drapeau rouge suggérant que
- la corrélation de Pearson peut ne pas être un résumé utile de l'association entre vos deux variables, ou
- vous devez transformer une ou les deux variables avant d'utiliser la corrélation de Pearson, ou
- vous devez supprimer ou ajuster les valeurs aberrantes avant d'utiliser la corrélation de Pearson.
questions connexes
Voir également ces questions précédentes sur les différences entre la corrélation de Spearman et Pearson:
Exemple R simple
Voici une simulation simple de la façon dont cela peut se produire. Notez que le cas ci-dessous implique une seule valeur aberrante, mais que vous pouvez produire des effets similaires avec plusieurs valeurs aberrantes ou asymétriques.
# Set Seed of random number generator
set.seed(4444)
# Generate random data
# First, create some normally distributed correlated data
x1 <- rnorm(200)
y1 <- rnorm(200) + .6 * x1
# Second, add a major outlier
x2 <- c(x1, 14)
y2 <- c(y1, 14)
# Plot both data sets
par(mfrow=c(2,2))
plot(x1, y1, main="Raw no outlier")
plot(x2, y2, main="Raw with outlier")
plot(rank(x1), rank(y1), main="Rank no outlier")
plot(rank(x2), rank(y2), main="Rank with outlier")
# Calculate correlations on both datasets
round(cor(x1, y1, method="pearson"), 2)
round(cor(x1, y1, method="spearman"), 2)
round(cor(x2, y2, method="pearson"), 2)
round(cor(x2, y2, method="spearman"), 2)
Ce qui donne cette sortie
[1] 0.44
[1] 0.44
[1] 0.7
[1] 0.44
L'analyse de corrélation montre que sans la valeur aberrante Spearman et Pearson sont assez similaires, et avec la valeur aberrante plutôt extrême, la corrélation est assez différente.
Le graphique ci-dessous montre comment le fait de traiter les données comme des rangs supprime l'influence extrême de la valeur aberrante, ce qui conduit Spearman à être similaire à la fois avec et sans la valeur aberrante, tandis que Pearson est assez différent lorsque la valeur aberrante est ajoutée. Cela souligne pourquoi Spearman est souvent appelé robuste.