Analogi korelasi Pearson untuk 3 variabel

17

Saya tertarik pada apakah atau tidak "korelasi" dari tiga variabel adalah sesuatu, dan jika apa, apakah ini?

Koefisien korelasi momen produk Pearson

E{(XμX)(YμY)}Var(X)Var(Y)

Sekarang pertanyaan untuk 3 variabel: Apakah

E{(XμX)(YμY)(ZμZ)}Var(X)Var(Y)Var(Z)

apa pun?

Dalam R sepertinya sesuatu yang bisa ditafsirkan:

> a <- rnorm(100); b <- rnorm(100); c <- rnorm(100)
> mean((a-mean(a)) * (b-mean(b)) * (c-mean(c))) / (sd(a) * sd(b) * sd(c))
[1] -0.3476942

Kami biasanya melihat korelasi antara 2 variabel yang diberi nilai variabel ketiga tetap. Bisakah seseorang mengklarifikasi?

PascalVKooten
sumber
2
1) Dalam rumus Pearson bivariat Anda, jika "E" (berarti dalam kode Anda) menyiratkan pembagian dengan n maka st. penyimpangan juga harus didasarkan pada n (bukan n-1). 2) Biarkan ketiga variabel menjadi variabel yang sama. Dalam hal ini, kami mengharapkan korelasi menjadi 1 (seperti dalam kasus bivariat), tetapi sayangnya ...
ttnphns
Untuk distribusi normal trivariat, nol, terlepas dari apa korelasinya.
Ray Koopman
1
Saya benar-benar berpikir judul akan mendapat manfaat dari diubah menjadi "Analogi Pearson korelasi untuk 3 variabel" atau serupa - itu akan membuat tautan di sini agak lebih informatif
Silverfish
1
@Silverfish Saya setuju! Saya telah memperbarui judulnya, terima kasih.
PascalVKooten

Jawaban:

11

Ini adalah memang sesuatu. Untuk mengetahuinya, kita perlu memeriksa apa yang kita ketahui tentang korelasi itu sendiri.

  1. Matriks korelasi dari variabel acak bernilai vektor adalah matriks varians-kovarians, atau hanya "varians," dari versi standar dari . Yaitu, masing-masing digantikan oleh versi yang ulang.X X iX=(X1,X2,,Xp)XXi

  2. Kovarian dan adalah harapan dari produk versi terpusat mereka. Yaitu, menulis X i = X i - E [ X i ] dan X j = X j - E [ X j ] , kami memilikiX jXiXjXi=XiE[Xi]Xj=XjE[Xj]

    Cov(Xi,Xj)=E[XiXj].
  3. Varian X , yang akan saya tulis Var(X) , bukan angka tunggal. Ini adalah array nilai-nilai

    Var(X)ij=Cov(Xi,Xj).
  4. Cara untuk memikirkan kovarian untuk generalisasi yang dimaksudkan adalah dengan menganggapnya sebagai tensor . Itu berarti itu seluruh koleksi jumlah vij , diindeks oleh i dan j mulai dari 1 sampai p , yang nilainya berubah dalam cara yang dapat diprediksi terutama sederhana ketika X mengalami transformasi linear. Secara khusus, misalkan Y=(Y1,Y2,,Yq) menjadi variabel acak bernilai vektor lain yang didefinisikan oleh

    Yi=j=1paijXj.

    Konstanta aij (idanjadalahindeks-jbukan kekuatan) membentukq×halarraySEBUAH=(Sebuahsayaj),j=1,...,haldansaya=1,...,q. Linearitas harapan menyiratkan

    Var(Y)sayaj=SebuahsayakSebuahjlVar(X)kl.

    Dalam notasi matriks,

    Var(Y)=SEBUAHVar(X)SEBUAH.
  5. Semua komponen Var(X) sebenarnya adalah varian univariat, karena Polarisasi Identitas

    4Cov(Xi,Xj)=Var(Xi+Xj)Var(XiXj).

    Ini memberitahu kita bahwa jika Anda memahami varian variabel acak univariat, Anda sudah memahami kovarian variabel bivariat: variabel tersebut adalah "hanya" kombinasi varian linear.


Ungkapan dalam pertanyaan itu benar-benar analog: variabel telah distandarisasi seperti pada ( 1 ) . Kita dapat memahami apa yang diwakilinya dengan mempertimbangkan apa artinya variabel apa pun , terstandarisasi atau tidak. Kami akan diganti setiap X i oleh versi berpusat, seperti dalam ( 2 ) , dan jumlah bentuk memiliki tiga indeks,Xi(1)Xi(2)

μ3(X)ijk=E[XiXjXk].

Ini adalah momen sentral (multivarian) dari tingkat 3 . Seperti pada , mereka membentuk tensor: ketika Y = A X , maka(4)Y=AX

μ3(Y)ijk=l,m,nailajmaknμ3(X)lmn.

Indeks dalam kisaran jumlah rangkap tiga ini atas semua kombinasi bilangan bulat dari hingga p .1p

Analog dari Identitas Polarisasi adalah

24μ3(X)ijk=μ3(Xi+Xj+Xk)μ3(XiXj+Xk)μ3(Xi+XjXk)+μ3(XiXjXk).

Di sisi kanan, mengacu pada momen ketiga sentral (univariat): nilai yang diharapkan dari kubus dari variabel terpusat. Ketika variabel distandarisasi, momen ini biasanya disebut skewness . Dengan demikian, kita mungkin berpikir μ 3 ( X ) sebagai yang skewness multivariat dari X . Ini adalah tensor peringkat tiga (yaitu, dengan tiga indeks) yang nilainya adalah kombinasi linear dari skewnesses berbagai jumlah dan perbedaan dari X i . Jika kita mencari interpretasi, maka, kita akan menganggap komponen-komponen ini sebagai ukuran dalam halμ3μ3(X)XXipdimensi apa pun kemiringan diukur dalam satu dimensi. Dalam banyak kasus,

  • Saat-saat pertama mengukur lokasi dari distribusi;

  • Momen kedua (matriks varians-kovarians) mengukur penyebarannya ;

  • Momen kedua terstandarisasi (korelasi) menunjukkan bagaimana penyebaran bervariasi dalam ruang dimensi; danp

  • Momen ketiga dan keempat yang terstandarisasi diambil untuk mengukur bentuk distribusi relatif terhadap penyebarannya.

Untuk menguraikan makna "bentuk" multidimensi, amati bahwa kita dapat memahami PCA sebagai mekanisme untuk mengurangi distribusi multivarian apa pun ke versi standar yang terletak di titik asal dan penyebaran yang sama di semua arah. Setelah PCA dilakukan, maka, akan memberikan indikator paling sederhana dari bentuk multidimensi distribusi. Ide-ide ini berlaku sama baiknya untuk data dengan variabel acak, karena data selalu dapat dianalisis dalam hal distribusi empiris mereka.μ3


Referensi

Alan Stuart & J. Keith Ord, Teori Lanjutan Statistik Kendall Edisi Kelima, Volume 1: Teori Distribusi ; Bab 3, Momen dan Cumulan . Oxford University Press (1987).


Lampiran: Bukti Identitas Polarisasi

Misalkan menjadi variabel aljabar. Ada 2 n cara untuk menambah dan mengurangi semua n dari mereka. Ketika kita meningkatkan masing-masing jumlah-dan-perbedaan ini ke n th kekuasaan, memilih tanda yang sesuai untuk masing-masing hasil tersebut, dan menambahkan mereka, kita akan mendapatkan kelipatan x 1 x 2x n .x1,,xn2nnnthx1x2xn

Secara lebih formal, misalkan adalah himpunan semua n -tuple dari ± 1 , sehingga setiap elemen s S adalah vektor s = ( s 1 , s 2 , , s n ) yang koefisien semua ± 1 . Klaimnya adalahS={1,1}nn±1sSs=(s1,s2,,sn)±1

(1)2nn!x1x2xn=sSs1s2sn(s1x1+s2x2++snxn)n.

Indeed, the Multinomial Theorem states that the coefficient of the monomial x1i1x2i2xnin (where the ij are nonnegative integers summing to n) in the expansion of any term on the right hand side is

