Saya memiliki matriks korelasi berpasangan antara n item. Sekarang saya ingin menemukan subset item k dengan korelasi paling sedikit. Jadi ada dua pertanyaan:
- Manakah ukuran yang tepat untuk korelasi dalam kelompok itu?
- Bagaimana menemukan grup dengan korelasi paling sedikit?
Masalah ini muncul seperti semacam analisis faktor terbalik bagi saya dan saya cukup yakin bahwa ada solusi langsung.
Saya pikir masalah ini sebenarnya sama dengan masalah untuk menghapus (nk) node dari grafik lengkap sehingga node yang tersisa terhubung dengan bobot tepi minimum. Bagaimana menurut anda?
Terima kasih atas saran Anda sebelumnya!
correlation
ranking
Chris
sumber
sumber
Jawaban:
[Peringatan: jawaban ini muncul sebelum OP memutuskan untuk merumuskan kembali pertanyaan, sehingga mungkin kehilangan relevansinya. Awalnya pertanyaannya adalah tentang
How to rank items according to their pairwise correlations
]Karena matriks korelasi berpasangan bukan array unidimensional, tidak cukup jelas seperti apa "peringkat" itu. Terutama selama Anda belum mengerjakan ide Anda secara rinci, seperti yang terlihat. Tetapi Anda menyebut PCA sebagai yang cocok untuk Anda, dan itu segera membuat saya menganggap Cholesky root sebagai alternatif yang berpotensi lebih cocok.
Akar Cholesky seperti matriks pembebanan yang ditinggalkan oleh PCA, hanya berupa segitiga. Saya akan menjelaskan keduanya dengan sebuah contoh.
Matriks pemuatan PCA A adalah matriks korelasi antara variabel dan komponen utama. Kita dapat mengatakannya karena jumlah baris kuadrat adalah semua 1 (diagonal R) sedangkan jumlah matriks kuadrat adalah varian keseluruhan (jejak R). Elemen Cholesky root dari B juga berkorelasi, karena matriks itu juga memiliki dua sifat ini. Kolom B bukan komponen utama dari A, meskipun mereka adalah "komponen", dalam arti tertentu.
Baik A dan B dapat mengembalikan R dan dengan demikian keduanya dapat menggantikan R, sebagai representasi. B adalah segitiga yang jelas menunjukkan fakta bahwa ia menangkap korelasi berpasangan R secara berurutan, atau secara hierarkis. Komponen Cholesky
I
berkorelasi dengan semua variabel dan merupakan gambar linier dari yang pertamaV1
. KomponenII
tidak lagi berbagi denganV1
tetapi berkorelasi dengan tiga yang terakhir ... AkhirnyaIV
hanya berkorelasi dengan yang terakhirV4
,. Saya pikir "peringkat" semacam itu mungkin yang Anda cari ?Masalah dengan dekomposisi Cholesky adalah, - tidak seperti PCA - itu tergantung pada urutan item dalam matriks R. Nah, Anda mungkin mengurutkan item menurun atau naik dari jumlah elemen kuadrat (atau, jika Anda suka , jumlah elemen absolut, atau dalam urutan koefisien korelasi berganda - lihat di bawah ini). Pesanan ini mencerminkan seberapa besar suatu item berkorelasi kotor.
Dari matriks B terakhir kita melihat bahwa
V2
, item yang paling berkorelasi sangat besar, menggadaikan semua korelasinya diI
. Berikutnya item yang berkorelasi sangat besarV1
menggadaikan semua korelasinya, kecuali denganV2
, dalamII
; dan seterusnya.Keputusan lain bisa menghitung koefisien korelasi berganda untuk setiap item dan peringkat berdasarkan besarnya. Korelasi berganda antara suatu item dan semua item lainnya tumbuh sebagai item berkorelasi lebih banyak dengan mereka semua tetapi mereka berkorelasi lebih sedikit satu sama lain. Koefisien korelasi berganda kuadrat membentuk diagonal dari apa yang disebut matriks kovarians gambar yaitu , di mana adalah matriks diagonal dari resiprokal diagonal .SR- 1S - 2 S + R S R- 1
sumber
Inilah solusi saya untuk masalah ini. Saya menghitung semua kombinasi yang mungkin dari k item n dan menghitung saling ketergantungan mereka dengan mengubah masalah dalam grafik-teoretis: Manakah grafik lengkap yang berisi semua node k dengan jumlah tepi terkecil (dependensi)? Berikut skrip python menggunakan perpustakaan networkx dan satu kemungkinan keluaran. Mohon maaf atas ambiguitas dalam pertanyaan saya!
Kode:
Output sampel:
Input grafik:
Grafik solusi:
Untuk contoh mainan, k = 4, n = 6: Input grafik:
Grafik solusi:
Terbaik,
Kristen
sumber
Cari dari item dengan berpasangan korelasi setidaknya: Sejak korelasi katakanlah menjelaskan dari hubungan antara dua seri lebih masuk akal untuk meminimalkan jumlah kuadrat dari korelasi untuk target item. Ini solusi sederhana saya.k n 0,6 0,36 k
Tulis ulang matriks korelasi Anda ke matriks kuadrat korelasi. Jumlahkan kuadrat dari setiap kolom. Hilangkan kolom dan baris yang sesuai dengan jumlah terbesar. Anda sekarang memiliki . Ulangi sampai Anda memiliki matriks . Anda juga bisa menyimpan kolom dan baris yang sesuai dengan jumlah terkecil. Membandingkan metode, saya menemukan dalam matriks dengan dan bahwa hanya dua item dengan jumlah dekat yang disimpan dan dihilangkan secara berbeda.n×n (n−1)×(n−1) k×k k n=43 k=20
sumber