La fórmula fundamental para la estandarización es:
\[ z= \frac{x-\mu}{\sigma} \]
💡 Concepto Clave:
La estandarización nos
permite comparar datos que provienen de diferentes escalas o unidades.
Transformamos los datos originales a una distribución con media
0 y desviación estándar 1.
Generamos datos con distribución normal:
## [1] 2.831857 2.930947 3.467612 3.021153 3.038786 3.514519
Visualicemos la distribución de \(X\):
# Histograma X
hist(X, col=adjustcolor("steelblue", alpha.f=0.7), border="white",
main="Histograma de X", xlab="Valores")
abline(v = mean(X), col = "tomato", lwd = 3, lty = 2)
legend("topright", legend="Media", col="tomato", lty=2, lwd=3, bty="n")# Boxplot X
boxplot(X, col=adjustcolor("lightblue", alpha.f=0.6),
main="Boxplot de X", horizontal = TRUE)
points(mean(X), 1, col = "tomato", cex = 2, pch = 16)Ahora probemos con una distribución exponencial (\(Y\)):
## [1] 1.68691452 1.15322054 2.65810974 0.06315472 0.11242195 0.63300243
boxplot(Y, col=adjustcolor("orange", alpha.f=0.5),
main="Boxplot de Y (Exponencial)", horizontal = TRUE)
points(mean(Y), 1, col = "darkred", cex = 2, pch = 16)hist(Y, col=adjustcolor("orange", alpha.f=0.6), border="white", breaks=15)
abline(v = mean(Y), col= "darkred", lty = 2, lwd = 3)Aplicamos la función scale():
## [,1]
## [1,] -0.687729949
## [2,] -0.324914908
## [3,] 1.640081452
## [4,] 0.005372616
## [5,] 0.069938613
## [6,] 1.811830980
Comparación visual: Datos originales vs. Estandarizados.
par(mfrow = c(1,2))
hist(X, nclass = 10, col="lightblue", main="Original (X)")
hist(z_x, nclass = 10, col="lightgreen", main="Estandarizado (Z)")Matemáticamente se define:
\[ \text{Aditiva: } T(X_1 + X_2) = T(X_1)+T (X_2) \\ \text{Homogénea: } T(c \cdot X) = c \cdot T(X) \]
🤔 La Gran Confusión:
La gente cree que el
Score-Z es lineal porque su gráfica es una línea recta.
En Cálculo y Estadística, llamamos “función lineal” a
cualquier cosa que se vea como una recta (\(y
= mx + b\)).
Pero en Álgebra Lineal Pura, para ser
lineal DEBE pasar por el origen (0,0) (\(y = mx\)).
Matemáticamente, el Score-Z es una Transformación Afín.
\[T(x) = Ax + b\]
Donde: 1. A (Escalado): Es el factor \(1/\sigma\) (estira o encoge los datos). 2. b (Traslación): Es el término \(-\mu/\sigma\) (mueve el centro de los datos hacia el 0).
Diferencia Clave: Una Transformación Lineal solo estira o rota (mantiene el origen fijo). Una Transformación Afín estira, rota y ADEMÁS mueve (traslada) el origen.
Vamos a graficar una transformación Verdaderamente Lineal vs. la Afín (Score-Z) para ver por qué son diferentes.
# Datos de ejemplo
x <- seq(-10, 10, length.out = 100)
# Parámetros para el Z-score
mu <- 5 # La media no es 0
sigma <- 2
# 1. Transformación Lineal Pura (Solo escala, pasa por 0,0)
# T(x) = x / sigma
lineal_pura <- x / sigma
# 2. Transformación Afín (Score-Z)
# T(x) = (x - mu) / sigma
afin_z <- (x - mu) / sigma
# Gráfico
plot(x, afin_z, type = "l", col = "red", lwd = 3,
main = "Lineal vs. Afín (Z-Score)",
ylab = "Resultado T(x)", xlab = "Entrada (x)",
panel.first = grid()) # Agrega cuadrícula de fondo
# Agregamos la lineal pura
lines(x, lineal_pura, col = "blue", lwd = 3, lty = 2)
# Agregamos los ejes X e Y para ver el origen (0,0)
abline(h = 0, v = 0, col = "black", lwd=2)
# Leyenda explicativa
legend("topleft",
legend = c("Afín (Score-Z): No pasa por (0,0)", "Lineal Pura: Pasa por (0,0)"),
col = c("red", "blue"), lty = c(1, 2), lwd = 3, bty = "n")
points(0, 0, pch = 19, cex = 2) # Marcamos el origen
text(1, -0.5, "Origen (0,0)", adj = 0, font=2)## MEDIA X: 3.019685
## MEDIA Z_X: 0 (Prácticamente cero)
## VARIANZA X: 0.07459062
## VARIANZA Z_X: 1 (Debe ser uno)