Je lis actuellement des hypothèses sur les corrélations de Pearson. Une hypothèse importante pour le test t qui suit semble être que les deux variables proviennent de distributions normales; s'ils ne le font pas, l'utilisation de mesures alternatives telles que le Spearman rho est préconisée. La corrélation de Spearman est calculée comme la corrélation de Pearson, en utilisant uniquement les rangs de X et Y au lieu de X et Y eux-mêmes, n'est-ce pas?
Ma question est: si les variables d'entrée dans une corrélation de Pearson doivent être distribuées normalement, pourquoi le calcul d'une corrélation de Spearman est-il valide même si les variables d'entrée sont des rangs? Mes rangs ne proviennent certainement pas de distributions normales ...
La seule explication que j'ai trouvée jusqu'à présent est que la signification de rho pourrait être testée différemment de celle du test t de corrélation de Pearson (d'une manière qui ne nécessite pas de normalité), mais jusqu'à présent, je n'ai trouvé aucune formule. Cependant, lorsque j'ai exécuté quelques exemples, les valeurs de p pour rho et pour le test t de la corrélation de Pearson des rangs étaient toujours identiques, à l'exception des derniers chiffres. Pour moi, cela ne ressemble pas à une procédure révolutionnaire.
Toutes les explications et idées que vous pourriez avoir seraient appréciées!
Eh bien, vous avez exécuté les mauvais exemples!
a
b
b
A l' inverse, tout
a
etb
avoir une corrélation de rang parfait, leur coefficient de corrélation de Pearson est inférieur à 1. Cela montre que la corrélation de Pearson ne reflète pas les rangs.Une corrélation de Pearson reflète une fonction linéaire, une corrélation de rang simplement une fonction monotone. Dans le cas de données normales, les deux se ressemblent fortement, et je soupçonne que c'est pourquoi vos données ne montrent pas de grandes différences entre Spearman et Pearson.
Pour un exemple pratique, considérez ce qui suit; vous voulez voir si les personnes plus grandes pèsent plus. Oui, c'est une question idiote ... mais supposez simplement que c'est ce qui vous intéresse. Maintenant, la masse n'évolue pas linéairement avec le poids, car les personnes de grande taille sont également plus larges que les petites personnes; le poids n'est donc pas une fonction linéaire de la taille. Quelqu'un qui est 10% plus grand que vous est (en moyenne) plus de 10% plus lourd. C'est pourquoi l'indice de masse / corps utilise le cube dans le dénominateur.
Par conséquent, vous supposeriez une corrélation linéaire pour refléter de manière inexacte la relation taille / poids. En revanche, la corrélation de rang est insensible aux lois ennuyeuses de la physique et de la biologie dans ce cas; il ne reflète pas si les gens grossissent linéairement à mesure qu'ils gagnent en hauteur, il reflète simplement si les personnes plus grandes (plus haut rang sur une échelle) sont plus lourdes (plus haut rang sur l'autre échelle).
Un exemple plus typique pourrait être celui des classements de questionnaires de type Likert, tels que les personnes évaluant quelque chose comme "parfait / bon / décent / médiocre / mauvais / horrible". "parfait" est aussi loin d'être "décent" que "décent" est "mauvais" sur l'échelle , mais peut-on vraiment dire que la distance entre les deux est la même? Une corrélation linéaire n'est pas nécessairement appropriée. La corrélation de rang est plus naturelle.
Pour répondre plus directement à votre question: non, les valeurs de p pour les corrélations de Pearson et Spearman ne doivent pas être calculées différemment . Beaucoup est différent sur les deux, conceptuellement et numériquement, mais si la statistique de test est équivalente, la valeur p sera équivalente.
Sur la question d'une hypothèse de normalité dans la corrélation de Pearson, voir ceci .
Plus généralement, d' autres personnes ont élaboré beaucoup mieux que moi concernant le sujet des corrélations paramétriques vs non paramétriques (voir aussi ici ), et ce que cela signifie en ce qui concerne les hypothèses de distribution.
la source
cor.test(x, y, method = "spearman")
aveccor.test(rank(x), rank(y), method = "pearson")
. Ces estimations seront identiques quelles que soient les données choisies. Merci quand même! :)