BILKO : MEMAHAMI MATRIK KOVARIAN DAN KORELASI DAN INTERPRETASI PC LOADING PCA

Kali ini kita akan membahas tutorial BILKO (learn-eo.org) tentang bagaimana proses pembentukan PCA, bagaimana matrik kovarians dan korelasi dihitung, dan bagaimana eigenvalue dan total prosentasi variance dijumlahkan oleh setiap principal component.  Pada akhir tutorial ini kita akan mengerti dasar bagaimana PCA bekerja dan kita mampu membuat matrik kovarians dan korelasi menggunakan informasi statistik yang dihasilkan dari histogram dan scattergram Bilko. Kita juga akan belajar bagaimana menggunakan PC loadings (koefisien atau bobot) untuk menghitung saluran – saluran PC dan eigenvalue untuk setiap saluran PC dan mengetahui seberapa besar total varians dari citra asli dijumlahkan untuk pada setiap saluran – saluran PC.

Setiap saluran pada citra multispektal seringnya berkorelasi, yang mengisyaratkan adanya redudansi data dimana terdapat informasi yang diulang pada saluran berbeda. Principal components analysis (PCA) mendefinisikan jumlah dimensi dan sumbu principal variabilitas yang berada pada data set, sekaligus menciptakan citra principal component (PC) yang mencakup variabilitas tersebut. Jadi seperti yang terdapat pada enam saluran Landsat TM (tanpa saluran termal) kita dapat meringkas lebih dari 95% variabilitas dari citra tersebut ke dalam 3 citra pertama dari principal component. Komposit citra dari ketiga saluran principal component tersebut akan memberikan kenampakan yang lebih jelas dalam membedakan penutup lahan dari pada komposit citra dari saluran asli. Tutorial ini pertama akan melihat bagaimana matrik kovarians dan korelasi yang digunakan pada PCA diturunkan dan yang kedua kita akan melihat bagaimana menggunakan matrik tersebut dan tabel dari PC loading yang dihasilkan oleh Bilko untuk menghitung eigenvalue setiap saluran PC dan kemudian prosentasi dari total varians setiap saluran PC.

Sebelum memulai tutorial ini dan untuk memudahkan kita, maka kita harus bisa sofware pengolah angka atau spreadsheets, sudah menyelesaikan tutorial bilko tentang scaterrgram dan Principal Componet Analysis dan mengerti sedikit tentang statistik akan membantu untuk memahami proses pembuatan PCA.

Memahami Matrik Kovarians dan Korelasi

PCA dapat dilakukan menggunakan matrik kovarians atau matrik korelasi dimana Bilko dapat emnghitungkan untuk kita, tapi kita juga dapat menghitungnya sendiri pada speadsheet untuk citra cakupan relatif kecil atau dapat menggunakan histogram dan scattergram pada Bilko untuk mendapatkan nilai yang berguna untuk menghasilkan matrik kovarians dan korelasi jika citra yang kita gunakan tertalu besar untuk spreadsheet (contohnya citra dengan kolom lebih dari 256). Kita akan menggunakan citra Landsat TM wilayah sekitar Ely di Cambridgeshire, UK yang disediakan oleh Bilko. Kita hanya akan bekerja pada saluran #1 sampai #3.

Memahami Matrik Kovarians

Sebelum melangkah lebih jauh, kita akan melihat struktur matrik kovarians dan memeriksa bagaimana setiap elemet matrik kovarians dihitung. Citra Landsat TM terdiri dari saluran 1 – 5 dan 7, sehingga matrik akan terdiri dari 6 kolom dan 6 baris. Matrik juga terdiri dari diagonal karena kovarians #1 dan #2 sama dengan #2 dan #1.

mini-0224

Varians setiap saluran adalah jumlah kuadrad dari setiap piksel dikurangi dengan mean citra (sum of square) dibagi dengan derajat kebebasan. Untuk setiap saluran (band) j dengan nc kolom dan nr baris, sum of squares dapat dihitung sebagai berikut.

mini-0225

Varians adalah sum of squares dibagi dengan derajat kebebasan total seluruh piksel dikurangi satu.

mini-0226

