Perché ci dividiamo per la deviazione standard e non per qualche altro fattore di standardizzazione prima di fare PCA?


17

Stavo leggendo la seguente giustificazione (dalle note del corso cs229) sul perché dividiamo i dati grezzi per la loro deviazione standard:

inserisci qui la descrizione dell'immagine

anche se capisco cosa sta dicendo la spiegazione, non mi è chiaro il motivo per cui la divisione per la deviazione standard avrebbe raggiunto un tale obiettivo. Dice che tutti sono più sulla stessa "scala". Tuttavia, non è del tutto chiaro il motivo per cui la divisione per la deviazione standard raggiunge questo obiettivo. Come, cosa c'è di sbagliato nel dividere per la varianza? Perché non qualche altra quantità? Come ... la somma di valori assoluti? o qualche altra norma ... Esiste una giustificazione matematica per scegliere l'STD?

Le affermazioni in questo estratto sono un'affermazione teorica che può essere derivata / dimostrata attraverso la matematica (e / o la statistica) o è più una di quelle affermazioni che facciamo perché sembra funzionare nella "pratica"?

Fondamentalmente, si può fornire una rigorosa spiegazione matematica del perché quell'intuizione è vera? O se è solo un'osservazione empirica, perché pensiamo che funzioni in generale prima di fare PCA?

Inoltre, nel contesto della PCA, è questo il processo di standardizzazione o normalizzazione?


Alcuni altri pensieri che ho avuto che potrebbero "spiegare" perché lo STD:

Dal momento che la PCA può essere derivata dalla massimizzazione della varianza, immaginai che dividere per una quantità correlata come l'STD, potrebbe essere uno dei motivi che abbiamo diviso l'STD. Ma poi ho considerato che forse se avessimo definito forse una "varianza" con qualsiasi altra norma, , quindi divideremmo per lo STD di quella norma (prendendo la radice pth o qualcosa del genere). Tuttavia, era solo una supposizione e non sono al 100% su questo, quindi la domanda. Mi chiedevo se qualcuno sapesse qualcosa di simile a questo.1ni=1n(xiμ)p


Ho visto che forse c'era una domanda correlata:

PCA sulla correlazione o covarianza?

ma sembrava parlare più di quando usare la "correlazione" o la "covarianza" ma mancava di giustificazioni rigorose o convincenti o dettagliate, che è ciò che mi interessa principalmente.

Lo stesso per:

Perché è necessario normalizzare i dati prima dell'analisi

relazionato:

Variabili di "normalizzazione" per SVD / PCA


1
C'è una ragione matematica: la divisione dei dati (centrati) per SD per ciascuna variabile produce un set di dati trasformato la cui matrice di covarianza è semplicemente la matrice di correlazione dei dati originali (centrati). Dopodiché, siamo di nuovo sul territorio della matrice correlazione vs covarianza. Stai cercando la prova di come la normalizzazione dei dati trasforma la matrice di covarianza in una matrice di correlazione?
Silverfish,

La tua domanda sul titolo si legge come se stessi chiedendo quale sia lo scopo di normalizzarlo (anziché non normalizzarlo). Questo sarebbe un duplicato di "PCA sulla correlazione o covarianza". Tuttavia, ciò che sembra effettivamente chiedersi è il motivo per cui la normalizzazione viene eseguita dividendo per STD (anziché dividere per varianza, o intervallo, ecc.). In tal caso, vuoi forse modificare per rendere più precisa la domanda del titolo?
ameba dice di reintegrare Monica il

3
Per quanto riguarda la terminologia, "normalizzare" non è un termine preciso e può riferirsi a varie cose. Considerando che "standardizzare" significa sottrarre la media e dividere per deviazione standard, che è ciò a cui ti riferisci.
ameba dice di reintegrare Monica il

2
Vorrei aggiungere che penso che la tua domanda sia molto buona (+1). Si può davvero normalizzare dividendo per qualcos'altro; ad esempio, la deviazione standard è una misura non molto solida e può essere fuorviante in presenza di valori anomali forti. Quindi si può scegliere di dividere per una certa misura di diffusione (vedi ad esempio "deviazione assoluta mediana"). Non esiste una "rigorosa spiegazione matematica" del perché l'uso delle malattie sessualmente trasmissibili sia il modo migliore per normalizzare, e hai ragione sul fatto che è "solo un'osservazione empirica" ​​che spesso funziona bene.
ameba dice di reintegrare Monica il

