Correlação de Pearson dos conjuntos de dados com desvio padrão possivelmente zero?

12

Estou com problemas para calcular o coeficiente de correlação de Pearson dos conjuntos de dados com desvio padrão possivelmente zero (ou seja, todos os dados têm o mesmo valor).

Suponha que eu tenha os dois conjuntos de dados a seguir:

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

O coeficiente de correlação "r" seria calculado usando a seguinte equação:

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

No entanto, como todos os dados no conjunto de dados "y" têm o mesmo valor, o desvio padrão std_dev (y) seria zero e "r" seria indefinido.

Há alguma solução para esse problema? Ou devo usar outros métodos para medir a relação de dados nesse caso?

Andree
fonte
Não há "relacionamento de dados" neste exemplo porque y não varia. Atribuir qualquer valor numérico a r seria um erro.
whuber
1
@ whuber - é verdade que é indefinido, mas não necessariamente que a correlação desconhecida "verdadeira" ρ não possa ser estimada. Só tenho que usar algo diferente para estimar. rρ
probabilityislogic
@probability Você pressupõe que este é um problema de estimativa e não apenas de caracterização. Mas aceitando isso, qual estimador você proporia no exemplo? Nenhuma resposta pode ser universalmente correta porque depende de como o estimador será usado (uma função de perda, com efeito). Em muitas aplicações, como o PCA, parece provável que o uso de qualquer procedimento que imputa um valor a seja pior do que outros procedimentos que reconhecem ρ não possam ser identificados. ρρ
whuber
1
@whuber - a estimativa é uma má escolha de palavras para mim (você deve ter notado que eu não sou o melhor especialista em palavras), o que eu quis dizer foi que, embora possa não ser identificado de maneira única, isso não significa que os dados sejam inúteis para informar nós sobre ρ . Minha resposta dá uma demonstração (feia) disso de um ponto de vista algébrico. ρρ
probabilityislogic
@ Probabilidade Parece que sua análise é contraditória: se de fato y é modelado com uma distribuição normal, uma amostra de cinco 2 mostra que esse modelo é inadequado. Por fim, você não recebe nada por nada: seus resultados dependem fortemente das suposições feitas sobre os anteriores. Os problemas originais na identificação de ainda estão lá, mas foram ocultados por todas essas suposições adicionais. Isso parece IMHO apenas para obscurecer as questões ao invés de esclarecê-las. ρ
whuber

Respostas:

9

O pessoal da "teoria da amostragem" dirá que essa estimativa não existe. Mas você pode obter um, apenas precisa ser razoável quanto às informações anteriores e fazer um trabalho matemático muito mais difícil.

Se você especificou um método bayesiano de estimativa, e o posterior é o mesmo que o anterior, é possível dizer que os dados não dizem nada sobre o parâmetro. Como as coisas podem ficar "singulares" para nós, não podemos usar espaços de parâmetros infinitos. Estou assumindo que, porque você usa a correlação de Pearson, você tem uma probabilidade normal bivariada:

onde 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

Agora, para indicar que um conjunto de dados pode ter o mesmo valor, escreva e obtemos:yi=y

onde s2x=1

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

E assim a sua probabilidade depende de quatro números, . Então, você deseja uma estimativa de ρ , portanto, é necessário multiplicar por um anterior e integrar os parâmetros de incômodo μ x , μ y , σ x , σ y . Agora, para nos prepararmos para a integração, "completamos o quadrado" i Q isx2,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]

Agora devemos errar por precaução e garantir uma probabilidade adequadamente normalizada. Dessa forma, não podemos ter problemas. Uma dessas opções é usar um prior fracamente informativo, que apenas restringe o intervalo de cada um. Portanto, temos para as médias com plano anterior e L σ < σ x , σ y < U σ para os desvios padrão com jeffreys anteriores. É fácil estabelecer esses limites com um pouco de "senso comum" pensando sobre o problema. Vou pegar um anterior não especificado para ρLμ<μx,μy<UμLσ<σx,σy<Uσρ, e assim obtemos (uniforme deve funcionar ok, se não truncar a singularidade em ):±1

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

Onde . Isso fornece um posterior de: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

