Corrélation Pearson des ensembles de données avec un écart-type éventuellement nul?

12

J'ai un problème pour calculer le coefficient de corrélation de Pearson des ensembles de données avec peut-être un écart-type nul (c'est-à-dire que toutes les données ont la même valeur).

Supposons que j'ai les deux ensembles de données suivants:

float x[] = {2, 2, 2, 3, 2};
float y[] = {2, 2, 2, 2, 2};

Le coefficient de corrélation "r" serait calculé à l'aide de l'équation suivante:

float r = covariance(x, y) / (std_dev(x) * std_dev(y));

Cependant, comme toutes les données de l'ensemble de données "y" ont la même valeur, l'écart-type std_dev (y) serait nul et "r" ne serait pas défini.

Existe-t-il une solution à ce problème? Ou dois-je utiliser d'autres méthodes pour mesurer la relation de données dans ce cas?

Andrée
la source
Il n'y a pas de "relation de données" dans cet exemple car y ne varie pas. Attribuer une valeur numérique à r serait une erreur.
whuber
1
@whuber - il est vrai que le n'est pas défini, mais pas nécessairement que la "vraie" corrélation inconnue ρ ne peut pas être estimée. Il suffit d'utiliser quelque chose de différent pour l'estimer. rρ
probabilités du
@probability Vous présupposez qu'il s'agit d'un problème d'estimation et pas simplement un problème de caractérisation. Mais en acceptant cela, quel estimateur proposeriez-vous dans l'exemple? Aucune réponse ne peut être universellement correcte car elle dépend de la façon dont l'estimateur sera utilisé (une fonction de perte, en effet). Dans de nombreuses applications, telles que l'ACP, il semble probable que l'utilisation de toute procédure qui impute une valeur à peut être pire que d'autres procédures qui reconnaissent ρ ne peuvent pas être identifiées. ρρ
whuber
1
@whuber - l'estimation est un mauvais choix de mots pour moi (vous avez peut-être remarqué que je ne suis pas le meilleur forgeron de mots), ce que je voulais dire, c'est que même si peut ne pas être identifié de manière unique, cela ne signifie pas que les données sont inutiles pour dire nous sur ρ . Ma réponse en donne une démonstration (laide) d'un point de vue algébrique. ρρ
probabilityislogic
@Probabilité Il semble que votre analyse soit contradictoire: si en effet y est modélisé avec une distribution normale, alors un échantillon de cinq 2 montre que ce modèle est inapproprié. En fin de compte, vous n'obtenez rien pour rien: vos résultats dépendent fortement des hypothèses faites sur les prieurs. Les problèmes d'origine pour identifier sont toujours là mais ont été cachés par toutes ces hypothèses supplémentaires. Cela semble à mon humble avis juste pour obscurcir les problèmes plutôt que de les clarifier. ρ
whuber

Réponses:

9

Les gens de la "théorie de l'échantillonnage" vous diront qu'il n'existe pas une telle estimation. Mais vous pouvez en obtenir un, il vous suffit d'être raisonnable sur vos informations antérieures et de faire un travail mathématique beaucoup plus difficile.

Si vous avez spécifié une méthode d'estimation bayésienne et que le postérieur est le même que le précédent, vous pouvez dire que les données ne disent rien sur le paramètre. Parce que les choses peuvent devenir "singulières" sur nous, nous ne pouvons pas utiliser des espaces de paramètres infinis. Je suppose que parce que vous utilisez la corrélation de Pearson, vous avez une probabilité normale bivariée:

Qi=(xi-μx)2

p(D|μx,μy,σx,σy,ρ)=(σxσy2π(1ρ2))Nexp(iQi2(1ρ2))
Qi=(xiμx)2σx2+(yiμy)2σy22ρ(xiμx)(yiμy)σxσy

Maintenant, pour indiquer qu'un ensemble de données peut avoir la même valeur, écrivez , puis nous obtenons:yi=y

iQi=N[(yμy)2σy2+sx2+(x¯μx)2σx22ρ(x¯μx)(yμy)σxσy]
sx2=1Ni(xix¯)2

sx2,y,x¯,Nρμx,μy,σx,σy

iQi1ρ2=N[(μy[y(x¯μx)ρσyσx])2σy2(1ρ2)+sx2σx2(1ρ2)+(x¯μx)2σx2]

Lμ<μx,μy<UμLσ<σx,σy<Uσρ±1

p(ρ,μx,μy,σx,σy)=p(ρ)Aσxσy

A=2(UμLμ)2[log(Uσ)log(Lσ)]2

p(ρ|D)=p(ρ,μx,μy,σx,σy)p(D|μx,μy,σx,σy,ρ)dμydμxdσxdσy

