lectura:

library(ggplot2)
library(foreign)       
datos <- read.spss("Riesgo_morosidad.sav", 
                   use.value.labels = T,  
                   to.data.frame = TRUE)
attach(datos)

ggExtra

ggExtra es una colección de funciones y capas para mejorar ggplot2.

ggMarginal

La función principal es ggMarginal, que se puede usar para agregar histogramas marginales/diagramas de caja/diagramas de densidad a los diagramas de dispersión ggplot2.

Ejemplo: veamos un grafico de disperson para las variables edad y antiguedad

a <- ggplot(datos)+aes(x=edad,y=antiguedad)+ geom_point()
a

En estadistica casi siempre surge la duda ¿Las variables siguen una distribucion normal? , esto es , porque algunos modelos requieren de su cumplimiento.

Para determinar ello , necesitariamos hacer algunas pruebas cuantitativas , aunque visualmente tambien podemos intuir si las variables por separado siguen o no una distribucion normal(si tuvieran una distribucion normal su grafico de densidad seria una campana simetrica y mesocurtica , centrada en la media de la variable).

veamos con la ayuda de la funcion ggmarginal si los graficos de densidad marginales se asemejan al de una campana simetrica:

library(ggExtra)
ggMarginal(a)

Claramente con la ayuda de esta funcion podemos notar que la variable antiguedad no se distribuye normalmente , mientras que para la variable edad , faltaria una prueba cuantitativa para verificar si se distribuye o no normalmente.

En este caso tambien nos ayuda a identificar, ¿entre que valores de edad y antiguedad , se encuentran la mayor cantidad de morosos?

# Gráfica avanzada
b <- ggplot(datos)+aes(x=edad,y=antiguedad,fill=morosidad,color=morosidad)+ geom_point() +
  labs(title="Grafico de dispersion y densidades por grupo",
       x="Edad(en años)",
       y="Antiguedad(en años)") + scale_x_continuous(breaks=seq(20,80,5)) +
  scale_y_continuous(breaks=seq(0,60,5))+ 
  scale_color_manual(values = c("royalblue3", "darkred"))

ggMarginal(b,groupColour = T,groupFill = T)

claramente notamos que respecto a la antiguedad , aproximadamente entre 5 y 10 años solamente hay clientes morosos , y respecto de la edad notamos que aproximadamente entre los 25 y 35 años tambien solamente hay clientes morosos.

si bien es cierto , la funcion por defecto genera graficos de densidad marginales , tambien es posible generar histogramas marginales y diagramas de caja , en estos casos solo es necesario cambiar el argumento “type” , ejemplo:

ggMarginal(a,type = "boxplot")

ggMarginal(a,type = "histogram")

removeGrid

sirve basicamente para eliminar lineas de cuadricula de ggplot2, ejemplo:

a

si quisieramos eliminar las lineas de cuadricula del eje X:

a + removeGrid(x=T,y=F)

intuitivamente si quisieramos eliminar las lineas del eje “y”:

a + removeGrid(x=F,y=T)

y si quisieramos eliminar ambas:

a + removeGrid(x=T,y=T)

rotateTextX

Muchas veces es útil rotar las etiquetas del eje x para que estén verticales si hay demasiadas etiquetas y se superponen. Esta función logra eso y asegura que las etiquetas estén centradas horizontalmente en relación con la línea de marca.

a

rotando las etiquetas del eje X:

a + rotateTextX()

plotCount

Esta es una función conveniente para trazar rápidamente un gráfico de barras de datos de conteo (frecuencia). La entrada debe ser una tabla de frecuencias (obtenida con base::table) o un data.frame con 2 columnas donde la primera columna contiene los valores y la segunda columna contiene los conteos.

tabla <- table(morosidad)

plotCount(tabla)

ggdist