24 votos

¿Por qué dividimos por la desviación típica y no por otro factor de normalización antes de hacer el ACP?

Estaba leyendo la siguiente justificación (de los apuntes del curso cs229) sobre por qué dividimos los datos brutos por su desviación típica:

enter image description here

aunque entiendo lo que dice la explicación, no me queda claro por qué dividiendo por la desviación típica se conseguiría tal objetivo. Se dice para que todo el mundo esté más en la misma "escala". Sin embargo, no está del todo claro por qué dividiendo por la desviación típica se consigue eso. ¿Qué tiene de malo dividir por la varianza? ¿Por qué no otra cantidad? Como... ¿la suma de valores absolutos? o alguna otra norma... ¿Hay alguna justificación matemática para elegir la STD?

¿Son las afirmaciones de este extracto una afirmación teórica que puede deducirse/probarse mediante las matemáticas (y/o la estadística) o es más bien una de esas afirmaciones que hacemos porque parece funcionar en la "práctica"?

Básicamente, ¿se puede dar una explicación matemática rigurosa de por qué esa intuición es cierta? O si es sólo una observación empírica, ¿por qué pensamos que funciona en general antes de hacer PCA?

Además, en el contexto del ACP, ¿se trata del proceso de normalización o estandarización?


Algunos otros pensamientos que tenía que podría "explicar" por qué la ETS:

Dado que el ACP puede derivarse de la maximización de la varianza, supuse que dividir por una cantidad relacionada, como el STD, podría ser una de las razones por las que dividimos por el STD. Pero luego consideré que tal vez si definimos tal vez una "varianza" con cualquier otra norma, $\frac{1}{n} \sum^{n}_{i=1} (x_i -\mu)^p$ entonces dividiríamos por el STD de esa norma (tomando la raíz pth o algo así). Aunque, era solo una suposición y no estoy 100% seguro de esto, de ahí la pregunta. Me preguntaba si alguien sabe algo relacionado con esto.


He visto que quizás había una pregunta relacionada:

¿PCA sobre correlación o covarianza?

pero parecía hablar más de cuándo utilizar "correlación" o "covarianza", pero carecía de justificaciones rigurosas o convincentes o detalladas, que es lo que me interesa principalmente.

Lo mismo para:

¿Por qué es necesario normalizar los datos antes del análisis?

relacionados:

"Normalización" de variables para SVD / PCA

16voto

Silverfish Puntos 6909

Esto es en respuesta parcial a "no me queda claro por qué dividiendo por la desviación típica se conseguiría tal objetivo". En concreto, por qué sitúa los datos transformados (normalizados) en la "misma escala". La pregunta alude a cuestiones más profundas (¿qué otra cosa podría haber "funcionado", que está relacionado con lo que "funcionado" podría incluso significar, matemáticamente?), pero parecía sensato abordar al menos los aspectos más directos de por qué este procedimiento "funciona", es decir, logra lo que se afirma de él en el texto.

La entrada de la fila $i$ y columna $j$ de una matriz de covarianza es la covarianza entre las $i^{th}$ y $j^{th}$ variables. Obsérvese que en una diagonal, fila $i$ y columna $i$ se convierte en la covarianza entre el $i^{th}$ variable y ella misma, que no es más que la varianza de la $i^{th}$ variable.

Llamemos al $i^{th}$ variable $X_i$ y el $j^{th}$ variable $X_j$ supondré que ya están centradas para que tengan media cero. Recordemos que $$Cov(X_i, X_j) =\sigma_{X_i} \, \sigma_{X_j} \, Cor(X_i, X_j)$$

Podemos estandarizar las variables para que tengan varianza uno, simplemente dividiendo por sus desviaciones típicas. Al estandarizar, generalmente restaríamos primero la media, pero ya he supuesto que están centradas, así que podemos saltarnos ese paso. Sea $Z_i = \frac{X_i}{\sigma_{X_i}}$ y para ver por qué la varianza es uno, obsérvese que

$$Var(Z_i) = Var\left(\frac{X_i}{\sigma_{X_i}}\right) = \frac{1}{\sigma_{X_i}^2}Var(X_i) = \frac{1}{\sigma_{X_i}^2} \sigma_{X_i}^2 = 1$$

Del mismo modo para $Z_j$ . Si tomamos la entrada de la fila $i$ y columna $j$ de la matriz de covarianza para las variables estandarizadas, nótese que como están estandarizadas:

$$Cov(Z_i, Z_j) =\sigma_{Z_i} \, \sigma_{Z_j} \, Cor(Z_i, Z_j) = Cor(Z_i, Z_j)$$