Now the first integration over μy can be done by making a change of variables z=Nμy[y(x¯μx)ρσyσx]σy1ρ2dz=Nσy1ρ2dμy and the first integral over μy becomes:

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

And you can see from here, no analytic solutions are possible. However, it is also worthwhile to note that the value ρ has not dropped out of the equations. This means that the data and prior information still have something to say about the true correlation. If the data said nothing about the correlation, then we would be simply left with p(ρ) as the only function of ρ in these equations.

It also shows how that passing to the limit of infinite bounds for μy "throws away" some of the information about ρ, which is contained in the complicated looking normal CDF function Φ(.). Now if you have a lot of data, then passing to the limit is fine, you don't loose much, but if you have very scarce information, such as in your case - it is important keep every scrap you have. It means ugly maths, but this example is not too hard to do numerically. So we can evaluate the integrated likelihood for ρ at values of say 0.99,0.98,,0.98,0.99 fairly easily. Just replace the integrals by summations over a small enough intervals - so you have a triple summation

probabilityislogic
fonte
@probabilityislogic: Wow. Simply wow. After seen some of your answers I really wonder: what should a doofus like me do to reach such a flexible bayesian state of mind ?
steffen
1
@steffen - lol. Its not that difficult, you just need to practice. And always always always remember that the product and sum rules of probability are the only rules you will ever need. They will extract whatever information is there - whether you see it or not. So you apply product and sum rules, then just do the maths. That is all I have done here.
probabilityislogic
@steffen - and the other rule - more a mathematical one than stats one - don't pass to an infinite limit too early in your calculations, your results may become arbitrary, or little details may get thrown out. Measurement error models are a perfect example of this (as is this question).
probabilityislogic
@probabilityislogic: Thank you, I'll keep this in mind... as soon as I am done working through my "Bayesian Analysis"-copy ;).
steffen
@probabilityislogic: If you could humor a nonmathematical statistician/researcher...would it be possible to summarize or translate your answer to a group of dentists or high school principals or introductory statistics students?
rolando2
6

I agree with sesqu that the correlation is undefined in this case. Depending on your type of application you could e.g. calculate the Gower Similarity between both vectors, which is: gower(v1,v2)=i=1nδ(v1i,v2i)n where δ represents the kronecker-delta, applied as function on v1,v2.

So for instance if all values are equal, gower(.,.)=1. If on the other hand they differ only in one dimension, gower(.,.)=0.9. If they differ in every dimension, gower(.,.)=0 and so on.

Of course this is no measure for correlation, but it allows you to calculate how close the vector with s>0 is to the one with s=0. Of course you can apply other metrics,too, if they serve your purpose better.

steffen
fonte
+1 That's a creative idea. It sounds like the "Gower Similarity" is a scaled Hamming distance.
whuber
@whuber: Indeed it is !
steffen
0

The correlation is undefined in that case. If you must define it, I would define it as 0, but consider a simple mean absolute difference instead.

sesqu
fonte
0

This question is coming from programmers, so I'd suggest plugging in zero. There's no evidence of a correlation, and the null hypothesis would be zero (no correlation). There might be other context knowledge that would provide a "typical" correlation in one context, but the code might be re-used in another context.

zbicyclist
fonte
2
There's no evidence of lack of correlation either, so why not plug in 1? Or -1? Or anything in between? They all lead to re-usable code!
whuber
@whuber - you plug in zero because the data is "less constrained" when it is independent - this is why maxent distributions are independent unless you explicitly specify correlations in the constraints. Independence can be viewed as a conservative assumption when you know of no such correlations - effectively you are averaging over all possible correlations.
probabilityislogic
1
@prob I question why it makes sense as a generic procedure to average over all correlations. In effect this procedure substitutes the definite and possibly quite wrong answer "zero!" for the correct answer "the data don't tell us." That difference can be important for decision making.
whuber
Just because the question might be from a programmer, does not mean you should convert an undefined value to zero. Zero means something specific in a correlation calculation. Throw an exception. Let the caller decide what should happen. Your function should calculate a correlation, not decide what to do if one cannot be computed.
Jared Becksfort