Untuk citra Landsat TM yang kita gunakan jumlah kolom nc = 512 dan jumlah baris nr = 512, dan j adalah saluran citra 1 – 5 dan 7. Kita dapat melihat perhitungan varians relatif mudah jika kita mengetahui mean citra. Pertama kita menghitung kuadrat perbedaan antara nilai piksel dan nilai mean citra, kemudian menjumlahkan seluruh nilainya, yang ketiga kita membaginya dengan derajat kebebasan yaitu (512 x 512) – 1 = 262.143. Jika kita ingin menghitung manual Bilko menyediakan PCA_matrix_calculation.xls, dimana untuk contoh hanya menggunakan baris dan kolom 35 x 35.

Varians kuadrat adalah standart deviasi dan standart deviasi adalah salah satu informasi statistik yang dihasilakan dari histogram pada Bilko. Jadi jalan paling mudah untuk mendapatkan varians citra pada Bilko adalah membuat histogram dan mengkuadratkan nilai dari standart deviasi melalui kalkulator atau speradsheet. Catatan histogram juga menampilkan nilai mean citra.

Kovarians dari dua citra adalah sum of the products dari setiap piksel dibagi derajat kebebasan. Perhitungannya seperti sum of squares tapi setiap piksel yang dikurangi nilai mean dari satu saluran dikali dengan pengurangan piksel oleh mean dari saluran lain. Untuk saluran j dan k dengan nc kolom dan nr   baris, sum of the products dapat dihitung sebagai berikut.

mini-0227

Kovarians adalah sum of the product dibagi dengan derajat kebebasan, yaitu seluruh piksel dikurangi satu.

mini-0228

Kita akan melihat perhitungan tersebut relatif sederhana dan langsung dalam menghitung kovarians dua citra jika kita mengetahui nilai meannya. Pertama kita akan menghitung cross-product dari setiap piksel dikurangi nilai mean tiap – tiap saluran, kemudian kita akan menjumlahkan seluruh nilainya, dan yang terakhir kita membaginya dengan derajat kebebasan yaitu (512 x 512) – 1 = 262.143. Jika kita ingin menghitung manual Bilko menyediakan PCA_matrix_calculation.xls, dimana untuk contoh hanya menggunakan baris dan kolom 35 x 35.

Tapi perlu dipahami bahwa kovarians adalah informasi satistik yang ada dan dihasilkan Bilko melalui scattergram dari dua citra. Jadi cara paling mudah mendapatkan nilai kovarians adalah membuat scattergram dan melihat nilai kovariansnya.

Memahami Matrik Korelasi

Kita akan melihat struktur matrik korelasi dan memeriksa bagaimana elemen – elemen matrik korelasi dihitung. Struktur matrik korelasi sama dengan matrik kovarians. Citra Landsat TM terdiri dari saluran 1 – 5 dan 7, sehingga matrik akan terdiri dari 6 kolom dan 6 baris. Matrik juga terdiri dari diagonal karena korelasi #1 dan #2 sama dengan #2 dan #1. Pada garis diagonal setiap saluran memiliki korelasi sempurna karena berkorelasi dengan dirinya sendiri yaitu 1.

mini-0229

Product – moment correlation coeficient (rjk) untuk saluran j dan k dapat dikalkulasikan jika sum of squares dan sum of product setiap saluran diketahui, seperti berikut:

mini-0230

mini-0231

Jadi menghitung korelasi antara dua citra dapat dilakukan dengan mudah (lihat contoh pada PCA_matrix_calculation.xls) tapi kita dapat memperoleh nilai korelasi melalui Bilko dengan membuat scattergram antara dua citra dan membaca nilai korelasinya.

Kita akan memulai aktivitas untuk memahami matrik kovarians dan matrik korelasi. Pertama buka satu set citra Littleport_TM.set yang terdiri dari saluran 1 – 5 dan 7, gunakan tombol <Tab> pada keyboard atau pilih menu Image  Animate

mini-0201

Karena beberapa citra memiliki tampilan yang tidak memiliki kontras terlalu tajam, kita dapat melakukan penajaman citra dengan memilih seluruh piksel citra dengan <Ctrl> + A dan menerapkan penajaman citra ekualisasi histogram (Equalize) dan pastikan kotak centang  Apply stretches to charts, clipboard etc. pada Stretch  Option tidak tercentang.