Además, cuando reescalamos las variables de este modo, la suma (equivalente: resta) no cambia la correlación, mientras que la multiplicación (equivalente: división) simplemente invertirá el signo de la correlación si el factor (divisor) es negativo. En otras palabras, la correlación no cambia con las traslaciones o las escalas, pero se invierte con la reflexión. ( He aquí una derivación de esas propiedades de correlación como parte de una respuesta no relacionada). Como hemos dividido por desviaciones típicas, que son positivas, vemos que $Cor(Z_i, Z_j)$ debe ser igual a $Cor(X_i, X_j)$ es decir, la correlación entre los datos originales.

A lo largo de la diagonal de la nueva matriz de covarianza, observe que obtenemos $Cov(Z_i, Z_i) = Var(Z_i) = 1$ así que toda la diagonal está llena de unos, como era de esperar. En este sentido, los datos están ahora "en la misma escala": sus distribuciones marginales deberían parecerse mucho, al menos si, para empezar, se distribuyen de forma aproximadamente normal, con media cero y varianza (y desviación típica) uno. Ya no se da el caso de que la variabilidad de una variable inunde a las demás. Por supuesto, se podría haber dividido por otra medida de la dispersión. La varianza habría sido una elección especialmente mala debido a la incoherencia dimensional (piensa en lo que habría pasado si hubieras cambiado las unidades de una de tus variables, por ejemplo, de metros a kilómetros). Algo como la desviación absoluta mediana (o un múltiplo apropiado del MAD si se intenta utilizar como una especie de estimador robusto de la desviación típica) podría haber sido más apropiado. Pero sigue sin convertir esa diagonal en una diagonal de unos.

El resultado es que un método que funciona con la matriz de covarianza de datos estandarizados, está utilizando esencialmente la matriz de correlación de los datos originales. Para saber cuál prefiere utilizar en PCA, consulte ¿PCA sobre correlación o covarianza?

8voto

cbeleites Puntos 12461

¿Por qué dividimos por la desviación típica
¿qué hay de malo en dividir por la varianza?

como ya señaló @Silverfish en un comentario, la desviación típica tiene la misma unidad que las medidas. Por tanto, al dividir por la desviación estándar en lugar de por la varianza, se obtiene un número sencillo que indica dónde se encuentra el caso en relación con la media y la dispersión medidas por la media y la desviación estándar. Esto se parece mucho a la idea de $z$ -valores y el distribución normal estándar : Si los datos tienen una distribución normal, la normalización los transformará en una distribución normal estándar.

Así que..: normalización (centrado de la media + escalado por desviación típica) tiene sentido si considera sensata la distribución normal estándar para sus datos.

¿Por qué no otra cantidad? ¿Como... la suma de valores absolutos? o alguna otra norma...

Otras cantidades se utilizan para escala datos, pero el procedimiento se denomina normalización sólo si utiliza el centrado de la media y la división por la desviación típica. Escalado es el término genérico.

Por ejemplo, trabajo con datos espectroscópicos y sé que mi detector tiene una sensibilidad que depende de la longitud de onda y un sesgo (electrónico). Por tanto calibrar restando la señal de offset (blanco) y multiplicando (dividiendo) por un factor de calibración.

Además, es posible que no esté centrando en la media sino en algún otro valor de referencia, como la media de un grupo de control en lugar de la media general. (Personalmente, casi nunca estandarizo, ya que mis variantes ya tienen la misma unidad física y están en el mismo orden de magnitud).

Véase también: A menudo se ajustan las variables (por ejemplo, estandarizándolas) antes de elaborar un modelo. ¿Cuándo es una buena idea y cuándo una mala?

0voto

Captain Hypertext Puntos 101

Supongo que este enlace responde claramente a su pregunta: http://sebastianraschka.com/Articles/2014_about_feature_scaling.html

Cito un pequeño fragmento:

¿Estandarización de puntuaciones Z o escalado Mín-Máx?

"¿Estandarización o escalado Min-Max?" - No hay una respuesta obvia a esta pregunta: realmente depende de la aplicación.

Por ejemplo, en los análisis de agrupamiento, la normalización puede ser especialmente crucial para comparar similitudes entre características basadas en determinadas medidas de distancia. Otro ejemplo destacado es el análisis de componentes principales, en el que solemos preferir la normalización al escalado Min-Max, ya que nos interesan los componentes que maximizan la varianza (dependiendo de la cuestión y de si el ACP calcula los componentes mediante la matriz de correlaciones en lugar de la matriz de covarianzas; pero más sobre el ACP en mi artículo anterior).

Sin embargo, esto no significa que el escalado Mín-Máx no sea útil en absoluto. Una aplicación popular es el procesamiento de imágenes, donde las intensidades de los píxeles tienen que ser normalizadas para encajar dentro de un cierto rango (es decir, 0 a 255 para el rango de color RGB). Además, los algoritmos típicos de redes neuronales requieren datos en una escala de 0 a 1.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X