=p(ρ)A[2π(1ρ2)]N2LσUσLσUσ(σxσy)N1exp(Nsx22σx2(1ρ2))×
LμUμexp(N(x¯μx)22σx2)LμUμexp(N(μy[y(x¯μx)ρσyσx])22σy2(1ρ2))dμydμxdσxdσy

μyz=Nμy[y(x¯μx)ρσyσx]σy1ρ2dz=Nσy1ρ2dμyμy

σy2π(1ρ2)N[Φ(Uμ[y(x¯μx)ρσyσx]σyN1ρ2)Φ(Lμ[y(x¯μx)ρσyσx]σyN1ρ2)]

ρp(ρ)ρ

μyρΦ(.)ρ0.99,0.98,,0.98,0.99

probabilitéislogique
la source
@probabilityislogic: Wow. Wow. Après avoir vu certaines de vos réponses, je me demande vraiment: que devrait faire un doofus comme moi pour atteindre un état d'esprit bayésien si flexible?
steffen
1
@steffen - lol. Ce n'est pas si difficile, il vous suffit de vous entraîner. Et souvenez-vous toujours que les règles de probabilité de produit et de somme sont les seules règles dont vous aurez besoin . Ils extrairont toutes les informations disponibles - que vous les voyiez ou non. Vous appliquez donc les règles de produit et de somme, puis faites le calcul. C'est tout ce que j'ai fait ici.
probabilitéislogic
@steffen - et l'autre règle - plus mathématique que statistique - ne passe pas à une limite infinie trop tôt dans vos calculs, vos résultats peuvent devenir arbitraires ou de petits détails peuvent être jetés. Les modèles d'erreur de mesure en sont un parfait exemple (tout comme cette question).
probabilitéislogic
@probabilityislogic: Merci, je garderai cela à l'esprit ... dès que j'aurai fini de travailler sur ma copie "Analyse Bayésienne";).
steffen
@probabilityislogic: Si vous pouviez faire rire un statisticien / chercheur non mathématique ... serait-il possible de résumer ou de traduire votre réponse à un groupe de dentistes ou de directeurs d'école secondaire ou d'étudiants en statistiques d'introduction?
rolando2
6

gower(v1,v2)=i=1nδ(v1i,v2i)nδv1,v2

Ainsi, par exemple, si toutes les valeurs sont égales, gower (.,.) = 1. Si en revanche ils ne diffèrent que dans une seule dimension, gower (.,.) = 0.9. S'ils diffèrent dans chaque dimension, gower (.,.) = 0 et ainsi de suite.

Bien sûr, ce n'est pas une mesure de corrélation, mais cela vous permet de calculer à quel point le vecteur avec s> 0 est proche de celui avec s = 0. Bien sûr, vous pouvez également appliquer d'autres mesures si elles servent mieux votre objectif.

steffen
la source
+1 C'est une idée créative. Il semble que la "similitude de Gower" soit une distance de Hamming à l' échelle .
whuber
@whuber: Effectivement!
steffen
0

La corrélation n'est pas définie dans ce cas. Si vous devez le définir, je le définirais comme 0, mais considérez plutôt une simple différence absolue moyenne.

sesqu
la source
0

Cette question vient des programmeurs, donc je suggère de brancher zéro. Il n'y a aucune preuve d'une corrélation, et l'hypothèse nulle serait nulle (pas de corrélation). Il pourrait y avoir d'autres connaissances contextuelles qui fourniraient une corrélation "typique" dans un contexte, mais le code pourrait être réutilisé dans un autre contexte.

zbicycliste
la source
2
Il n'y a pas non plus de preuve de manque de corrélation, alors pourquoi ne pas brancher 1? Ou -1? Ou quelque chose entre les deux? Ils conduisent tous à un code réutilisable!
whuber
@whuber - vous branchez zéro parce que les données sont "moins contraintes" lorsqu'elles sont indépendantes - c'est pourquoi les distributions maxent sont indépendantes sauf si vous spécifiez explicitement des corrélations dans les contraintes. L'indépendance peut être considérée comme une hypothèse prudente lorsque vous ne connaissez pas de telles corrélations - vous effectuez en moyenne une moyenne sur toutes les corrélations possibles .
probabilités
1
@prob Je me demande pourquoi il est logique, en tant que procédure générique, de faire la moyenne de toutes les corrélations. En effet, cette procédure remplace la réponse définitive et peut-être tout à fait erronée "zéro!" pour la bonne réponse "les données ne nous disent pas." Cette différence peut être importante pour la prise de décision.
whuber
Le fait que la question provienne d'un programmeur ne signifie pas que vous devez convertir une valeur non définie en zéro. Zéro signifie quelque chose de spécifique dans un calcul de corrélation. Jetez une exception. Laissez l'appelant décider de ce qui doit arriver. Votre fonction doit calculer une corrélation, pas décider quoi faire si elle ne peut pas être calculée.
Jared Becksfort