mini-0202

Hasilnya kontras pada citra semakin terlihat dan lebih memudahkan kita dalam melakukan interpretasi.

mini-0203

Buka data spreadsheet PCA_workbook.xls dan patikan membuka bagain matrik kovarians dan abaikan terlebih dahulu PC loadings for covariance matrix.

mini-0204

Semua nilai kovarians sudah diisi oleh Bilko kecuali saluran 1 sampai 3 karena merupakan bagian kita mengisinya. Tugas pertama kita adalah mendapatkan nilai mean dan standart deviasi dan memasukkanya pada kolom di exel yang sesuai. Formula pada exel akan menggunakan nilai ini untuk mengisi varians dan kovarians, jadi perhatikan baik – baik data exel tersebut dan periksa setiap cellnya untuk mengetahui proses nilai didapatkan.

Kembali pada Bilko, kemudian klik pada data set citra Landsat TM dan pilih seluruh piksel citra dengan <Ctrl> + A. Kemudian pilih menu File New dan akan muncul kotak dialog New, pilih HISTOGRAM Document. Maka akan muncul histogram citra beserta keterangan statistiknya

mini-0205

Klik kanan pada histogram, pilih pada Names

mini-0206

Maka akan muncul kotak dialog Names, yang memuat nilai mean dan standart deviasi, copy (<Ctrl> + C) nilai tersebut dengan memblok hanya pada data tersebut dan jangan sampai ada space dibelakangnya karena akan bermasalah ketika dipaste pada exel.

mini-0207

Pada speardsheet kilk pada cell I3 pilih tombol paste atau tekan tombol pada keyboard <Shift><Insert> untuk memaste nilai mean dan standart deviasi saluran 1. Nilai varians dikalkulasi secara otomatis pada cell K3 hasil dari kuadrat standart deviasi dan akan muncul juga pada tabel matrik kovarians. Ulangi sampai saluran 3.

mini-0208

Dari informasi di atas kita dapat mengetahui varians total yaitu pada Trace sebesar 1213,16, dan kita juga dapat mengetahui saluran yang memiliki varians terbesar, yaitu saluran inframerah dekat dengan prosentase 48,13% dan yang paling sedikit adalah saluran hijau dengan prosentase 2.51%.

Selanjutnya kita akan mencari kovarians antara #1 dan #2 , #1 dan #3, dan #2 dan #3 yang dapat kita peroleh dari scattergram. Pertama pilih menu Image  Connect…

mini-0209

Akan muncul muncul kotak dialog Connect, pilih saluran 1 dan saluran 2, jika ingin mencari kovarians saluran 1 dan 2, jika ingin mencari kovarians 1 dan 3 maka pilih saluran 1 dan 3, dan seterusnya. Klik OK

mini-0232

Pastikan pada selector citra saluran 1 menjadi sumbu x @1 dan citra saluran 2 menjadi sumbu y @2.

mini-0210

Pilih seluruh piksel citra hasil connect, kemudian pilih menu File New dan pilih SCATTER Document, dan lihat informasi pada scattergram. Terdapat informasi kovarians dan korelasi.

mini-0211

Klik kanan pada scattergram, dan pilih Names, maka akan muncul kotak dialog Names, yang memuat nilai kovarians dan korelasi, copy (<Ctrl> + C) nilai tersebut dengan memblok hanya pada data tersebut dan jangan sampai ada space dibelakangnya karena akan bermasalah ketika dipaste pada exel.

Pada speardsheet kilk pada cell L12 pilih tombol paste atau tekan tombol pada keyboard <Shift><Insert> untuk memaste nilai kovarians saluran 1 dan 2, maka nilai kovarians akan muncul dengan sendirinya di tabel matrik kovarians. Lakukan hal yang sama pada nilai korelasi dan pasti pada sheet matrik korelasi pada data spreadsheet. Ulangi prosedur tersebut sampai semua terisi. Kita dapat mengetahui saluran mana yang saling berkorelasi dan mana yang paling tidak berkorelasi.

mini-0212

Kita sudah belajar bagaimana nilai kovarians dan korelasi didapatkan, sehingga tanpa menggunakan Bilko pun kita sudah paham bagaimana proses kerjanya sehingga kita tidak merasa bahwa PCA adalah “black box”.

