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:
Cargar el conjunto de datos
#
telco<-read.csv("https://raw.githubusercontent.com/VictorGuevaraP/Estadistica-R/master/Caso_telefon%C3%ADa.csv", sep = ";", encoding = "latin1", stringsAsFactors = T)
head(telco)
Esta transformación se utiliza para reducir la dispersión de los datos cuando estos tienen una distribución con una varianza que aumenta con el nivel medio de la variable. También puede ayudar a reducir la asimetría.
# Original
hist(telco$Edad, 12)
Para sacar la raiz cuadrada, simplemente se puede utilizar la función sqrt
sqrt(telco$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(telco$Edad))
Se aplica cuando los datos tienen una distribución sesgada hacia la izquierda (asimetría negativa). La transformación exponencial puede ayudar a corregir la asimetría y hacer que los datos se aproximen más a una distribución simétrica.
en r para poder obtener esta transformación, se debe utilizar la función exp()
exp(telco$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 tiene:
hist(exp(telco$Edad))
Forma 2
edad_exp<- exp(telco$Edad)
hist(edad_exp)
Esta transformación se utiliza cuando los datos presentan una distribución sesgada hacia la derecha (asimetría positiva). La transformación logarítmica reduce la asimetría y puede facilitar la interpretación de los datos.
Para la transformación logaritmica, utilizar log (dentro de los argumentos se puede cambiar la base)
log(telco$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(telco$Edad))
Cambiar la base 2
log(telco$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(telco$Edad, base=2))
#Obtener solo tranaformaciones
edad_sqrt <- sqrt(telco$Edad)
edad_exp <- exp(telco$Edad)
edad_ln <- log(telco$Edad)
edad_log2 <- log(telco$Edad, base=2)
edad_log5 <- log(telco$Edad, base=5)
Ver graficamente cada una:
par(mfrow=c(3,2))
hist(telco$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 simétricos (distribución forma de campana) o que se cumpla un supuesto estadístico
La visualización de la distribución puede mejorarse con la gráfica de densidad
par(mfrow=c(3,2))
plot(density(telco$Edad), main = "Distribución de edades originales")
plot(density(edad_sqrt), main = "Distribución de edades transformadas - sqrt")
plot(density(edad_exp), main = "Distribución de edades transformadas - exp")
plot(density(edad_ln), main = "Distribución de edades transformadas - ln")
plot(density(edad_log2), main = "Distribución de edades transformadas - log2")
plot(density(edad_log5), main = "Distribución de edades transformadas - log5")
par(mfrow=c(1,1))
Se puede realizar un análisis general de las variables originales y verificar su comportmiento, a partir de allí se puede aplicar la transformación más adecuado según objetivo.
gráfica general
library(PerformanceAnalytics)
chart.Correlation(cor(telco[,4:8]), histogram = 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.
Es una librería en R que proporciona una forma fácil y poderosa de crear gráficos de alta calidad. Fue desarrollada por Hadley Wickham y se basa en la gramática de gráficos, lo que significa que utiliza una sintaxis coherente y consistente para construir visualizaciones.
La principal idea detrás de ggplot es que un gráfico se puede descomponer en capas que representan diferentes aspectos de la visualización, como los datos, las variables estéticas, las escalas, los ejes, los títulos, las leyendas, etc. Cada capa se agrega al gráfico utilizando funciones específicas de ggplot.
En ggplot, se sigue un enfoque de “declaración” para construir gráficos. En lugar de dibujar directamente los gráficos, se especifica cómo deberían verse los gráficos y qué datos utilizar. Luego, ggplot se encarga de generar el gráfico final teniendo en cuenta todas las especificaciones.
La sintaxis básica de ggplot involucra tres componentes principales:
ggplot(): Esta función inicializa un objeto de gráfico base al que se pueden agregar capas adicionales. Se especifica el conjunto de datos y las variables estéticas dentro de esta función.
aes(): Esta función se utiliza dentro de ggplot() o en las capas adicionales para definir las variables estéticas. Las variables estéticas determinan cómo se mapean los datos a los aspectos visuales del gráfico, como las posiciones en los ejes x e y, los colores, los tamaños, etc.
Capas adicionales: Después de inicializar el objeto de gráfico con ggplot(), se pueden agregar capas adicionales utilizando funciones como geom_point(), geom_line(), geom_bar(), etc. Estas funciones especifican el tipo de gráfico que se desea agregar al gráfico base y permiten personalizar aún más la visualización.
Vamos a aplicar la estandarizacion z a la variable Monto de manera manual Metodo 1: por partes
telco$Monto
## [1] 90.7 95.7 114.5 106.0 99.0 90.2 102.5 92.2 110.1 96.5 88.3 85.6
## [13] 89.7 88.8 84.0 84.2 91.7 74.1 88.8 91.6 80.0 88.4 78.5 88.3
## [25] 85.6 88.6 78.8 81.6 86.3 83.8 90.7 95.7 99.3 83.3 97.3 82.8
## [37] 94.3 96.5 78.8 100.2 82.5 82.6 94.5 86.3 88.3 83.7 83.8 84.1
## [49] 83.2 84.8 98.9 119.1 103.4 109.6 106.0 100.6 103.0 110.5 112.4 90.7
## [61] 112.5 108.3 106.0 99.0 90.2 102.5 92.2 110.1 96.5 92.0 84.2 88.4
## [73] 78.5 88.3 85.6 88.6 78.8 81.6 86.3 83.8
media_monto <- mean(telco$Monto)
media_monto
## [1] 92.305
desv_est <- sd(telco$Monto)
desv_est
## [1] 10.11737
monto_estandar <- (telco$Monto-media_monto) / desv_est
monto_estandar
## [1] -0.15863801 0.33556141 2.19375124 1.35361222 0.66173303 -0.20805796
## [7] 1.00767262 -0.01037819 1.75885575 0.41463332 -0.39585374 -0.66272143
## [13] -0.25747790 -0.34643380 -0.82086524 -0.80109726 -0.05979813 -1.79938010
## [19] -0.34643380 -0.06968212 -1.21622478 -0.38596975 -1.36448461 -0.39585374
## [25] -0.66272143 -0.36620177 -1.33483264 -1.05808096 -0.59353351 -0.84063322
## [31] -0.15863801 0.33556141 0.69138499 -0.89005316 0.49370522 -0.93947310
## [37] 0.19718557 0.41463332 -1.33483264 0.78034089 -0.96912507 -0.95924108
## [43] 0.21695355 -0.59353351 -0.39585374 -0.85051721 -0.84063322 -0.81098125
## [49] -0.89993715 -0.74179333 0.65184904 2.64841471 1.09662852 1.70943580
## [55] 1.35361222 0.81987684 1.05709257 1.79839170 1.98618748 -0.15863801
## [61] 1.99607147 1.58094395 1.35361222 0.66173303 -0.20805796 1.00767262
## [67] -0.01037819 1.75885575 0.41463332 -0.03014616 -0.80109726 -0.38596975
## [73] -1.36448461 -0.39585374 -0.66272143 -0.36620177 -1.33483264 -1.05808096
## [79] -0.59353351 -0.84063322
Metodo 2: Directo
monto_estandar2 <- (telco$Monto-mean(telco$Monto))/sd(telco$Monto)
monto_estandar2
## [1] -0.15863801 0.33556141 2.19375124 1.35361222 0.66173303 -0.20805796
## [7] 1.00767262 -0.01037819 1.75885575 0.41463332 -0.39585374 -0.66272143
## [13] -0.25747790 -0.34643380 -0.82086524 -0.80109726 -0.05979813 -1.79938010
## [19] -0.34643380 -0.06968212 -1.21622478 -0.38596975 -1.36448461 -0.39585374
## [25] -0.66272143 -0.36620177 -1.33483264 -1.05808096 -0.59353351 -0.84063322
## [31] -0.15863801 0.33556141 0.69138499 -0.89005316 0.49370522 -0.93947310
## [37] 0.19718557 0.41463332 -1.33483264 0.78034089 -0.96912507 -0.95924108
## [43] 0.21695355 -0.59353351 -0.39585374 -0.85051721 -0.84063322 -0.81098125
## [49] -0.89993715 -0.74179333 0.65184904 2.64841471 1.09662852 1.70943580
## [55] 1.35361222 0.81987684 1.05709257 1.79839170 1.98618748 -0.15863801
## [61] 1.99607147 1.58094395 1.35361222 0.66173303 -0.20805796 1.00767262
## [67] -0.01037819 1.75885575 0.41463332 -0.03014616 -0.80109726 -0.38596975
## [73] -1.36448461 -0.39585374 -0.66272143 -0.36620177 -1.33483264 -1.05808096
## [79] -0.59353351 -0.84063322
Metodo 3: apoyarse en la funciones de R
R tiene multiple funciones para estandarizacion, la clasica es la funcion scale
monto_estandar3 <- scale(telco$Monto)
monto_estandar3
## [,1]
## [1,] -0.15863801
## [2,] 0.33556141
## [3,] 2.19375124
## [4,] 1.35361222
## [5,] 0.66173303
## [6,] -0.20805796
## [7,] 1.00767262
## [8,] -0.01037819
## [9,] 1.75885575
## [10,] 0.41463332
## [11,] -0.39585374
## [12,] -0.66272143
## [13,] -0.25747790
## [14,] -0.34643380
## [15,] -0.82086524
## [16,] -0.80109726
## [17,] -0.05979813
## [18,] -1.79938010
## [19,] -0.34643380
## [20,] -0.06968212
## [21,] -1.21622478
## [22,] -0.38596975
## [23,] -1.36448461
## [24,] -0.39585374
## [25,] -0.66272143
## [26,] -0.36620177
## [27,] -1.33483264
## [28,] -1.05808096
## [29,] -0.59353351
## [30,] -0.84063322
## [31,] -0.15863801
## [32,] 0.33556141
## [33,] 0.69138499
## [34,] -0.89005316
## [35,] 0.49370522
## [36,] -0.93947310
## [37,] 0.19718557
## [38,] 0.41463332
## [39,] -1.33483264
## [40,] 0.78034089
## [41,] -0.96912507
## [42,] -0.95924108
## [43,] 0.21695355
## [44,] -0.59353351
## [45,] -0.39585374
## [46,] -0.85051721
## [47,] -0.84063322
## [48,] -0.81098125
## [49,] -0.89993715
## [50,] -0.74179333
## [51,] 0.65184904
## [52,] 2.64841471
## [53,] 1.09662852
## [54,] 1.70943580
## [55,] 1.35361222
## [56,] 0.81987684
## [57,] 1.05709257
## [58,] 1.79839170
## [59,] 1.98618748
## [60,] -0.15863801
## [61,] 1.99607147
## [62,] 1.58094395
## [63,] 1.35361222
## [64,] 0.66173303
## [65,] -0.20805796
## [66,] 1.00767262
## [67,] -0.01037819
## [68,] 1.75885575
## [69,] 0.41463332
## [70,] -0.03014616
## [71,] -0.80109726
## [72,] -0.38596975
## [73,] -1.36448461
## [74,] -0.39585374
## [75,] -0.66272143
## [76,] -0.36620177
## [77,] -1.33483264
## [78,] -1.05808096
## [79,] -0.59353351
## [80,] -0.84063322
## attr(,"scaled:center")
## [1] 92.305
## attr(,"scaled:scale")
## [1] 10.11737
La ventaja de la funcion de R, es que se puede enviar todo el caso
telco_cuanti_scale <- scale(telco[,4:9])
telco_cuanti_scale
## Reclamos Llamadas Edad Minutos Monto Tiempo
## [1,] 0.6462614 0.86099329 -0.54653598 -0.52591040 -0.15863801 1.52187422
## [2,] -0.7263292 -0.37636234 -0.38028929 -0.67800907 0.33556141 -0.63497501
## [3,] 0.6462614 0.86099329 -0.38028929 0.28138254 2.19375124 -0.28483715
## [4,] -0.2687990 0.03608954 -1.54401609 0.21118315 1.35361222 1.18574187
## [5,] -0.7263292 -0.78881422 -0.21404261 0.03568469 0.66173303 -0.46690884
## [6,] -0.2687990 -0.37636234 -0.71278266 0.72597865 -0.20805796 0.76557644
## [7,] 1.1037917 1.27344517 1.61467093 1.00677619 1.00767262 -0.77503016
## [8,] -0.7263292 -0.37636234 1.61467093 0.01228489 -0.01037819 -0.66298604
## [9,] -0.2687990 0.44854142 -0.04779592 0.52708039 1.75885575 -0.10276546
## [10,] -1.1838595 -0.37636234 -0.54653598 0.64407937 0.41463332 -0.67699156
## [11,] -0.2687990 0.03608954 -0.38028929 0.85467753 -0.39585374 -0.60696398
## [12,] -0.2687990 -0.78881422 -1.04527603 0.01228489 -0.66272143 2.02607274
## [13,] -0.7263292 -0.37636234 -0.71278266 -1.22790426 -0.25747790 -0.73301361
## [14,] -1.1838595 -1.20126609 0.45094413 -0.86520743 -0.34643380 -0.78903567
## [15,] 0.1887312 0.03608954 -1.54401609 -1.28640375 -0.82086524 -0.45290332
## [16,] -0.2687990 0.03608954 1.61467093 -1.07580559 -0.80109726 -0.03273789
## [17,] -0.2687990 0.44854142 -0.87902935 -0.91200702 -0.05979813 -0.25682612
## [18,] 0.1887312 0.03608954 1.28217756 -0.58440989 -1.79938010 -0.73301361
## [19,] 0.1887312 -0.37636234 0.78343750 -1.49700191 -0.34643380 0.48546615
## [20,] -1.1838595 0.44854142 0.11845076 -1.48530201 -0.06968212 -0.48091435
## [21,] -0.2687990 0.86099329 -0.38028929 -0.61950958 -1.21622478 -0.21480958
## [22,] -1.1838595 -1.61371797 -0.71278266 -1.26300395 -0.38596975 -0.66298604
## [23,] 1.5613219 1.68589705 -0.71278266 -0.71310876 -1.36448461 -0.48091435
## [24,] -0.2687990 0.03608954 0.45094413 -0.74820846 -0.39585374 -0.07475443
## [25,] -0.2687990 0.44854142 0.61719082 -1.26300395 -0.66272143 -0.46690884
## [26,] -0.7263292 0.44854142 -1.37776940 -0.39721153 -0.36620177 0.76557644
## [27,] 0.1887312 0.44854142 -0.71278266 -1.20450447 -1.33483264 -0.77503016
## [28,] 0.6462614 0.86099329 1.44842424 -1.06410569 -1.05808096 -0.66298604
## [29,] -1.1838595 -1.61371797 0.11845076 1.41627261 -0.59353351 -0.10276546
## [30,] 0.6462614 0.86099329 -1.37776940 -1.04070590 -0.84063322 -0.67699156
## [31,] -0.7263292 -0.37636234 -0.38028929 -0.02281480 -0.15863801 -0.60696398
## [32,] -0.2687990 0.03608954 0.78343750 -0.42061132 0.33556141 2.02607274
## [33,] -0.2687990 -0.78881422 -1.37776940 0.05908448 0.69138499 -0.38287575
## [34,] 0.1887312 -0.37636234 1.61467093 0.49198070 -0.89005316 -0.80304119
## [35,] -1.1838595 -1.61371797 0.61719082 0.09418418 0.49370522 -0.60696398
## [36,] -0.7263292 -0.78881422 -1.71026277 1.29927364 -0.93947310 1.46585216
## [37,] -0.7263292 -0.78881422 0.61719082 -0.50251061 0.19718557 -0.29884267
## [38,] -1.1838595 -1.20126609 -1.71026277 0.41008141 0.41463332 2.88040912
## [39,] 0.1887312 0.86099329 -0.21404261 0.49198070 -1.33483264 -0.50892538
## [40,] 0.1887312 0.03608954 0.45094413 -0.33871204 0.78034089 -0.80304119
## [41,] -0.2687990 1.27344517 -1.21152272 1.17057476 -0.96912507 -0.46690884
## [42,] -1.1838595 -1.20126609 0.78343750 -0.29191245 -0.95924108 2.33419406
## [43,] -0.2687990 1.27344517 -1.04527603 -0.08131429 0.21695355 -0.21480958
## [44,] -1.1838595 -1.61371797 0.28469745 0.71427875 -0.59353351 -0.20080406
## [45,] -0.7263292 -0.78881422 0.28469745 -0.26851265 -0.39585374 0.30339446
## [46,] 1.5613219 1.27344517 -0.54653598 0.03568469 -0.85051721 -0.11677098
## [47,] -0.2687990 -0.37636234 1.11593087 0.02398479 -0.84063322 -0.28483715
## [48,] 0.6462614 1.27344517 0.28469745 0.46858090 -0.81098125 0.90563158
## [49,] -0.2687990 0.86099329 0.45094413 1.49817190 -0.89993715 2.47424920
## [50,] 1.5613219 1.27344517 0.78343750 -0.45571101 -0.74179333 -0.46690884
## [51,] 2.0188521 1.68589705 1.44842424 1.69707016 0.65184904 4.19692748
## [52,] 0.6462614 0.03608954 0.61719082 1.50987179 2.64841471 -0.77503016
## [53,] 2.0188521 1.27344517 1.28217756 -0.15151367 1.09662852 -0.62096950
## [54,] 0.1887312 -0.37636234 1.44842424 0.26968264 1.70943580 -0.60696398
## [55,] 0.1887312 0.03608954 1.11593087 2.89045972 1.35361222 -0.73301361
## [56,] -0.2687990 -0.37636234 0.28469745 0.94827671 0.81987684 -0.53693641
## [57,] 1.5613219 0.86099329 1.11593087 1.29927364 1.05709257 -0.17279303
## [58,] 0.6462614 0.03608954 -0.87902935 0.25798274 1.79839170 -0.53693641
## [59,] -0.7263292 -0.78881422 -0.71278266 -1.38000293 1.98618748 -0.28483715
## [60,] -0.2687990 -0.37636234 1.61467093 0.33988203 -0.15863801 1.52187422
## [61,] 2.0188521 1.27344517 1.61467093 1.03017599 1.99607147 -0.63497501
## [62,] 0.1887312 -0.37636234 -0.04779592 0.71427875 1.58094395 -0.45290332
## [63,] 2.0188521 1.27344517 -0.38028929 2.07146688 1.35361222 -0.35486472
## [64,] 3.3914428 3.33570456 -1.04527603 0.18778336 0.66173303 -0.28483715
## [65,] 0.6462614 0.44854142 0.45094413 1.65027057 -0.20805796 1.18574187
## [66,] 0.1887312 0.86099329 -1.54401609 0.77277824 1.00767262 -0.41088678
## [67,] 2.4763823 1.68589705 -0.38028929 0.17608346 -0.01037819 -0.18679855
## [68,] 2.0188521 1.27344517 -1.54401609 1.72046995 1.75885575 -0.29884267
## [69,] -0.2687990 -0.78881422 -0.21404261 1.88426852 0.41463332 0.07930623
## [70,] -0.7263292 -1.20126609 0.94968419 -0.13981378 -0.03014616 0.79358746
## [71,] -1.1838595 -1.61371797 0.61719082 -1.54380150 -0.80109726 -0.48091435
## [72,] -1.1838595 -1.61371797 -1.71026277 -0.66630917 -0.38596975 -0.10276546
## [73,] -0.2687990 -0.78881422 0.61719082 -0.52591040 -1.36448461 -0.67699156
## [74,] 0.1887312 0.03608954 -1.71026277 -0.67800907 -0.39585374 -0.60696398
## [75,] -0.7263292 -1.20126609 -0.21404261 -0.71310876 -0.66272143 2.02607274
## [76,] -1.1838595 -1.20126609 0.11845076 -1.23960416 -0.36620177 -0.38287575
## [77,] -0.7263292 -0.78881422 -1.37776940 -2.33939454 -1.33483264 -0.80304119
## [78,] -0.2687990 -0.78881422 1.28217756 -0.88860723 -1.05808096 -0.60696398
## [79,] -0.7263292 -0.78881422 0.94968419 -0.13981378 -0.59353351 -0.53693641
## [80,] -0.7263292 -1.20126609 0.45094413 -0.66630917 -0.84063322 -0.28483715
## attr(,"scaled:center")
## Reclamos Llamadas Edad Minutos Monto Tiempo
## 3.58750 4.91250 30.28750 37.49500 92.30500 6.03375
## attr(,"scaled:scale")
## Reclamos Llamadas Edad Minutos Monto Tiempo
## 2.185648 2.424525 6.015158 8.547083 10.117373 7.140045
boxplot(telco_cuanti_scale)
\[ X_{norm}=\frac{\left(X_i-X_{\min }\right)}{X_{\max }-X_{\min }} \] Metodo 1:
monto_normal <- (telco$Monto-min(telco$Monto))/(max(telco$Monto)-min(telco$Monto))
monto_normal
## [1] 0.36888889 0.48000000 0.89777778 0.70888889 0.55333333 0.35777778
## [7] 0.63111111 0.40222222 0.80000000 0.49777778 0.31555556 0.25555556
## [13] 0.34666667 0.32666667 0.22000000 0.22444444 0.39111111 0.00000000
## [19] 0.32666667 0.38888889 0.13111111 0.31777778 0.09777778 0.31555556
## [25] 0.25555556 0.32222222 0.10444444 0.16666667 0.27111111 0.21555556
## [31] 0.36888889 0.48000000 0.56000000 0.20444444 0.51555556 0.19333333
## [37] 0.44888889 0.49777778 0.10444444 0.58000000 0.18666667 0.18888889
## [43] 0.45333333 0.27111111 0.31555556 0.21333333 0.21555556 0.22222222
## [49] 0.20222222 0.23777778 0.55111111 1.00000000 0.65111111 0.78888889
## [55] 0.70888889 0.58888889 0.64222222 0.80888889 0.85111111 0.36888889
## [61] 0.85333333 0.76000000 0.70888889 0.55333333 0.35777778 0.63111111
## [67] 0.40222222 0.80000000 0.49777778 0.39777778 0.22444444 0.31777778
## [73] 0.09777778 0.31555556 0.25555556 0.32222222 0.10444444 0.16666667
## [79] 0.27111111 0.21555556
Metodo 2:
library(scales)
rescale(telco$Monto)
## [1] 0.36888889 0.48000000 0.89777778 0.70888889 0.55333333 0.35777778
## [7] 0.63111111 0.40222222 0.80000000 0.49777778 0.31555556 0.25555556
## [13] 0.34666667 0.32666667 0.22000000 0.22444444 0.39111111 0.00000000
## [19] 0.32666667 0.38888889 0.13111111 0.31777778 0.09777778 0.31555556
## [25] 0.25555556 0.32222222 0.10444444 0.16666667 0.27111111 0.21555556
## [31] 0.36888889 0.48000000 0.56000000 0.20444444 0.51555556 0.19333333
## [37] 0.44888889 0.49777778 0.10444444 0.58000000 0.18666667 0.18888889
## [43] 0.45333333 0.27111111 0.31555556 0.21333333 0.21555556 0.22222222
## [49] 0.20222222 0.23777778 0.55111111 1.00000000 0.65111111 0.78888889
## [55] 0.70888889 0.58888889 0.64222222 0.80888889 0.85111111 0.36888889
## [61] 0.85333333 0.76000000 0.70888889 0.55333333 0.35777778 0.63111111
## [67] 0.40222222 0.80000000 0.49777778 0.39777778 0.22444444 0.31777778
## [73] 0.09777778 0.31555556 0.25555556 0.32222222 0.10444444 0.16666667
## [79] 0.27111111 0.21555556
Aplicando a todo el caso (var cuantitativas) la funcion rescale solo se permite aplicarse a vectores, no es posible directamente apicar al data frame.
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
pre_procesamiento <- preProcess(telco[,4:9]) # Asi por defecto muestra la estandarizacion z
predict(pre_procesamiento, telco[,4:9])
library(caret)
pre_procesamiento <- preProcess(telco[,4:9], method = "range") # Asi por defecto muestra la estandarizacion z
predict(pre_procesamiento, telco[,4:9])
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í.
Transformación de variables
La transformación de variables implica aplicar una función matemática a los valores de una variable para modificar su distribución o relación con otras variables. Las transformaciones de variables se utilizan con frecuencia para:
Ajustar los datos a una distribución normal. Muchas técnicas estadísticas asumen que los datos se distribuyen normalmente. La transformación de variables puede ayudar a que los datos se ajusten mejor a una distribución normal, lo que puede mejorar la precisión de los resultados estadísticos. Reducir la asimetría o la curtosis. La asimetría y la curtosis son medidas de la forma de la distribución de los datos. Las transformaciones de variables pueden ayudar a reducir la asimetría o la curtosis de los datos, lo que puede mejorar la interpretabilidad de los datos. Mejorar la relación entre variables. Las transformaciones de variables pueden ayudar a mejorar la relación entre dos o más variables. Esto puede ser útil para el análisis de regresión, por ejemplo. Estandarización de variables
La estandarización de variables implica convertir los valores de una variable a una escala común. Esto se logra restando la media de la variable a cada valor y dividiendo por la desviación estándar.
La estandarización de variables se utiliza con frecuencia para:
Hacer que las variables sean comparables entre sí. Las variables que se miden en diferentes escalas pueden ser difíciles de comparar directamente. La estandarización de variables puede ayudar a hacer que las variables sean comparables entre sí, lo que puede facilitar el análisis de los datos. Mejorar la precisión de las comparaciones. La estandarización de variables puede ayudar a mejorar la precisión de las comparaciones entre grupos o variables. Transformación y estandarización en R
En R, las transformaciones de variables se pueden realizar utilizando las funciones de la biblioteca stats. Por ejemplo, para transformar los valores de una variable a la raíz cuadrada, se puede utilizar la función sqrt(). Para transformar los valores de una variable al logaritmo natural, se puede utilizar la función log().
La estandarización de variables se puede realizar utilizando la función scale(). Por ejemplo, para estandarizar los valores de una variable, se puede utilizar el siguiente código: