Bayangkan Anda memiliki poligon yang didefinisikan oleh seperangkat koordinat dan pusat massanya adalah pada . Anda dapat memperlakukan poligon sebagai distribusi seragam dengan batas poligon.
Saya mencari metode yang akan menemukan matriks kovarian poligon .
Saya menduga bahwa matriks kovarians poligon terkait erat dengan momen kedua dari area , tetapi apakah mereka setara, saya tidak yakin. Rumus yang ditemukan dalam artikel wikipedia yang saya tautkan tampaknya (tebakan di sini, tidak terlalu jelas bagi saya dari artikel) untuk merujuk pada inersia rotasi di sekitar sumbu x, y dan z daripada sumbu utama poligon.
(Kebetulan, kalau ada yang bisa mengarahkan saya ke cara menghitung sumbu utama poligon, itu juga akan berguna bagi saya)
Ini tergoda untuk hanya melakukan PCA pada koordinat , tetapi hal itu berjalan ke masalah bahwa koordinat tidak selalu tersebar merata di sekitar poligon, dan karena itu tidak mewakili kepadatan poligon. Contoh ekstrem adalah garis besar North Dakota, yang poligonnya didefinisikan oleh sejumlah besar titik mengikuti sungai Merah, ditambah hanya dua titik lagi yang menentukan tepi barat negara bagian.
sumber
Jawaban:
Mari kita lakukan analisis terlebih dahulu.
Misalkan dalam poligon kepadatan probabilitasnya adalah fungsi proporsional Maka konstanta proporsionalitas adalah kebalikan dari integral atas poligon,P p(x,y). p
The barycenter dari poligon adalah titik koordinat rata-rata, dihitung sebagai momen pertama mereka. Yang pertama adalah
The tensor inersia dapat direpresentasikan sebagai array simetris saat kedua dihitung setelah menerjemahkan poligon untuk menempatkan barycenter pada titik asal: yaitu, matriks momen kedua pusat
di mana berkisar dari hingga hingga Tensor itu sendiri - alias matriks kovarians - adalah(k,l) (2,0) (1,1) (0,2).
PCA menghasilkan sumbu utama dari ini adalah vektor satuan eigen yang diukur oleh nilai eigennya.I(P) P :P:
Selanjutnya, mari kita cari tahu cara melakukan perhitungan. Karena poligon disajikan sebagai urutan simpul yang menggambarkan batas berorientasi adalah wajar untuk memanggil∂P,
Misalnya, dengan dan kepadatan konstan ( mis. , Seragam) kita dapat (dengan inspeksi) memilih salah satu dari banyak solusi, sepertidω=xkyldxdy p, ω(x,y)=−1l+1xkyl+1dx.
Intinya adalah bahwa integral kontur mengikuti segmen garis yang ditentukan oleh urutan simpul. Segmen baris apa pun dari vertex ke vertex dapat diparameterisasi dengan variabel nyata dalam formuliru v t
di mana adalah arah normal satuan dari keNilai karena itu berkisar dari hingga Di bawah parameterisasi ini dan adalah fungsi linear dari dan dan adalah fungsi linear dari Dengan demikian integran dari integral kontur atas setiap tepi menjadi fungsi polinom dari yang mudah dievaluasi untuk kecil danw∝v−u u v. t 0 |v−u|. x y t dx dy dt. t, k l.
Menerapkan analisis ini sama mudahnya dengan mengkodekan komponen-komponennya. Pada level terendah kita akan memerlukan fungsi untuk mengintegrasikan satu-bentuk polinomial pada segmen garis. Fungsi tingkat yang lebih tinggi akan mengumpulkan ini untuk menghitung momen mentah dan pusat untuk mendapatkan barycenter dan tensor inersia, dan akhirnya kita dapat beroperasi pada tensor tersebut untuk menemukan sumbu utama (yang merupakan vektor eigen yang diskalakan). The
R
kode di bawah melakukan pekerjaan ini. Itu tidak membuat pretensi efisiensi: ini dimaksudkan hanya untuk menggambarkan penerapan praktis dari analisis sebelumnya. Setiap fungsi mudah dan konvensi penamaan sejajar dengan analisis.Termasuk dalam kode adalah prosedur untuk menghasilkan poligon tertutup, hanya terhubung, non-self-berpotongan yang valid (dengan mendeformasi secara acak titik-titik di sepanjang lingkaran dan termasuk titik awal sebagai titik terakhir untuk membuat loop tertutup). Berikut ini adalah beberapa pernyataan untuk memplot poligon, menampilkan simpulnya, berdampingan dengan barycenter, dan memplot sumbu utama dalam warna merah (terbesar) dan biru (terkecil), menciptakan sistem koordinat poligon-sentris berorientasi positif.
sumber
Sunting: Tidak menyadari bahwa whuber sudah menjawab. Saya akan meninggalkan ini sebagai contoh dari pendekatan lain (mungkin kurang elegan) untuk masalah ini.
Matriks kovarians
Mari menjadi titik acak dari distribusi seragam pada poligon dengan luas . Matriks kovarians adalah:(X,Y) P A
di mana adalah varian , adalah varian , dan adalah kovarians antara dan . Ini mengasumsikan nol rata-rata, karena pusat massa poligon terletak di titik asal. Distribusi seragam memberikan kepadatan probabilitas konstan ke setiap titik dalam , jadi:CXX=E[X2] X CYY=E[Y2] Y CXY=E[XY] X Y 1A P
Triangulasi
Alih-alih mencoba mengintegrasikan langsung ke wilayah rumit seperti , kita dapat menyederhanakan masalah dengan mempartisi ke dalam subregional segitiga:P P n
Dalam contoh Anda, satu kemungkinan partisi tampak seperti ini:
Ada berbagai cara untuk menghasilkan triangulasi (lihat di sini ). Misalnya, Anda bisa menghitung triangulasi simpul Delaunay , kemudian membuang sisi-sisi yang berada di luar (karena ini mungkin bukan cembung seperti pada contoh).P
Integral over kemudian dapat dibagi menjadi jumlah integral atas segitiga:P
Segitiga memiliki batas yang bagus dan sederhana sehingga integral ini lebih mudah untuk dievaluasi.
Mengintegrasikan lebih dari segitiga
Ada berbagai cara untuk berintegrasi dengan segitiga. Dalam hal ini, saya menggunakan trik yang melibatkan pemetaan segitiga ke unit square. Mengubah ke koordinat barycentric mungkin menjadi pilihan yang lebih baik.
Berikut adalah solusi untuk integral di atas, untuk segitiga sembarang didefinisikan oleh simpul . Membiarkan:T (x1,y1),(x2,y2),(x3,y3)
Kemudian:
Menyatukan semuanya
Biarkan dan berisi koordinat x / y dari simpul untuk setiap segitiga , seperti di atas. Masukkan ke dalam untuk setiap segitiga, mencatat bahwa ketentuan daerah dibatalkan. Ini memberikan solusinya:vix viy Ti (3) (2)
Kapak utama
Sumbu utama diberikan oleh vektor eigen dari matriks kovarian , seperti pada PCA. Tidak seperti PCA, kami memiliki ekspresi analitik untuk , daripada harus memperkirakannya dari titik data sampel. Perhatikan bahwa simpul itu sendiri bukan sampel yang representatif dari distribusi seragam pada , jadi orang tidak bisa begitu saja mengambil matriks kovarians sampel dari simpul tersebut. Tapi, * adalah * fungsi simpul yang relatif sederhana, seperti yang terlihat pada .C C P C (4)
sumber