Menginterpretasi PC Loadings

Membuat PC loadings (koefisien atau bobot) dari data asli untuk membuat saluran PC membutuhkan kemampuan matimatika yang baik dan tidak akan dibahas disini karena Bilko akan mengkomputasikannya. Ketika kita membuat PCA melalui Bilko, Bilko akan membuat dua tabel; tabel matrik kovarians atau korelasi dimana kita harus memilih salah satu dan yang kedua adalah tabel PC loadings. PC loadings merupakan deretan eigenvector (serie koefisien atau bobot) untuk saluran PC yang baru.

Kembali ke Bilko, kik pada citra Littleport TM yang terstacking. Pilih menu Imange PCA… maka akan muncul kotak dialog PCA pada Component Output, Type: pilih 32-bit floating point kemudian pilih Covariance matrix dan centang Matrix report

mini-0214

Maka akan muncul tabel matrix kovarians dan PC loadings, buka PCA_Workbook.xls dan bandingkan hasil kovarians matrix Bilko. Hasilnya akan sama seperti gambar di bawah.

mini-0213

Sekarang perhatikan tabel PC loadings. Tabel tersebut berisi daftar koefisien atau bobot setiap saluran PC. Jadi kolom pc1 adalah eigenvector pertama dan memberikan informasi kepada kita bobot yang digunakan untuk menggabungkan 6 saluran asli untuk membuat saluran PC pertama.

mini-0215

Berikut formulanya

pc1 = -0.169*saluran#1 – 0.101*saluran#2 – 0.220x*saluran#3 + 0.767*saluran#4 – 0.439*saluran #5 – 0.361*saluran #7

untuk setiap saluran PC kita dapat menghitung eigenvaluenya, yang mencerminkan jumlah varians saluran asli yang dijelaskan oleh setiap saluran turunan yang baru. Jumlah eigenvalue untuk setiap saluran PC akan sama dengan jumlah varians saluran asli atau trace dari matrix kovarians, begitu juga untuk matrix korelasi.

Menginterpretasi PC Loadings Kovarians

Pada matrix kovarians, untuk menghitung nilai eigenvalue pc1 kita harus mengkalikan PC loadings pada kolom pc1 dengan baris pertama dari tabel matrix kovarians dan kemudian menjumlahkan seluruhnya kemudian dibagi dengan PC loading pc1/saluran#1 = -0,169. Untuk menghitung nilai eigenvalue pc2 kita harus mengkalikan PC loading pada kolom pc2 dengan baris kedua dari tabel matrix kovarians, menjumlahkan semuanya dan membanginya dengan PC loading pc2 saluran#2 = 0,181, dan seterusnya.

Eigenvalue pc1 = (-0.169×74.20 – 0.101×43.31 – 0.220×64.32 + 0.768x-25.39 – 0.439×102.83 – 0.361×64.91)/-0.169

Kita akan mempraktekkanya melalui PCA_Workbook.xls dimana akan membantu kita mengetahui varians dalam data yang telah dikompresi ke dalam saluran PC.

Pada Bilko, klik pada tabel PC loadings, kemudian pilih menu Edit Select All kemudian pilih tombol Copy. Sekarang buka worksheet Covariance Matrix pada PCA_Workbook.xls dan kilik pada cell A16 dan paste PC loading disana. Karena akan lebih mudah mengalikan baris dengan baris daripada baris dengan kolom, maka akan menyusun ulang posisi PC loadings menggunakan Paste Special Transpose pada exel.

Pada exel blok cell B15 sampai G21 kita dapat lihat pc1 berada di cell kiri atas dan nilai 0,107 pada cell bawah kanan kemudian klik pada tombol copy, dan pastekan pada cell A25 degan klik kanan Edit ‣ Paste Special dan pilih Transpose dan akan tersusun seperti di bawah.

mini-0216

dan secara otomatis akan menghasilkan nilai eigenvalue dan % varians pada setiap PC. Kita dapat lihat bahwa nilai eigenvalue pc1 adalah 707,04 dengan prosen varians sebesar 58,30 %.

mini-0218

