La transformación y estandarización de variables son técnicas comunes utilizadas en el análisis de datos para mejorar la interpretación de los datos y garantizar que las variables sean comparables entre sí.
La transformación de variables es una técnica utilizada en estadística y análisis de datos para modificar una variable con el objetivo de cumplir con ciertos supuestos o mejorar la interpretación de los datos. Esta transformación implica aplicar una función matemática a los valores de la variable original para obtener una nueva variable.
La transformación de variables implica aplicar una función matemática a los valores de una variable con el objetivo de modificar su distribución o relación con otras variables. Algunas transformaciones comunes incluyen la transformación logarítmica, la transformación exponencial y la transformación de raíz cuadrada. Estas transformaciones se utilizan principalmente cuando los datos presentan asimetría o heterocedasticidad. Por ejemplo, si se tiene una variable con una distribución sesgada hacia la derecha, se puede aplicar una transformación logarítmica para reducir la asimetría y hacer que los datos se aproximen más a una distribución normal (gráfica o distribución se asemeja a la campana de Gauss).
Existen diferentes tipos de transformaciones de variables que se utilizan según las características de los datos y los objetivos del análisis. Algunas de las transformaciones más comunes son:
# Carga de datos
telefonia<- read.csv("https://raw.githubusercontent.com/VictorGuevaraP/Estadistica-R/master/Caso_telefon%C3%ADa.csv",
encoding = "latin1", sep = ";", stringsAsFactors = T)
# Mostrar datos
head(telefonia)
## Código Género Sucursal Reclamos Llamadas Edad Minutos Monto Tiempo
## 1 CLIPE1 Masculino Suc. Este 5 7 27 33.0 90.7 16.9
## 2 CLIPE2 Femenino Suc. Este 2 4 28 31.7 95.7 1.5
## 3 CLIPE3 Masculino Suc. Este 5 7 28 39.9 114.5 4.0
## 4 CLIPE4 Masculino Suc. Este 3 5 21 39.3 106.0 14.5
## 5 CLIPE5 Femenino Suc. Este 2 3 29 37.8 99.0 2.7
## 6 CLIPE6 Masculino Suc. Este 3 4 26 43.7 90.2 11.5
## Opinión
## 1 Regular
## 2 Bueno
## 3 Pésimo
## 4 Muy Bueno
## 5 Pésimo
## 6 Bueno
Esta transformacion se utiliza para reducir la dispersion de los datos cuando estos tienen una distribucion con una varianza que aumenta con el nivel medio de la variable. Tambien puede ayudar a reducir la asimetria.
# Original
hist(telefonia$Edad, 12)
Para sacra la raiz cuadrada, simplemente se puede utilizar la funcion sqrt
# Original
sqrt(telefonia$Edad)
## [1] 5.196152 5.291503 5.291503 4.582576 5.385165 5.099020 6.324555 6.324555
## [9] 5.477226 5.196152 5.291503 4.898979 5.099020 5.744563 4.582576 6.324555
## [17] 5.000000 6.164414 5.916080 5.567764 5.291503 5.099020 5.099020 5.744563
## [25] 5.830952 4.690416 5.099020 6.244998 5.567764 4.690416 5.291503 5.916080
## [33] 4.690416 6.324555 5.830952 4.472136 5.830952 4.472136 5.385165 5.744563
## [41] 4.795832 5.916080 4.898979 5.656854 5.656854 5.196152 6.082763 5.656854
## [49] 5.744563 5.916080 6.244998 5.830952 6.164414 6.244998 6.082763 5.656854
## [57] 6.082763 5.000000 5.099020 6.324555 6.324555 5.477226 5.291503 4.898979
## [65] 5.744563 4.582576 5.291503 4.582576 5.385165 6.000000 5.830952 4.472136
## [73] 5.830952 4.472136 5.385165 5.567764 4.690416 6.164414 6.000000 5.744563
Graficamente
hist(sqrt(telefonia$Edad))
Se aplica cuando los datos tienen una distribución sesgada hacia la izquierda (asimetria negativa). La transformacion exponencial puede ayudar a corregir la asimetria y hacer que los datos se aproximen mas a una distribucion simetrica.
en r para poder obtener esta transformacion, se debe utilizar la funcion exp()
exp(telefonia$Edad)
## [1] 5.320482e+11 1.446257e+12 1.446257e+12 1.318816e+09 3.931334e+12
## [6] 1.957296e+11 2.353853e+17 2.353853e+17 1.068647e+13 5.320482e+11
## [11] 1.446257e+12 2.648912e+10 1.957296e+11 2.146436e+14 1.318816e+09
## [16] 2.353853e+17 7.200490e+10 3.185593e+16 1.586013e+15 2.904885e+13
## [21] 1.446257e+12 1.957296e+11 1.957296e+11 2.146436e+14 5.834617e+14
## [26] 3.584913e+09 1.957296e+11 8.659340e+16 2.904885e+13 3.584913e+09
## [31] 1.446257e+12 1.586013e+15 3.584913e+09 2.353853e+17 5.834617e+14
## [36] 4.851652e+08 5.834617e+14 4.851652e+08 3.931334e+12 2.146436e+14
## [41] 9.744803e+09 1.586013e+15 2.648912e+10 7.896296e+13 7.896296e+13
## [46] 5.320482e+11 1.171914e+16 7.896296e+13 2.146436e+14 1.586013e+15
## [51] 8.659340e+16 5.834617e+14 3.185593e+16 8.659340e+16 1.171914e+16
## [56] 7.896296e+13 1.171914e+16 7.200490e+10 1.957296e+11 2.353853e+17
## [61] 2.353853e+17 1.068647e+13 1.446257e+12 2.648912e+10 2.146436e+14
## [66] 1.318816e+09 1.446257e+12 1.318816e+09 3.931334e+12 4.311232e+15
## [71] 5.834617e+14 4.851652e+08 5.834617e+14 4.851652e+08 3.931334e+12
## [76] 2.904885e+13 3.584913e+09 3.185593e+16 4.311232e+15 2.146436e+14
para poder observarlo graficamente se tienen:
plot(exp(telefonia$Edad))
Forma 2
edad_exp <- exp(telefonia$Edad)
hist(edad_exp)
Esta transformacion se utiliza cuando los datos presentan una distribución sesgada hacia la derecha (asimetria positiva). La transformación logaritmica reduce la asimetria y puede facilitar la interpretacion de los datos.
Para la transformacion logaritmica, utlizar log(dentro de los argumentos se puede cambiar la base)
log(telefonia$Edad)
## [1] 3.295837 3.332205 3.332205 3.044522 3.367296 3.258097 3.688879 3.688879
## [9] 3.401197 3.295837 3.332205 3.178054 3.258097 3.496508 3.044522 3.688879
## [17] 3.218876 3.637586 3.555348 3.433987 3.332205 3.258097 3.258097 3.496508
## [25] 3.526361 3.091042 3.258097 3.663562 3.433987 3.091042 3.332205 3.555348
## [33] 3.091042 3.688879 3.526361 2.995732 3.526361 2.995732 3.367296 3.496508
## [41] 3.135494 3.555348 3.178054 3.465736 3.465736 3.295837 3.610918 3.465736
## [49] 3.496508 3.555348 3.663562 3.526361 3.637586 3.663562 3.610918 3.465736
## [57] 3.610918 3.218876 3.258097 3.688879 3.688879 3.401197 3.332205 3.178054
## [65] 3.496508 3.044522 3.332205 3.044522 3.367296 3.583519 3.526361 2.995732
## [73] 3.526361 2.995732 3.367296 3.433987 3.091042 3.637586 3.583519 3.496508
graficamente
hist(log(telefonia$Edad))
Cambiar la base 2
log(telefonia$Edad, base=2)
## [1] 4.754888 4.807355 4.807355 4.392317 4.857981 4.700440 5.321928 5.321928
## [9] 4.906891 4.754888 4.807355 4.584963 4.700440 5.044394 4.392317 5.321928
## [17] 4.643856 5.247928 5.129283 4.954196 4.807355 4.700440 4.700440 5.044394
## [25] 5.087463 4.459432 4.700440 5.285402 4.954196 4.459432 4.807355 5.129283
## [33] 4.459432 5.321928 5.087463 4.321928 5.087463 4.321928 4.857981 5.044394
## [41] 4.523562 5.129283 4.584963 5.000000 5.000000 4.754888 5.209453 5.000000
## [49] 5.044394 5.129283 5.285402 5.087463 5.247928 5.285402 5.209453 5.000000
## [57] 5.209453 4.643856 4.700440 5.321928 5.321928 4.906891 4.807355 4.584963
## [65] 5.044394 4.392317 4.807355 4.392317 4.857981 5.169925 5.087463 4.321928
## [73] 5.087463 4.321928 4.857981 4.954196 4.459432 5.247928 5.169925 5.044394
graficamente
hist(log(telefonia$Edad, base=2))
# Obtener solo tranformaciones
edad_sqrt <- sqrt(telefonia$Edad)
edad_exp <- exp(telefonia$Edad)
edad_ln <- log(telefonia$Edad)
edad_log2 <- log(telefonia$Edad, base=2)
edad_log5 <- log(telefonia$Edad, base=5)
ver graficamente cada una:
par(mfrow=c(3,2))
hist(telefonia$Edad)
hist(edad_sqrt)
hist(edad_exp)
hist(edad_ln)
hist(edad_log2)
hist(edad_log5)
par(mfrow=c(1,1))
Este tipo de transformaciones, busca que los datos sean simetricos ( distribucion forma de campana) o que se cumpla un supuesto estadistico
La visualización de la distribucion puede mejorarse con la gráfica de densidad
par(mfrow=c(3,2))
plot(density(telefonia$Edad), main = "Distribucion de edades originales")
plot(density(edad_sqrt), main = "Distribucion de edades tranformadas - sqrt")
plot(density(edad_exp), main = "Distribucion de edades tranformadas - exp")
plot(density(edad_ln), main = "Distribucion de edades tranformadas - ln")
plot(density(edad_log2), main = "Distribucion de edades tranformadas - log2")
plot(density(edad_log5), main = "Distribucion de edades tranformadas - log5 ")
par(mfrow=c(1,1))
Se puede realizar un analisi general de las variables originales y verificar su comportamiento, a partir de alli se puede aplicar la trasfromacion mas adecuado segun objeto.
Grafica general
library(PerformanceAnalytics)
chart.Correlation(cor(telefonia[,4:8]), histigram = TRUE)
La estandarización de variables, también conocida como normalización, implica transformar los valores de una variable para que tengan una media de cero y una desviación estándar de uno. Esto se logra restando la media de la variable a cada valor y dividiendo por la desviación estándar. La estandarización es útil cuando se desea comparar variables que están en diferentes escalas o unidades. Al estandarizar las variables, se eliminan las diferencias en las escalas y se asegura que todas las variables tengan la misma escala relativa.
Por ejemplo, si tienes un conjunto de variables con diferentes unidades de medida, como peso en kilogramos y altura en metros, puedes estandarizar ambas variables para que sean comparables y no se vean afectadas por las diferencias en las unidades.