Saya mengalami masalah menghitung koefisien korelasi pearson dari kumpulan data dengan kemungkinan nol standar deviasi (yaitu semua data memiliki nilai yang sama).
Misalkan saya memiliki dua set data berikut:
float x[] = {2, 2, 2, 3, 2};
float y[] = {2, 2, 2, 2, 2};
Koefisien korelasi "r", akan dihitung menggunakan persamaan berikut:
float r = covariance(x, y) / (std_dev(x) * std_dev(y));
Namun, karena semua data dalam kumpulan data "y" memiliki nilai yang sama, std_dev standar deviasi (y) akan menjadi nol dan "r" akan tidak ditentukan.
Apakah ada solusi untuk masalah ini? Atau haruskah saya menggunakan metode lain untuk mengukur hubungan data dalam kasus ini?
correlation
Andree
sumber
sumber
Jawaban:
"Teori sampel" orang akan memberi tahu Anda bahwa tidak ada perkiraan seperti itu. Tapi Anda bisa mendapatkannya, Anda hanya perlu masuk akal tentang informasi sebelumnya, dan melakukan pekerjaan matematika yang lebih sulit.
Jika Anda menentukan metode estimasi Bayesian, dan posterior sama dengan sebelumnya, maka Anda dapat mengatakan data tidak mengatakan apa pun tentang parameter. Karena hal-hal mungkin menjadi "tunggal" pada kita, maka kita tidak dapat menggunakan spasi parameter tak terbatas. Saya berasumsi bahwa karena Anda menggunakan korelasi Pearson, Anda memiliki kemungkinan normal bivariat:
Sekarang untuk menunjukkan bahwa satu set data mungkin memiliki nilai yang sama, tulis , dan kemudian kita dapatkan:ysaya= y
s2x=1
Dan kemungkinan Anda tergantung pada empat nomor, . Jadi Anda menginginkan perkiraan , jadi Anda perlu mengalikannya dengan sebelumnya, dan mengintegrasikan parameter gangguan . Sekarang untuk mempersiapkan integrasi, kita "menyelesaikan kotak"s2x, y, x¯¯¯, N ρ μx, μy, σx, σy
Sekarang kita harus berbuat salah di sisi kehati-hatian dan memastikan probabilitas dinormalisasi dengan benar. Dengan begitu kita tidak bisa mendapat masalah. Salah satu opsi tersebut adalah dengan menggunakan prior informatif yang lemah, yang hanya menempatkan batasan pada kisaran masing-masing. Jadi kita memiliki untuk sarana dengan flat sebelum dan untuk standar deviasi dengan jeffreys sebelumnya. Batasan ini mudah diatur dengan sedikit "akal sehat" untuk memikirkan masalahnya. Saya akan mengambil yang tidak ditentukan sebelumnya untuk , dan jadi kami mendapatkan (seragam harus bekerja ok, jika tidak memotong singularitas ):Lμ< μx, μy< Uμ Lσ< σx, σy< Uσ ρ ± 1
Di mana . Ini memberikan posterior dari:A = 2 ( Uμ- Lμ)2[ L o g( Uσ) - l o g( Lσ) ]2
Sekarang integrasi pertama di atas dapat dilakukan dengan membuat perubahan variabel dan integral pertama lebih dari menjadi:μy z=N−−√μy−[y−(x¯¯¯−μx)ρσyσx]σy1−ρ2√⟹dz=N√σy1−ρ2√dμy μy
Dan Anda dapat melihat dari sini, tidak ada solusi analitik yang mungkin. Namun, perlu juga dicatat bahwa nilai belum keluar dari persamaan. Ini berarti bahwa data dan informasi sebelumnya masih memiliki sesuatu untuk dikatakan tentang korelasi yang sebenarnya. Jika data tidak mengatakan apa pun tentang korelasinya, maka kita hanya akan dibiarkan dengan sebagai satu-satunya fungsi dalam persamaan ini.ρ p(ρ) ρ
Ini juga menunjukkan bagaimana itu melewati batas batas tak terbatas untuk "membuang" beberapa informasi tentang , yang terkandung dalam fungsi CDF normal yang tampak rumit . Sekarang jika Anda memiliki banyak data, maka melewati batas itu baik-baik saja, Anda tidak kehilangan banyak, tetapi jika Anda memiliki informasi yang sangat langka, seperti dalam kasus Anda - penting untuk menyimpan setiap memo yang Anda miliki. Ini berarti matematika jelek, tetapi contoh ini tidak terlalu sulit untuk dilakukan secara numerik. Jadi kita dapat mengevaluasi kemungkinan terintegrasi untuk pada nilai-nilai katakanlah cukup mudah. Cukup ganti integral dengan penjumlahan dalam interval yang cukup kecil - sehingga Anda memiliki penjumlahan tiga kali lipatμy ρ Φ(.) ρ −0.99,−0.98,…,0.98,0.99
sumber
Saya setuju dengan sesqu bahwa korelasinya tidak ditentukan dalam kasus ini. Bergantung pada jenis aplikasi Anda, misalnya Anda dapat menghitung Kesamaan Gower antara kedua vektor, yaitu: mana mewakili kronecker-delta , diterapkan sebagai fungsi pada . δv1,v2gower(v1,v2)=∑ni=1δ(v1i,v2i)n δ v1,v2
Jadi misalnya jika semua nilai sama, gower (.,.) = 1. Jika di sisi lain mereka hanya berbeda dalam satu dimensi, gower (.,.) = 0,9. Jika mereka berbeda di setiap dimensi, gower (.,.) = 0 dan seterusnya.
Tentu saja ini bukan ukuran untuk korelasi, tetapi memungkinkan Anda untuk menghitung seberapa dekat vektor dengan s> 0 dengan yang dengan s = 0. Tentu saja Anda dapat menerapkan metrik lain juga, jika metrik tersebut melayani tujuan Anda dengan lebih baik.
sumber
Korelasi tidak ditentukan dalam kasus itu. Jika Anda harus mendefinisikannya, saya akan mendefinisikannya sebagai 0, tetapi pertimbangkan perbedaan mutlak rata-rata sederhana sebagai gantinya.
sumber
Pertanyaan ini datang dari programmer, jadi saya sarankan memasukkan nol. Tidak ada bukti korelasi, dan hipotesis nol akan menjadi nol (tidak ada korelasi). Mungkin ada pengetahuan konteks lain yang akan memberikan korelasi "khas" dalam satu konteks, tetapi kode tersebut mungkin digunakan kembali dalam konteks lain.
sumber