lectura:
library(ggplot2)
library(foreign)
datos <- read.spss("Riesgo_morosidad.sav",
use.value.labels = T,
to.data.frame = TRUE)
attach(datos)
ggExtra es una colección de funciones y capas para mejorar ggplot2.
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")
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)
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()
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)