2
Ri "perché non dividere invece per varianza" - che può essere abbastanza facilmente spiegato dall'incongruenza dimensionale. Ti darebbe strani risultati se, ad esempio, cambiassi le unità in cui si trovava una delle variabili. Ri "perché non dividere per MAD" - se i dati fossero normalmente distribuiti, quindi poiché (nella popolazione) MAD è proporzionale alla DS, sarebbe possibile dividere per un multiplo appropriato di MAD e ottenere un (inefficiente ma forse robusto? ) stima della correlazione. Questo è più interessante.
Silverfish,

Risposte:


11

Ciò è in parziale risposta a "non mi è chiaro il motivo per cui la divisione per deviazione standard raggiungerebbe tale obiettivo". In particolare, perché mette i dati trasformati (standardizzati) sulla "stessa scala". La domanda suggerisce problemi più profondi (cos'altro avrebbe potuto "funzionare", che è collegato a ciò che "lavorato" potrebbe persino significare, matematicamente?), Ma sembrava ragionevole affrontare almeno gli aspetti più semplici del perché questa procedura "funziona" - cioè, realizza le affermazioni fatte per esso nel testo.

La voce nella riga e nella colonna j di una matrice di covarianza è la covarianza tra le variabili i t h e j t h . Notare che su una diagonale, riga i e colonna i , questa diventa la covarianza tra la variabile i t h e se stessa - che è solo la varianza della variabile i t h .ijithjthiiithith

Chiamiamo la variabile X i e la variabile j t h X j ; Presumo che questi siano già centrati in modo che abbiano zero medio. Ricordiamo che C o v ( X i , X j ) = σ X iithXijthXj

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

Possiamo standardizzare le variabili in modo che abbiano una varianza, semplicemente dividendo per le loro deviazioni standard. Quando si standardizza, in genere sottrarre prima la media, ma ho già ipotizzato che siano centrati in modo da poter saltare questo passaggio. Sia e per vedere il motivo per cui la varianza è uno, si noti cheZi=XiσXi

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

Allo stesso modo per . Se prendiamo la voce nella riga i e nella colonna j della matrice di covarianza per le variabili standardizzate, si noti che poiché sono standardizzate:Zjij

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

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

Cov(Zi,Zi)=Var(Zi)=1così l'intera diagonale è piena di quelli, come ci aspetteremmo. È in questo senso che i dati sono ora "sulla stessa scala" - le loro distribuzioni marginali dovrebbero apparire molto simili, almeno se inizialmente fossero distribuite approssimativamente normalmente, con zero medio e con varianza (e deviazione standard). Non è più il caso che la variabilità di una variabile travolga le altre. Avresti potuto dividere per una diversa misura di diffusione, ovviamente. La varianza sarebbe stata una scelta particolarmente negativa a causa dell'incongruenza dimensionale (pensa a cosa sarebbe successo se avessi cambiato le unità in cui si trovava una delle tue variabili, ad esempio da metri a chilometri). Qualcosa come la deviazione assoluta mediana (o un multiplo appropriato della MADse si sta tentando di utilizzarlo come una sorta di robusto stimatore della deviazione standard) potrebbe essere stato più appropriato. Ma non trasformerà ancora quella diagonale in una diagonale di quelle.

Il risultato è che un metodo che funziona sulla matrice di covarianza dei dati standardizzati sta essenzialmente usando la matrice di correlazione dei dati originali. Per il quale preferiresti utilizzare su PCA, vedi PCA su correlazione o covarianza?


2
Penso che questa risposta non tocchi davvero la domanda reale (e non banale) del perché la deviazione standard sia presa come misura di diffusione e usata per la normalizzazione. Perché non prendere invece la deviazione assoluta mediana? Certo, la matrice di covarianza risultante non sarà la matrice di correlazione "predefinita", ma forse sarà migliore, ad esempio una stima più solida della matrice di correlazione. Vedi anche il mio ultimo commento all'OP.
ameba dice di reintegrare Monica il

2
@ameoba Sul punto "medio-profondo", il fatto che otteniamo varianze di una nella diagonale della nuova matrice di covarianza è essenzialmente ciò che intendiamo per ottenere che i dati trasformati abbiano variabili "sulla stessa scala" dal punto di vista PCA. Sulle questioni "molto profonde" sollevate da questa domanda, non sono sicuro che ci sia molta differenza tra la domanda "beh, perché utilizziamo le varianze come misura di scala in PCA?" e chiedendo "perché PCA si preoccupa delle (co) varianze?" - o almeno, che le due questioni sarebbero intimamente correlate.
Silverfish,

1
@amoeba, perché non dividere per MAD o per varianza invece di SD è, in sostanza, la stessa domanda sul perché ridimensionare in modo completamente diverso: cioè, perché non fare PCA sulle covarianze invece? Sostengo questa idea nel commento precedente.
ttnphns,

1
@ttnphns: se diverse variabili hanno scale completamente incomparabili (temperatura, lunghezza, peso, ecc.), allora il desiderio di normalizzare in qualche modo le variabili è abbastanza comprensibile. Questo è l'argomento comune per l'utilizzo della matrice di correlazione anziché della matrice di covarianza. Ma se qualcuno è preoccupato per i valori anomali, non vedo nulla di sbagliato nel sottrarre la mediana invece della media e dividendo per MAD invece che in SVD ... Non l'ho mai fatto da solo, ma penso che suona come una cosa ragionevole da fare.
ameba dice che ripristini Monica il

1
@amoeba, Linear PCA ha bisogno che la matrice sia di tipo SSCP matrice di . Qualsiasi trasformazione lineare delle variabili originali conserva questo tipo. Ovviamente, puoi anche effettuare qualsiasi trasformazione non lineare (come, ad esempio, la classifica, per ottenere la matrice rho di Spearman), ma poi i punteggi e i caricamenti dei componenti perdono la loro connessione diretta (nel senso della minimizzazione dei minimi quadrati) con i dati: essi ora rappresentano invece i dati trasformati!
ttnphns,

5

Perché dividiamo per la deviazione standard
cosa c'è di sbagliato nel dividere per la varianza?

z

Quindi: la standardizzazione (centratura media + ridimensionamento per deviazione standard) ha senso se si considera ragionevole la distribuzione normale standard per i propri dati.

Perché non qualche altra quantità? Come ... la somma di valori assoluti? o qualche altra norma ...

Altre quantità vengono utilizzate per ridimensionare i dati, ma la procedura si chiama standardizzazione solo se utilizza la centratura media e la divisione per deviazione standard. Il ridimensionamento è il termine generico.

Ad esempio, lavoro con dati spettroscopici e so che il mio rivelatore ha una sensibilità dipendente dalla lunghezza d'onda e una distorsione (elettronica). Quindi calibro sottraendo il segnale di offset (vuoto) e moltiplicando (dividendo) per un fattore di calibrazione.

Inoltre, potrei concentrarmi non sulla media ma piuttosto su un altro valore di base, come la media di un gruppo di controllo anziché la media generale. (Personalmente, non ho quasi mai standardizzato poiché i miei variati hanno già la stessa unità fisica e sono nello stesso ordine di grandezza)

Vedi anche: Le variabili sono spesso regolate (ad esempio standardizzate) prima di creare un modello: quando è una buona idea e quando è cattiva?


+1. Bell'esempio con dati spettroscopici. A proposito, congratulazioni per aver raggiunto un rappresentante di 10k!
ameba dice di reintegrare Monica il

0

Questo link risponde chiaramente alla tua domanda, immagino: http://sebastianraschka.com/Articles/2014_about_feature_scaling.html

Cito un piccolo pezzo:

Standardizzazione Z-score o ridimensionamento Min-Max?

"Standardizzazione o ridimensionamento Min-Max?" - Non esiste una risposta ovvia a questa domanda: dipende davvero dall'applicazione.

Ad esempio, nelle analisi di clustering, la standardizzazione può essere particolarmente cruciale al fine di confrontare le somiglianze tra le funzionalità in base a determinate misure di distanza. Un altro esempio di spicco è l'analisi dei componenti principali, dove di solito preferiamo la standardizzazione rispetto al ridimensionamento Min-Max, poiché siamo interessati ai componenti che massimizzano la varianza (a seconda della domanda e se il PCA calcola i componenti tramite la matrice di correlazione anziché matrice di covarianza; ma di più sulla PCA nel mio precedente articolo).

Tuttavia, ciò non significa che il ridimensionamento Min-Max non sia affatto utile! Un'applicazione popolare è l'elaborazione delle immagini, in cui le intensità dei pixel devono essere normalizzate per rientrare in un determinato intervallo (ovvero, da 0 a 255 per l'intervallo di colori RGB). Inoltre, un tipico algoritmo di rete neurale richiede dati su una scala 0-1.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.