Los diagramas de dispersión (gráfico de puntos, diagrama de XY) usan una colección de puntos colocados usando coordenadas cartesianas para mostrar valores de dos variables. Al mostrar una variable en cada eje, se puede detectar si existe una relación o correlación entre las dos variables.
Se pueden interpretar varios tipos de correlación a través de los patrones mostrados en los diagramas de dispersión. Estos son: positivo (los valores aumentan juntos), negativo (un valor disminuye a medida que el otro aumenta), nulo (sin correlación).
#cargar librerias ggplot
#-----------------------------------------
library(ggplot2)
# leer datos de SchoolsMiamiDade
SchoolsMiamiDade<- read.csv("SchoolsMiamiDade.csv")
SchoolName : Nombre de la Escuela
BoardDistrict : Núemero de Dsitrito donde esta la escuela
SchoolGrade : Grado al que se le aplico la prueba
Reading2012 : puntaje de 1 a 100 en Lectura 2012
Reading2013: puntaje de 1 a 100 en Lectura 2013
ReadingDifference: diferencia entre 2013 y 2012 en lectura
Math2012: puntaje de 1 a 100 en Matemática 2012
Math2013: puntaje de 1 a 100 en Matemática 2013
MathDifference: diferencia entre 2013 y 2012 en matemática
Se pueden construir gráfico de dispersión con ggplot2 utilizando la geometría geom_point() el cual requiere de 2 variables como entrada X /Y por lo menos una númerica.
El gráfico muestra el puntaje de cada escuela por Distrito donde las escuelas de los distritos 3-9 tienen una mejor puntuación. En este ejemplo se utiliza la variable númerica Reading2012 y la variable BoardDistrict.
#grafico de dipsersión
ggplot(SchoolsMiamiDade, aes(Reading2012,BoardDistrict))+
geom_point()
## Warning: Removed 17 rows containing missing values (geom_point).
Podemos crear una línea de referencia para iniciar un análisis del gráfico.
Las líneas en el gráfico se realizan con la capa geom_vline().
A manera de ejercicio, seleccionaremos las escuelas que tienen un puntaje mayor o igual a 75, creamos una línea para separar la escuelas con ese puntaje.
# grafico con dos variables y linea vertical
ggplot(SchoolsMiamiDade, aes(Reading2012,BoardDistrict))+
geom_point() +
geom_vline(xintercept = 75)
## Warning: Removed 17 rows containing missing values (geom_point).
Añadir color a la línea, ancho de línea y tipo de linea al gráfico como estética.
# grafico con dos variables y linea vertical
ggplot(SchoolsMiamiDade, aes(Reading2012,BoardDistrict))+
geom_point() +
geom_vline(xintercept = 75, colour ="red", linetype="dashed", size=1)
## Warning: Removed 17 rows containing missing values (geom_point).
# grafico con dos variables y linea vertical
ggplot(SchoolsMiamiDade, aes(Reading2012,BoardDistrict))+
geom_point() +
geom_vline(xintercept = 75, colour ="red", linetype="dashed", size=1) +
geom_text(aes(label="MEDIA = 75", x=82,y=2), colour="red")
## Warning: Removed 17 rows containing missing values (geom_point).
Para responde esta pregunta utilizaremos la función subset(tabla, variable) para crear un subgrupo de datos con el filtro, escuelas con puntaje mayor o igual a 75.
#escuelas con calificación en lectura mayor e igual a 75
#creamos un subgrupo
escuelaslECTURA <- subset(SchoolsMiamiDade, SchoolsMiamiDade$Reading2012 >= 75)
#numero de escuelas
nrow(escuelaslECTURA)
## [1] 62
#porcentaje de escuelas con calificación en lectura mayor e igual a 75
# numero de escuelas con 75 o mas puntos / total de escuelas estudiadas
porcentaje_75 <- nrow(escuelaslECTURA) / nrow(SchoolsMiamiDade)
porcentaje_75
## [1] 0.1347826
#porcentake de las escuelas por encima de 75 puntos
porcentaje75 <- porcentaje_75 *100
porcentaje75
## [1] 13.47826
Para conocer esta dato utilizamos las tablas de contingencia y el dataFrame creado escuelaslECTURA.
# escuelas con mayor de 75 puntos por distrito
# las seleccionamos del subfrupo escuelaslECTURA
escuelas_75 <- table(escuelaslECTURA$BoardDistrict)
escuelas_75
##
## (1) (2) (3) (4) (5) (6) (7) (8) (9)
## 1 4 8 3 7 13 10 9 7
Para colorear las escuelas de puntaje mayor a 75 debemos utilizar la condición de color Reading2012 >= 75. Si deseamos eliminar la leyenda de color (que no aporta nada), podemos colocar al final la capa guides(color = FALSE) .
# grafico con dos variables y linea vertical
ggplot(SchoolsMiamiDade, aes(Reading2012,BoardDistrict))+
geom_point(aes(color=Reading2012 >= 75), size=3) +
geom_vline(xintercept = 75, colour ="red", linetype="dashed", size=1) +
geom_text(aes(label="MEDIA = 75", x=82,y=2), colour="red") +
labs(title="Escuelas por Distrito en puntajes de Lectura",
subtitle="Escuelas mayor a 75 puntos en Lectura - 2012")+
guides(color = FALSE)
## Warning: Removed 17 rows containing missing values (geom_point).
De las 460 escuelas, el 13.48% está por encima de la media nacional (75 puntos) donde todos los Distritos tienen escuelas por encima del puntaje, pero los distritos (6) y (7) son los que más escuelas tiene por encima de 75 puntos con 13 y 10 respectivamente.
Utilizamos las variables relacionadas con los puntajes de matematica y lectura 2012
ggplot(SchoolsMiamiDade, aes(Reading2012,Math2012))+
geom_point(aes(color=BoardDistrict), size=3) +
labs(title="Escuelas con puntajes en Matemática y Lectura",
subtitle="Datos de USA - 2012")
## Warning: Removed 91 rows containing missing values (geom_point).
Se utiliza la propiedad alpha para la transparencia y ver puntos o burbujas solapadas. Se utiliza size para modificar el tamaño de los puntos.
ggplot(SchoolsMiamiDade, aes(Reading2012,Math2012))+
geom_point(aes(color=BoardDistrict, size=8, alpha=0.1)) +
labs(title="Escuelas con puntajes de lectura en Matemática y Lectura",
subtitle="Datos de USA - 2012") +
ylab("Puntos Matemática") + xlab("Puntos Lectura")
## Warning: Removed 91 rows containing missing values (geom_point).