Mengapa kita membaginya dengan standar deviasi dan bukan faktor standardisasi lain sebelum melakukan PCA?


17

Saya membaca pembenaran berikut (dari catatan kursus cs229) tentang mengapa kami membagi data mentah dengan standar menyimpang:

masukkan deskripsi gambar di sini

Meskipun saya mengerti apa yang dikatakan penjelasan, tidak jelas bagi saya mengapa membagi dengan standar deviasi akan mencapai tujuan seperti itu. Dikatakan agar setiap orang lebih pada "skala" yang sama. Namun, itu tidak sepenuhnya jelas mengapa membagi dengan standar deviasi mencapai itu. Seperti, apa yang salah dengan membaginya dengan varians? Mengapa bukan kuantitas lain? Seperti ... jumlah nilai absolut? atau norma lain ... Apakah ada pembenaran matematis untuk memilih STD?

Apakah klaim dalam ekstrak ini pernyataan teoretis yang dapat diturunkan / dibuktikan melalui matematika (dan / atau statistik) atau apakah itu lebih merupakan salah satu pernyataan yang kita lakukan karena tampaknya bekerja dalam "praktik"?

Pada dasarnya, dapatkah seseorang memberikan penjelasan matematis yang ketat tentang mengapa intuisi itu benar? Atau jika itu hanya pengamatan empiris, mengapa kita berpikir itu bekerja secara umum sebelum melakukan PCA?

Juga, dalam konteks PCA, apakah ini proses standarisasi atau normalisasi?


Beberapa pemikiran lain yang mungkin saya "jelaskan" mengapa STD:

Karena PCA dapat diturunkan dari memaksimalkan varians, saya menduga bahwa membagi dengan kuantitas terkait seperti STD, mungkin menjadi salah satu alasan kami dibagi oleh STD. Tapi kemudian saya mempertimbangkan bahwa mungkin jika kita mendefinisikan mungkin "varian" dengan norma lain, , maka kita akan membaginya dengan STD dari norma itu (dengan mengambil akar pth atau sesuatu). Padahal, itu hanya dugaan dan saya tidak 100% tentang ini, maka pertanyaannya. Saya bertanya-tanya apakah ada yang tahu sesuatu yang berkaitan dengan ini.1ni=1n(xiμ)p


Saya memang melihat bahwa mungkin ada pertanyaan terkait:

PCA tentang korelasi atau kovarian?

tetapi sepertinya lebih banyak bicara tentang kapan harus menggunakan "korelasi" atau "kovarians" tetapi tidak memiliki pembenaran yang ketat atau meyakinkan atau terperinci, yang merupakan hal yang paling saya minati.

Sama untuk:

Mengapa kita perlu menormalkan data sebelum analisis

terkait:

Variabel "Normalisasi" untuk SVD / PCA


1
Ada alasan matematis - membagi data (terpusat) oleh SD untuk setiap variabel menghasilkan seperangkat data yang ditransformasi yang matriks kovariansnya hanyalah matriks korelasi dari data asli (terpusat). Setelah itu, kita berada di wilayah matriks korelasi vs kovarians lagi. Apakah Anda mencari bukti bagaimana normalisasi data mengubah matriks kovarian menjadi matriks korelasi?
Silverfish

Pertanyaan judul Anda berbunyi seolah-olah Anda bertanya apa tujuan menormalkannya (sebagai lawan tidak menormalkan). Ini akan menjadi duplikat dari "PCA tentang korelasi atau kovarian". Namun, apa yang sebenarnya Anda tanyakan adalah mengapa normalisasi dilakukan melalui pembagian dengan STD (sebagai lawan dari pembagian berdasarkan varians, atau rentang, dll.). Jika demikian, apakah Anda mungkin ingin mengedit untuk membuat pertanyaan judul lebih tepat?
Amoeba berkata Reinstate Monica

3
Mengenai terminologi, "normalisasi" bukanlah istilah yang tepat dan dapat merujuk ke berbagai hal. Sedangkan "standardisasi" berarti mengurangi mean dan membaginya dengan standar deviasi, yang Anda maksud.
Amoeba berkata Reinstate Monica

2
Saya harus menambahkan bahwa menurut saya pertanyaan Anda sangat bagus (+1). Seseorang memang dapat dinormalisasi dengan membaginya dengan sesuatu yang lain; misalnya, deviasi standar adalah ukuran yang sangat tidak kuat dan dapat menyesatkan dengan adanya pencilan yang kuat. Jadi seseorang dapat memilih untuk membagi dengan beberapa ukuran penyebaran yang kuat sebagai gantinya (lihat misalnya "median absolute deviasi"). Tidak ada "penjelasan matematis yang ketat" tentang mengapa menggunakan STD adalah cara terbaik untuk menormalkan, dan Anda benar bahwa itu "hanya pengamatan empiris" yang sering bekerja dengan baik.
Amuba kata Reinstate Monica

