おそらく標準偏差がゼロのデータセットのピアソン相関?


12

標準偏差がゼロのデータセットのピアソン相関係数の計算に問題があります(つまり、すべてのデータの値が同じです)。

次の2つのデータセットがあるとします。

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

相関係数「r」は、次の式を使用して計算されます。

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

ただし、データセット「y」のすべてのデータは同じ値を持つため、標準偏差std_dev(y)はゼロになり、「r」は未定義になります。

この問題の解決策はありますか?または、この場合、他の方法を使用してデータ関係を測定する必要がありますか?


yには変化がないため、この例には「データ関係」はありません。割り当て任意の数値Rは間違いであろう。
whuber

1
@whuber- が未定義であることは事実ですが、必ずしも「真の」未知の相関ρを推定できないとは限りません。それを推定するために別のものを使用する必要があります。rρ
確率論的

@probabilityこれは推定の問題であり、単なる特性化の問題ではないと仮定します。しかし、それを受け入れて、この例ではどの推定量を提案しますか?推定器の使用方法(損失関数、実際)に依存するため、一般的に正しい答えはありません。PCAなどの多くのアプリケーションでは、使用している可能性が高いと思われる任意の価値を転嫁手順認識し、他の方法よりも悪いかもしれρを識別することができません。ρρ
whuber

1
@whuber-見積もりは私にとって言葉の悪い選択です(あなたは私が最高のワードスミスではないことに気づいたかもしれません)、私が意味したのは、が一意に識別されないかもしれないが、これはデータが伝えるのに役に立たないことを意味しないということですρについて。私の答えは、代数的観点からこれの(ugい)デモンストレーションを与えます。ρρ
確率論的

@Probability分析は矛盾しているようです。実際にyが正規分布でモデル化されている場合、5つの2のサンプルはこのモデルが不適切であることを示します。最終的に、あなたは何のためにも何も得られません:あなたの結果は、事前条件についてなされた仮定に強く依存します。を特定する際の元の問題はまだありますが、これらすべての追加の仮定によって隠れています。私見は、問題を明確にするのではなく、単に問題をあいまいにしているようです。ρ
whuber

回答:


9

「サンプリング理論」の人々は、そのような推定値は存在しないと言うでしょう。しかし、あなたはそれを得ることができます、あなたはあなたの前の情報について合理的である必要があり、はるかに難しい数学的な仕事をします。

ベイズ推定法を指定し、事後が前と同じである場合、データはパラメーターについて何も言わないと言うことができます。物事が「特異」になる場合があるため、無限のパラメータ空間を使用することはできません。ピアソン相関を使用しているため、2変量の正規尤度があると仮定しています。

ここで、 QI=XI-μX2

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

ここで、1つのデータセットが同じ値である可能性があることを示すために、と記述します。yi=y

ここで 、S2、X=1

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

あなたの可能性は、4つの数に依存ように、。あなたはの見積もりたいので、ρを、あなたの前で乗算する必要がある、と迷惑なパラメータアウト統合するので、μ のxμ yのσ のxσ yと。統合の準備をするために、「正方形を完成させる」 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]

ここで、注意を怠って適切に正規化された確率を確保する必要があります。そうすれば、トラブルに巻き込まれることはありません。そのようなオプションの1つは、それぞれの範囲に制限を設けるだけの、情報量の少ない事前分布を使用することです。我々が持っているので、フラット前やと手段のためにL σ < σ のxσ yの < U σ前ジェフリーズと標準偏差のために。これらの制限は、問題について考える少しの「常識」で簡単に設定できます。ρに対して不特定の事前確率をとります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

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: 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.


+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.


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.


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.