Por que dividimos pelo desvio padrão e não por algum outro fator de padronização antes de executar o PCA?

17

Eu estava lendo a seguinte justificativa (das notas do curso cs229) sobre por que dividimos os dados brutos por seu desvio padrão:

insira a descrição da imagem aqui

mesmo que eu entenda o que a explicação está dizendo, não está claro para mim por que a divisão pelo desvio padrão alcançaria tal objetivo. Diz que todos estão mais na mesma "escala". No entanto, não está totalmente claro por que a divisão pelo desvio padrão alcança isso. Como, o que há de errado em dividir pela variação? Por que não outra quantidade? Como ... a soma dos valores absolutos? ou alguma outra norma ... Existe uma justificativa matemática para escolher a DST?

As alegações contidas neste extrato são uma afirmação teórica que pode ser derivada / comprovada através da matemática (e / ou estatística) ou é mais uma daquelas afirmações que fazemos porque parecem funcionar na "prática"?

Basicamente, pode-se fornecer uma explicação matemática rigorosa de por que essa intuição é verdadeira? Ou se é apenas uma observação empírica, por que achamos que isso geralmente funciona antes de fazer o PCA?

Além disso, no contexto do PCA, esse é o processo de padronização ou normalização?


Alguns outros pensamentos que tive que poderiam "explicar" por que as DSTs:

Como o PCA pode ser derivado da maximização da variação, imaginei que dividir por uma quantidade relacionada, como a DST, poderia ser um dos motivos que dividimos pela DST. Mas então eu considerei que, talvez, se nós definimos talvez uma "variação" de qualquer outra norma, , então nós iria dividir pelo STD dessa norma (tomando a raiz enésima ou algo assim). No entanto, foi apenas um palpite e eu não sou 100% sobre isso, daí a questão. Fiquei me perguntando se alguém sabia alguma coisa relacionada a isso.1nEu=1n(xEu-μ)p


Vi que talvez houvesse uma pergunta relacionada:

PCA em correlação ou covariância?

mas parecia falar mais sobre quando usar "correlação" ou "covariância", mas não possuíam justificativas rigorosas, convincentes ou detalhadas, e é nisso que estou interessado principalmente.

Mesmo para:

Por que precisamos normalizar os dados antes da análise

relacionados:

Variáveis ​​de "normalização" para SVD / PCA

Pinóquio
fonte
1
Há uma razão matemática - dividir os dados (centralizados) pelo SD para cada variável produz um conjunto de dados transformados cuja matriz de covariância é simplesmente a matriz de correlação dos dados originais (centralizados). Depois disso, estamos no território da matriz de correlação versus covariância novamente. Você está procurando uma prova de como a normalização dos dados transforma a matriz de covariância em uma matriz de correlação?
Silverfish
Sua pergunta sobre o título é exibida como se você estivesse perguntando qual o objetivo de normalizá-la (em vez de não normalizá-la). Isso seria uma duplicata do "PCA na correlação ou covariância". No entanto, o que você realmente parece estar se perguntando é por que a normalização é feita dividindo-se por DST (em oposição a dividir por variação, alcance, etc.). Se sim, talvez você queira editar para tornar a pergunta do título mais precisa?
ameba diz Restabelecer Monica
3
Em relação à terminologia, "normalizar" não é um termo preciso e pode se referir a várias coisas. Enquanto "padronizar" significa subtrair a média e dividir pelo desvio padrão, a que você está se referindo.
Ameba diz Reinstate Monica
2
Devo acrescentar que acho que sua pergunta é muito boa (+1). Pode-se de fato normalizar dividindo-se por outra coisa; por exemplo, o desvio padrão é uma medida muito não robusta e pode ser enganosa na presença de valores discrepantes fortes. Portanto, pode-se optar por dividir por alguma medida robusta de spread (veja, por exemplo, "desvio absoluto médio mediano"). Não existe uma "explicação matemática rigorosa" do porquê usar a DST é a melhor maneira de normalizar, e você está certo de que é "apenas uma observação empírica" ​​que geralmente funciona bem.
Ameba diz Reinstate Monica
2
Re "por que não dividir por variação" - isso pode ser facilmente explicado pela inconsistência dimensional. Daria resultados estranhos se você alterasse as unidades em que uma das variáveis ​​estava, por exemplo. Re "por que não dividir por MAD" - se os dados eram normalmente distribuídos, então como (na população) MAD é proporcional ao SD, seria possível dividir por um múltiplo apropriado de MAD e obter um (ineficiente, mas possivelmente robusto? ) estimativa da correlação. Isso é mais interessante.
Silverfish