2
Re "mengapa tidak membagi dengan varian sebagai gantinya" - yang dapat dengan mudah dijelaskan oleh inkonsistensi dimensi. Ini akan memberi Anda hasil yang aneh jika Anda mengubah unit tempat salah satu variabel, misalnya. Kembali "mengapa tidak dibagi oleh MAD" - jika data terdistribusi secara normal, maka karena (dalam populasi) MAD adalah proporsional dengan SD, akan mungkin untuk membagi dengan kelipatan MAD yang sesuai dan mendapatkan (tidak efisien tetapi mungkin kuat? ) estimasi korelasi. Itu lebih menarik.
Silverfish

Jawaban:


11

Ini adalah jawaban parsial untuk "tidak jelas bagi saya mengapa membagi dengan standar deviasi akan mencapai tujuan seperti itu". Khususnya, mengapa ini menempatkan data yang diubah (standar) pada "skala yang sama". Pertanyaan ini mengisyaratkan masalah yang lebih dalam (apa lagi yang mungkin "berhasil", yang terkait dengan apa yang "berhasil" bahkan secara matematis?), Tetapi tampaknya masuk akal untuk setidaknya menangani aspek yang lebih langsung mengapa prosedur ini "berhasil" - yaitu, mencapai klaim yang dibuat untuk itu dalam teks.

Entri pada baris dan kolom j dari matriks kovarians adalah kovarians antara i t h dan j t h variabel. Perhatikan bahwa pada diagonal sebuah, baris i dan kolom i , ini menjadi kovarians antara i t h variabel dan itu sendiri - yang hanya varians dari i t h variabel.ijithjthiiithith

Mari panggilan variabel X i dan j t h variabel X j ; Saya akan berasumsi ini sudah berpusat sehingga berarti nol. Ingat bahwa C o v ( X i , X j ) = σ X iithXijthXj

Cov(Xi,Xj)=σXiσXjCor(Xi,Xj)

Kita dapat membakukan variabel sehingga mereka memiliki varians satu, hanya dengan membaginya dengan standar deviasi mereka. Ketika melakukan standarisasi, kita biasanya akan mengurangi rata-rata terlebih dahulu, tetapi saya sudah mengasumsikan mereka terpusat sehingga kita dapat melewati langkah itu. Biarkan dan untuk melihat mengapa variansnya satu, perhatikan ituZi=XiσXi

Var(Zi)=Var(XiσXi)=1σXi2Var(Xi)=1σXi2σXi2=1

Demikian pula untuk . Jika kita mengambil entri pada baris i dan kolom j dari matriks kovarians untuk variabel terstandarisasi, perhatikan bahwa karena mereka terstandarisasi:Zjij

Cov(Zi,Zj)=σZiσZjCor(Zi,Zj)=Cor(Zi,Zj)

Cor(Zi,Zj)Cor(Xi,Xj)

Cov(Zi,Zi)=Var(Zi)=1jadi seluruh diagonal diisi dengan yang, seperti yang kita harapkan. Dalam pengertian ini bahwa data sekarang "pada skala yang sama" - distribusi marjinal mereka harus terlihat sangat mirip, setidaknya jika mereka kira-kira terdistribusi normal untuk memulai dengan, dengan rata-rata nol dan dengan varians (dan deviasi standar) satu. Tidak ada lagi kasus bahwa satu variabilitas menukar yang lain. Anda bisa dibagi dengan ukuran penyebaran yang berbeda, tentu saja. Varians akan menjadi pilihan yang sangat buruk karena inkonsistensi dimensi (pikirkan tentang apa yang akan terjadi jika Anda mengubah unit tempat variabel Anda berada, misalnya dari meter ke kilometer). Sesuatu seperti deviasi absolut median (atau kelipatan MAD yang sesuaijika Anda mencoba menggunakannya sebagai semacam penaksir kuat dari standar deviasi) mungkin lebih tepat. Tapi itu masih tidak akan mengubah diagonal itu menjadi diagonal yang.

Hasilnya adalah suatu metode yang bekerja pada matriks kovarian data terstandarisasi, pada dasarnya menggunakan matriks korelasi dari data asli. Untuk yang Anda lebih suka gunakan pada PCA, lihat PCA tentang korelasi atau kovarian?


2
Saya pikir jawaban ini tidak benar-benar menyentuh pada pertanyaan aktual (dan non-sepele) tentang mengapa standar deviasi diambil sebagai ukuran penyebaran dan digunakan untuk normalisasi. Mengapa tidak mengambil simpangan absolut median saja? Memang, matriks kovarians yang dihasilkan tidak akan menjadi matriks korelasi "default", tetapi mungkin akan lebih baik, misalnya estimasi matriks korelasi yang lebih kuat. Lihat juga komentar terakhir saya ke OP.
Amuba mengatakan Reinstate Monica