(ni1,i2,,in)s1i1s2i2snin.

In the sum (1), the coefficients involving x1i1 appear in pairs where one of each pair involves the case s1=1, with coefficient proportional to s1 times s1i1, equal to 1, and the other of each pair involves the case s1=1, with coefficient proportional to 1 times (1)i1, equal to (1)i1+1. They cancel in the sum whenever i1+1 is odd. The same argument applies to i2,,in. Consequently, the only monomials that occur with nonzero coefficients must have odd powers of all the xi. The only such monomial is x1x2xn. It appears with coefficient (n1,1,,1)=n! in all 2n terms of the sum. Consequently its coefficient is 2nn!, QED.

We need take only half of each pair associated with x1: that is, we can restrict the right hand side of (1) to the terms with s1=1 and halve the coefficient on the left hand side to 2n1n! . That gives precisely the two versions of the Polarization Identity quoted in this answer for the cases n=2 and n=3: 2212!=4 and 2313!=24.

Of course the Polarization Identity for algebraic variables immediately implies it for random variables: let each xi be a random variable Xi. Take expectations of both sides. The result follows by linearity of expectation.

whuber
sumber
Well done on explaining so far! Multivariate skewness kind of makes sense. Could you perhaps add an example that would show the importance of this multivariate skewness? Either as an issue in a statistical models, or perhaps more interesting, what real life case would be subject to multivariate skewness :)?
PascalVKooten
3

Hmmm. If we run...

a <- rnorm(100);
b <- rnorm(100);
c <- rnorm(100)
mean((a-mean(a))*(b-mean(b))*(c-mean(c)))/
  (sd(a) * sd(b) * sd(c))

it does seem to center on 0 (I haven't done a real simulation), but as @ttnphns alludes, running this (all variables the same)

a <- rnorm(100)
mean((a-mean(a))*(a-mean(a))*(a-mean(a)))/
  (sd(a) * sd(a) * sd(a))

also seems to center on 0, which certainly makes me wonder what use this could be.

Peter Flom - Reinstate Monica
sumber
2
The nonsense apparently comes from the fact that sd or variance is a function of squaring, as is covariance. But with 3 variables, cubing occurs in the numerator while denominator remains based on originally squared terms
ttnphns
2
Is that the root of it (pun intended)? Numerator and denominator have the same dimensions and units, which cancel, so that alone doesn't make the measure poorly formed.
Nick Cox
3
@Nick That's right. This is simply one of the multivariate central third moments. It is one component of a rank-three tensor giving the full set of third moments (which is closely related to the order-3 component of the multivariate cumulant generating function). In conjunction with the other components it could be of some use in describing asymmetries (higher-dimensional "skewness") in the distribution. It's not what anyone would call a "correlation," though: almost by definition, a correlation is a second-order property of the standardized variable.
whuber
1

If You need to calculate "correlation" between three or more variables, you could not use Pearson, as in this case it will be different for different order of variables have a look here. If you are interesting in linear dependency, or how well they are fitted by 3D line, you may use PCA, obtain explained variance for first PC, permute your data and find probability, that this value may be to to random reasons. I've discuss something similar here (see Technical details below).

Matlab code

% Simulate our experimental data
x=normrnd(0,1,100,1);
y=2*x.*normrnd(1,0.1,100,1);
z=(-3*x+1.5*y).*normrnd(1,2,100,1);
% perform pca
[loadings, scores,variance]=pca([x,y,z]);
% Observed Explained Variance for first principal component
OEV1=variance(1)/sum(variance)
% perform permutations
permOEV1=[];
for iPermutation=1:1000
    permX=datasample(x,numel(x),'replace',false);
    permY=datasample(y,numel(y),'replace',false);
    permZ=datasample(z,numel(z),'replace',false);
    [loadings, scores,variance]=pca([permX,permY,permZ]);
    permOEV1(end+1)=variance(1)/sum(variance);
end

% Calculate p-value
p_value=sum(permOEV1>=OEV1)/(numel(permOEV1)+1)
zlon
sumber