Respostas:

11

Isso está em resposta parcial a "não está claro para mim por que a divisão pelo desvio padrão alcançaria esse objetivo". Em particular, por que ele coloca os dados transformados (padronizados) na "mesma escala". A pergunta sugere questões mais profundas (o que mais pode ter "funcionado", que está vinculado ao que "funcionou" pode até significar matematicamente)? - isto é, alcança as alegações feitas no texto.

A entrada na linha coluna de uma matriz de covariância é a covariância entre as variáveis e . Observe que, na diagonal, linha e coluna , isso se torna a covariância entre a variável e ela mesma - que é apenas a variação da variável .j i t h j t h i i i t h i t hEujEuthjthEuEuEuthEuth

Vamos chamar o variável eo variável ; Suponho que estes já estejam centralizados para que tenham média zero. Lembre-se de que X i j t h X j C O v ( X i , X j ) = σ X iEuthXEujthXj

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

Podemos padronizar as variáveis ​​para que elas tenham uma variação, simplesmente dividindo por seus desvios padrão. Ao padronizar, geralmente subtraímos a média primeiro, mas eu já presumi que elas estão centralizadas para que possamos pular essa etapa. Deixe e para ver por que a variação é uma, observe queZEu=XEuσXEu

Vumar(ZEu)=Vumar(XEuσXEu)=1σXEu2Vumar(XEu)=1σXEu2σXEu2=1

Da mesma forma para . Se pegarmos a entrada na linha coluna da matriz de covariância para as variáveis ​​padronizadas, observe que, uma vez que elas são padronizadas:ZjEuj

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

Além disso, quando redimensionamos as variáveis ​​dessa maneira, a adição (equivalentemente: subtração) não altera a correlação, enquanto a multiplicação (equivalentemente: divisão) simplesmente reverte o sinal da correlação se o fator (divisor) for negativo. Em outras palavras, a correlação é inalterada pelas traduções ou dimensionamento, mas é revertida pela reflexão. ( Aqui está uma derivação dessas propriedades de correlação , como parte de uma resposta não relacionada de outra forma.) Como dividimos por desvios padrão, que são positivos, vemos que deve ser igual a ou seja, a correlação entre os dados originais.Cor(ZEu,Zj)Cor(XEu,Xj)

Ao longo da diagonal da nova matriz de covariância, observe que temos para que a diagonal inteira seja preenchida com uma, como seria de esperar. É nesse sentido que os dados estão agora "na mesma escala" - suas distribuições marginais devem parecer muito semelhantes, pelo menos se elas fossem normalmente distribuídas normalmente para começar, com zero médio e com variação (e desvio padrão) um. Não é mais o caso de a variabilidade de uma variável inundar as outras. Você poderia ter dividido por uma medida diferente de propagação, é claro. A variação teria sido uma escolha particularmente ruim devido à inconsistência dimensional (pense no que teria acontecido se você tivesse alterado as unidades em que uma de suas variáveis ​​estava, por exemplo, de metros para quilômetros).Cov(ZEu,ZEu)=Vumar(ZEu)=1um múltiplo apropriado do MAD, se você estiver tentando usá-lo como uma espécie de estimador robusto do desvio padrão) pode ter sido mais apropriado. Mas ainda não transformará essa diagonal em uma diagonal de uns.

O resultado é que um método que funciona na matriz de covariância de dados padronizados está essencialmente usando a matriz de correlação dos dados originais. Para qual você prefere usar no PCA, consulte PCA sobre correlação ou covariância?