Kita dapat memastikan perhitungan nilai eigenvalue (varians) dari exel benar atau tidak dengan melihat histogram masing – masing PC.  Kembali pada Bilko, kemudian klik pada data set citra Landsat TM hasil PCdan pilih seluruh piksel citra dengan <Ctrl> + A. Kemudian pilih menu File New dan akan muncul kotak dialog New, pilih HISTOGRAM Document. Maka akan muncul histogram citra beserta keterangan statistiknya

mini-0217

Maka akan muncul kotak dialog Names, yang memuat nilai mean dan standart deviasi, copy (<Ctrl> + C) nilai tersebut dengan memblok hanya pada data tersebut dan jangan sampai ada space dibelakangnya karena akan bermasalah ketika dipaste pada exel. Pastekan standart deviasi pada cell M35, dan kita akan mendapatkan nilai eigenvalue pada cell N35 yang memiliki nilai sama dengan perhitungan PCA_Workbook.xls.

Akhirnya kita akan melihat hubungan antara saluran hasil PCA , dimana kita melihat sebelumnya bahwa disana antara saluran yang satu dengan lainya terdapat korelasi yang mencerminkan adanya pengulangan informasi sehingga perlu dikompresi melalui PCA. saluran hasil PCA seharusnya tidak berkorelasi sama sekali. Kita dapat lihat melaui scattergram Bilko.

Hubungkan pc1 dan pc2 , kemudian pilih menu File New SCATTER Document, maka kita akan melihat nilai korelasi kedua saluran mendekati 0.

mini-0219

Menginterpretasi PC Loadings Korelasi

Kembali ke Bilko, kik pada citra Littleport TM yang terstacking. Pilih menu Imange PCA… maka akan muncul kotak dialog PCA pada Component Output, Type: pilih 32-bit floating point kemudian pilih Correlation matrix dan centang Matrix report

mini-0220

Maka akan muncul tabel matrix korelasi dan PC loadings, buka PCA_Workbook.xls dan bandingkan hasil matrix korelasi Bilko. Hasilnya akan sama seperti gambar di bawah.

mini-0221

Sekarang perhatikan tabel PC loadings. Tabel tersebut berisi daftar koefisien atau bobot setiap saluran PC. Jadi kolom pc1 adalah eigenvector pertama dan memberikan informasi kepada kita bobot yang digunakan untuk menggabungkan 6 saluran asli untuk membuat saluran PC pertama.

mini-0233

Berikut formulanya untuk mendapatkan eigenvalue matrik korelasi

pc1 = 0.898*saluran#1 + 0.913*saluran#2 + 0.966*saluran #3 – 0.311*saluran#4 + 0.870*saluran #5 + 0.905*saluran #7

menemukan nilai eigenvalue pada matrik korelasi merupakan hal yang simple dari pada eigenvalue matrix kovarians. Jika kita menjumlah kuadrat PC loading pada setiap PC, maka kita akan mendapatkan nilai eigenvalue. Prosentase varians dihitung dari jumlah setiap nilai eigenvalue dibagi jumlah eigenvalue seluruh saluran, dalam kasus ini adalah 6. Akan lebih mudah jika menggunakan exel.

Pada Bilko, klik pada tabel PC loadings korelasi, kemudian pilih menu Edit Select All kemudian pilih tombol Copy. Sekarang buka worksheet Correlation Matrix pada PCA_Workbook.xls dan kilik pada cell A16 dan paste PC loading disana.

mini-0222

Kuadrat dari setiap PC loading akan secara otomatis mengkalkulasikan nilai pada tabel di bawahnya, dan sekaligus menghitung nilai eigenvalue dan prosentase variansnya. Dapat kita lihat bahwa nilai varians pc1 adalah 70,73% dan total tiga pc pertama adalah 96,81%.

Sebelum kita akhiri alangkah baiknya kita melihat citra kompositnya, berikut adalah citra composit saluran Matrix kovarians (pc1, pc2, pc3), komposit inframerah dekat (#4, #3, #1), dan matrix korelasi (pc1, pc2, pc3).

mini-0223

Sumber : Mini-Lesson 2 Bilko (www.noc.soton.ac.uk/bilko)

*** SEMOGA BERMANFAAT ***

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s