Cuando se tienen muchas variables para analizar, se hace importante decidir cuál visualizar. Se requiere la capacidad humana de utilizar la experiencia en la materia y el conocimiento del dominio para identificar tales características. En la sección que figura a continuación se examinan algunos ejemplos.
Visualizando la edad
En el conjunto de datos de la solicitud de préstamo, se puede suponer que la edad desempeña un papel importante en la aprobación de los préstamos. Usaremos un histograma para visualizar la distribución de la variable numérica Age. Un histograma muestra el número de valores de datos dentro de un recipiente para una variable numérica, con los recipientes dividiendo los valores en segmentos iguales. El eje vertical del histograma muestra el recuento de los valores de datos dentro de cada recipiente. El código de abajo traza un histograma de la variable Edad.
1ggplot(dat, aes(x = Edad)) + geom_histograma(col="verde") + ggtitle("Distribución por edades")
{r}
Salida:
El gráfico anterior muestra que hay valores de edad negativos, lo cual es imposible. Veamos el resumen de la variable de edad.
1sumario(dat$Age)
{r}
Salida:
12 Min. 1er Qu. Media de la media 3er Qu. Max. -12.0 37.0 51.0 49.4 61.0 76.0
La salida confirma que el valor mínimo de la variable, la edad, es -12. Esto es incorrecto y debe ser reemplazado, lo que nos lleva a un importante factor humano en la ciencia de los datos: la capacidad de hacer suposiciones cuando se trata de registros incorrectos. Para las solicitudes de préstamo, asumiremos que la edad mínima debe ser de 18 años. Esto significa que eliminaremos los registros de los solicitantes menores de 18 años.
El primer par de líneas de código a continuación dan el número de registros en el conjunto de datos que tienen una edad inferior a 18 años. Tenemos tres registros de este tipo. La tercera línea de código elimina tales registros, mientras que la cuarta línea imprime las dimensiones de los nuevos datos: 566 observaciones y 12 variables.
Por último, mira de nuevo el resumen de la variable de edad. Esto muestra que el rango de edad está ahora entre 23 y 76 años, lo que indica que se ha hecho la corrección.
123456age_18 <- dat[which(dat$Age<18),]dim(age_18)dat <- dat[-which(dat$Age<18),]dim(dat)summary(dat$Age)
{r}
Salida:
123456[1] 3 12[1] 566 12 Min. 1er Qu. Media Media 3er Qu. Max. 23.0 37.0 51.0 49.7 61.0 76.0
Veamos la trama de nuevo. El resultado muestra que la distribución es mucho más razonable.
1ggplot(dat, aes(x = Edad)) + geom_histograma(col="azul") + ggtitle("Distribución por edades")
{r}
Salida:
Detección de Anamoly
Fue fácil detectar las entradas incorrectas en la variable de edad. Sin embargo, a veces es importante identificar anamolias o valores atípicos en los datos. Veamos un ejemplo de la variable de ingresos.
1ggplot(dat, aes(x = Ingreso)) + geom_histograma(col="blue") + ggtitle("Distribución de ingresos")
{r}
Salida:
La visualización anterior muestra que los niveles de ingresos no se distribuyen normalmente, y la distribución está bien sesgada. Confirme esto con la función summary(), como se muestra a continuación.
1sumario(dat$Income)
{r}
Salida:
12 Min. 1er Qu. Media de la media 3er Qu. Max. 17320 39035 51445 71945 77560 844490
El resumen muestra que los niveles de ingresos mínimos y máximos son de 17.320 y 844.490 dólares, respectivamente. Este es un gran rango, que indica los valores atípicos. Para entender mejor la distribución, use la función quantile(), que da el valor del primer al centésimo percentil de la variable.
1quantile(dat$Income,seq(0,1,0.01))
{r}
Salida:
1234567891011121314151617181920212223240% 1% 2% 3% 4% 5% 6% 7% 8% 17320.0 21551.0 24036.0 24476.0 25502.0 26640.0 27596.0 28881.0 29538. 0 9% 10% 11% 12% 13% 14% 15% 16% 17% 30398.0 31195.0 31794.0 32248.0 33006.0 33239.0 33330.0 33554.0 34440.0 18% 19% 20% 21% 22% 23% 24% 25% 26% 34670.0 35277.0 35720.0 36259. 5 36983.0 38283.0 38596.0 39035.0 39593.0 27% 28% 29% 30% 31% 32% 33% 34% 35% 40000.0 40400.0 40962.5 41155.0 42044.5 42210.0 42310.0 42798.0 43375. 0 36% 37% 38% 39% 40% 41% 42% 43% 44% 44302.0 44541.5 45327.0 45570.0 46170.0 46670.0 47196.0 47906.5 48142.0 45% 46% 47% 48% 49% 50% 51% 52% 53% 48890.0 49374.0 49631. 5 50032.0 50848.5 51445.0 51855.5 52622.0 53330.0 54% 55% 56% 57% 58% 59% 60% 61% 62% 54096.0 55530.0 55628.0 56434.0 57330.0 57812.0 58670.0 60824.0 61176. 0 63% 64% 65% 66% 67% 68% 69% 70% 71% 62030.0 62584.0 63330.0 64863.0 65700.5 66670.0 68796.0 70105.0 72230.0 72% 73% 74% 75% 76% 77% 78% 79% 80% 73362.0 75618. 5 76376.0 77560.0 79162.0 80000.0 81010.0 83330.0 83770.0 81% 82% 83% 84% 85% 86% 87% 88% 89% 85382.0 88707.0 92620.0 97330.0 101365.0 105950.0 111110.0 115102. 0 122045.0 90% 91% 92% 93% 94% 95% 96% 97% 98% 125965.0 133330.0 138858.0 149235.5 167124.0 194440.0 204048.0 222246.5 255185.0 99% 100% 364238.5 844490.0
Tratar estos valores atípicos con el método de pavimento y tapado. La primera línea del código debajo de los pisos los valores más bajos en el quinto percentil. De manera similar, la segunda línea limita los valores extremos al valor del percentil 95. La tercera línea imprime el resumen indicando que la corrección ha sido hecha. La selección del valor del percentil es una decisión subjetiva después de explorar los datos.
12345dat$Income[which(dat$Income<26640)]<;- 26640.0dat$Income[which(dat$Income > 194440)]<;- 194440summary(dat$Income)
{r}
Salida:
12 Min. 1er Qu. Media de la media 3er Qu. Max. 26640 39035 51445 66389 77560 194440
Contenidos