2
@ameoba Pada titik "sedang dalam", fakta bahwa kita mendapatkan varians satu ke bawah diagonal dari matriks kovarians baru pada dasarnya adalah apa yang kita maksudkan dengan mendapatkan data yang ditransformasi untuk memiliki variabel "pada skala yang sama" dari perspektif PCA. Pada masalah "sangat dalam" yang diangkat oleh pertanyaan ini, saya tidak yakin ada banyak perbedaan antara bertanya "mengapa kita menggunakan varian sebagai ukuran skala kita dalam PCA?" dan bertanya "mengapa PCA peduli dengan varians (co)?" - atau setidaknya, bahwa kedua masalah tersebut akan saling terkait erat.
Silverfish

1
@amoeba, mengapa tidak membagi dengan MAD atau dengan varian alih-alih SD adalah, pada dasarnya, pertanyaan yang sama seperti mengapa skala berbeda sama sekali: yaitu, mengapa tidak melakukan PCA pada kovarian? Saya mendukung gagasan ini dalam komentar sebelumnya.
ttnphns

1
@ttnphns: Jika variabel yang berbeda memiliki skala yang sama sekali tak tertandingi (suhu, panjang, berat, dll.), maka keinginan untuk menormalkan variabel-variabel tersebut cukup dapat dimengerti. Itulah argumen umum untuk menggunakan matriks korelasi, bukan matriks kovarians. Tetapi jika seseorang khawatir tentang outlier, saya melihat tidak ada yang salah dengan mengurangi median daripada rata-rata dan membaginya dengan MAD bukannya SVD ... Saya tidak pernah melakukannya sendiri, tapi saya pikir itu terdengar seperti hal yang masuk akal untuk dilakukan.
Amoeba berkata Reinstate Monica

1
@amoeba, PCA Linear membutuhkan matriks untuk menjadi matriks tipe-SSCP . Setiap transformasi linear dari variabel asli mempertahankan tipe ini. Tentu saja, Anda bisa melakukan transformasi nonlinier apa pun (seperti, misalnya, pemeringkatan, untuk mendapatkan matriks Spearman rho), tetapi kemudian skor komponen dan pemuatan kehilangan koneksi langsung mereka (dalam arti minimisasi kuadrat) dengan data: mereka sekarang mewakili data yang diubah sebagai gantinya!
ttnphns

5

Mengapa kita membagi dengan standar deviasi
apa yang salah dengan membaginya dengan varians?

z

Jadi: standardisasi (artinya centering + scaling oleh standar deviasi) masuk akal jika Anda menganggap distribusi normal standar masuk akal untuk data Anda.

Mengapa bukan kuantitas lain? Seperti ... jumlah nilai absolut? atau norma lain ...

Kuantitas lain digunakan untuk mengukur data, tetapi prosedur ini disebut standarisasi hanya jika menggunakan pemusatan rata-rata dan pemisah dengan deviasi standar. Penskalaan adalah istilah umum.

Misalnya saya bekerja dengan data spektroskopi dan tahu bahwa detektor saya memiliki sensitivitas yang bergantung pada panjang gelombang dan bias (elektronik). Jadi saya mengkalibrasi dengan mengurangi sinyal offset (kosong) dan mengalikan (membagi) dengan faktor kalibrasi.

Juga, saya mungkin memusatkan bukan pada nilai tengah tetapi pada nilai dasar lainnya, seperti nilai rata-rata dari kelompok kontrol dan bukan nilai tengah. (Secara pribadi, saya hampir tidak pernah distandarisasi karena varians saya sudah memiliki unit fisik yang sama dan berada dalam urutan yang sama besarnya)

Lihat juga: Variabel sering disesuaikan (mis. Standar) sebelum membuat model - kapan ini ide yang bagus, dan kapan itu yang buruk?


+1. Contoh yang bagus dengan data spektroskopi. Omong-omong, selamat dengan mencapai 10 ribu perwakilan!
Amuba kata Reinstate Monica

0

Tautan ini menjawab pertanyaan Anda dengan jelas, saya kira: http://sebastianraschka.com/Articles/2014_about_feature_scaling.html

Saya mengutip sepotong kecil:

Standarisasi Z-skor atau penskalaan Min-Max?

“Standardisasi atau penskalaan Min-Max?” - Tidak ada jawaban yang jelas untuk pertanyaan ini: itu sangat tergantung pada aplikasi.

Misalnya, dalam analisis pengelompokan, standardisasi mungkin sangat penting untuk membandingkan kesamaan antara fitur berdasarkan ukuran jarak tertentu. Contoh lain yang menonjol adalah Analisis Komponen Utama, di mana kami biasanya lebih suka standardisasi daripada penskalaan Min-Max, karena kami tertarik pada komponen yang memaksimalkan varians (tergantung pada pertanyaan dan jika PCA menghitung komponen melalui matriks korelasi, bukan matriks kovarians; tetapi lebih banyak tentang PCA dalam artikel saya sebelumnya).

Namun, ini tidak berarti bahwa penskalaan Min-Max sama sekali tidak berguna! Aplikasi populer adalah pemrosesan gambar, di mana intensitas piksel harus dinormalisasi agar sesuai dalam rentang tertentu (yaitu, 0 hingga 255 untuk rentang warna RGB). Juga, algoritma jaringan saraf tipikal memerlukan data yang pada skala 0-1.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.