Silverfish
fonte
2
Penso que esta resposta não toca realmente na questão real (e não trivial) de por que o desvio padrão é tomado como uma medida de dispersão e usado para normalização. Por que não tomar um desvio absoluto médio? Concedido, a matriz de covariância resultante não será a matriz de correlação "padrão", mas talvez seja melhor, por exemplo, uma estimativa mais robusta da matriz de correlação. Veja também meu último comentário ao OP.
ameba diz Restabelecer Monica
2
@ameoba No ponto "médio profundo", o fato de obtermos variações de uma na diagonal da nova matriz de covariância é basicamente o que queremos dizer ao fazer com que os dados transformados tenham variáveis ​​"na mesma escala" da perspectiva do PCA. Nas questões "muito profundas" levantadas por essa pergunta, não tenho certeza de que haja muita diferença entre perguntar "bem, por que usamos variações como nossa medida de escala no PCA?" e perguntando "por que o PCA se preocupa com (co) variações?" - ou pelo menos, que as duas questões estariam intimamente relacionadas.
quer
1
@amoeba, por que não dividir por MAD ou por variação em vez de SD é, essencialmente, a mesma pergunta de por que escalar de maneira diferenciada: ou seja, por que não fazer PCA em covariâncias? Apoio esta ideia no comentário anterior.
usar o seguinte comando
1
@ttnphns: Se variáveis ​​diferentes têm escalas completamente incomparáveis ​​(temperatura, comprimento, peso, etc.), então o desejo de normalizar as variáveis ​​é compreensível. Esse é o argumento comum para o uso da matriz de correlação em vez da matriz de covariância. Mas se alguém está preocupado com discrepâncias, não vejo nada de errado em subtrair a mediana em vez da média e dividir por MAD em vez de SVD ... Eu nunca fiz isso sozinho, mas acho que parece uma coisa razoável a se fazer.
ameba diz Restabelecer Monica
1
@amoeba, o PCA linear precisa que a matriz seja a matriz do tipo SSCP . Qualquer transformação linear das variáveis ​​originais preserva esse tipo. Obviamente, você também pode fazer qualquer transformação não linear (como, por exemplo, classificar, para obter a matriz Spearman rho), mas as pontuações e cargas dos componentes perdem sua conexão direta (no sentido de minimização de mínimos quadrados) com os dados: eles agora represente os dados transformados!
ttnphns
5

Por que dividimos pelo desvio padrão o
que há de errado em dividir pela variação?

como o @Silverfish já apontou em um comentário, o desvio padrão tem a mesma unidade que as medições. Assim, ao dividir pelo desvio padrão em oposição à variância, você acaba com um número simples que indica onde o seu caso é relativo à média e se espalha conforme medido pela média e pelo desvio padrão. Isso está muito próximo da idéia dos valores e da distribuição normal padrão : se os dados são normalmente distribuídos, a padronização os transformará em uma distribuição normal padrão.z

Portanto, a padronização (centralização média + escala por desvio padrão) faz sentido se você considerar a distribuição normal padrão sensata para seus dados.

Por que não outra quantidade? Como ... a soma dos valores absolutos? ou alguma outra norma ...

Outras quantidades são usadas para dimensionar os dados, mas o procedimento é chamado de padronização somente se usar centralização e divisão médias por desvio padrão. Escala é o termo genérico.

Por exemplo, trabalho com dados espectroscópicos e sei que meu detector tem uma sensibilidade dependente do comprimento de onda e um viés (eletrônico). Assim, calibro subtraindo o sinal de deslocamento (em branco) e multiplicando (dividindo) por um fator de calibração.

Além disso, eu posso estar centralizado não na média, mas em algum outro valor de linha de base, como a média de um grupo de controle em vez da média geral. (Pessoalmente, quase nunca padronizo, pois minhas variáveis ​​já têm a mesma unidade física e estão na mesma ordem de magnitude)

Veja também: As variáveis ​​geralmente são ajustadas (por exemplo, padronizadas) antes de criar um modelo - quando é uma boa ideia e quando é ruim?

cbeleites suporta Monica
fonte
+1. Belo exemplo com dados espectroscópicos. A propósito, parabéns por atingir 10k rep!
Ameba diz Reinstate Monica
0

Este link responde à sua pergunta claramente, eu acho: http://sebastianraschka.com/Articles/2014_about_feature_scaling.html

Cito um pequeno pedaço:

Padronização do escore Z ou escala Min-Max?

“Padronização ou escala Min-Max?” - Não há resposta óbvia para esta pergunta: ela realmente depende do aplicativo.

Por exemplo, nas análises de agrupamento, a padronização pode ser especialmente crucial para comparar semelhanças entre os recursos com base em determinadas medidas de distância. Outro exemplo proeminente é a Análise de Componentes Principais, onde geralmente preferimos a padronização sobre a escala Min-Max, pois estamos interessados ​​nos componentes que maximizam a variação (dependendo da pergunta e se o PCA calcula os componentes por meio da matriz de correlação em vez de matriz de covariância, mas mais sobre o PCA no meu artigo anterior).

No entanto, isso não significa que a escala Min-Max não seja útil! Uma aplicação popular é o processamento de imagens, onde as intensidades de pixel precisam ser normalizadas para se ajustarem a um determinado intervalo (ou seja, de 0 a 255 para o intervalo de cores RGB). Além disso, o algoritmo de rede neural típico exige dados em uma escala de 0-1.

Esra
fonte