Cómo usar la función Jitter en R para diagramas de dispersión

Este tutorial explica cuándo y cómo usar la función jitter en R para diagramas de dispersión.

Cuándo usar Jitter

Los diagramas de dispersión son excelentes para visualizar la relación entre dos variables continuas. Por ejemplo, el siguiente diagrama de dispersión nos ayuda a visualizar la relación entre la altura y el peso de 100 atletas:

#definir vectores de alturas y pesos
 pesos <- runif (100, 160, 240)
alturas <- (pesos / 3) + rnorm (100)

#create data frame of heights and weights
 data <- as.data.frame (cbind (weights, heights))

#ver las primeras seis filas del encabezado del marco de datos
 (datos)

# pesos alturas
# 1170.8859 57.20745
# 2183.2481 62.01162
# 3235.6884 77.93126
# 4231.9864 77.12520
# 5 200.8562 67.93486
# 6 169.6987 57.54977
#create un diagrama de dispersión de alturas frente a un diagrama de pesos
 (datos $ pesos, datos $ alturas, pch = 16, col = 'steelblue')

Ejemplo de jitter del diagrama de dispersión en R

Sin embargo, en algunas ocasiones podemos querer visualizar la relación entre una variable continua y otra variable que es casi continua.

Por ejemplo, supongamos que tenemos el siguiente conjunto de datos que muestra la cantidad de juegos que un jugador de baloncesto ha comenzado en los primeros 10 juegos de una temporada, así como su promedio de puntos por juego:

#create marco de datos
games_started <- muestra (1:10, 300, TRUE)
puntos_por_juego <- 3 * juegos_iniciados + rnorm (300)
datos <- as.data.frame (cbind (games_started, points_per_game))

#ver las primeras seis filas del encabezado del marco de datos
 (datos)

# games_started points_per_game
# 1 9 25.831554
# 2 9 26.673983
# 3 10 29.850948
# 4 4 12.024353
# 5 4 11.534192
# 6 1 4.383127

Los puntos por juego son una variable continua, pero los juegos iniciados son una variable discreta. Si intentamos crear un diagrama de dispersión de estas dos variables, así es como se vería:

# crear un diagrama de dispersión de los juegos iniciados frente a la media de puntos por trama de juego
 (datos $ games_started, datos $ points_per_game, pch = 16, col = 'steelblue')

Diagrama de dispersión con variable continua y discreta en R

A partir de esta gráfica de dispersión, podemos decir que los juegos que comenzaron y el promedio de puntos por juego tiene una relación positiva, pero es un poco difícil ver los puntos individuales en la trama porque muchos de ellos se superponen entre sí.

Al usar la función jitter , podemos agregar un poco de «ruido» a las variables del eje x que comenzaron los juegos para que podamos ver los puntos individuales en la gráfica con mayor claridad:

#add jitter a la trama de juegos iniciados
 ( jitter (data $ games_started), data $ points_per_game, pch = 16, col = 'steelblue')

Ejemplo de diagrama de dispersión de fluctuación en R

Opcionalmente, podemos agregar un argumento numérico a la fluctuación para agregar aún más ruido a los datos:

#add jitter a la trama de juegos iniciados
 ( jitter (data $ games_started, 2 ), data $ points_per_game, pch = 16, col = 'steelblue')

Ejemplo de diagrama de dispersión de fluctuación en R

Sin embargo, debemos tener cuidado de no agregar demasiada fluctuación, ya que esto puede distorsionar demasiado los datos originales:

plot ( jitter (data $ games_started, 20 ), data $ points_per_game, pch = 16, col = 'steelblue')

Ejemplo de demasiada fluctuación en un diagrama de dispersión en R

La vibración proporciona una mejor vista de los datos

La fluctuación es particularmente útil cuando uno de los niveles de la variable discreta tiene muchos más valores que los otros niveles.

Por ejemplo, en el siguiente conjunto de datos hay trescientos jugadores de baloncesto que comenzaron 2 de los primeros 5 juegos de la temporada, pero solo cien jugadores que comenzaron 1, 3, 4 o 5 juegos:

games_started <- muestra (1: 5, 100, TRUE)
puntos_por_juego <- 3 * juegos_iniciados + rnorm (100)
datos <- as.data.frame (cbind (games_started, points_per_game))

games_twos <- rep (2, 200)
puntos_dos <- 3 * juegos_dos + rnorm (200)
data_twos <- as.data.frame (cbind (games_twos, points_twos))
nombres (dos_datos) <- c ('juegos_iniciados', 'puntos_por_juego')

all_data <- rbind (datos, datos_dos)

Cuando visualizamos la cantidad de juegos jugados frente a la media de puntos por juego, podemos decir que hay más jugadores que han jugado 2 juegos, pero es difícil decir exactamente cuántos más han jugado 2 juegos:

plot (all_data $ games_started, all_data $ points_per_game, pch = 16, col = 'steelblue')

Ejemplo de Jitterplot en R

Sin embargo, una vez que agregamos jitter a la variable partidas iniciadas , podemos ver cuántos jugadores más hay que han iniciado 2 partidas:

plot ( jitter (all_data $ games_started), all_data $ points_per_game,
     pch = 16, col = 'azul acero')

Diagrama de dispersión de fluctuación en R con valores grandes

Aumentar un poco la cantidad de jitter revela esta diferencia aún más:

plot ( jitter (all_data $ games_started, 1.5 ), all_data $ puntos_por_juego,
     pch = 16, col = 'azul acero')

Diagrama de dispersión de fluctuación con 1,5
Jittering solo para visualizaciones

Como se mencionó anteriormente, la fluctuación agrega algo de ruido aleatorio a los datos, lo que puede ser beneficioso cuando queremos visualizar datos en un diagrama de dispersión. Al usar la función jitter, podemos obtener una mejor imagen de la verdadera relación subyacente entre dos variables en un conjunto de datos.

Sin embargo, cuando se utiliza un análisis estadístico como la regresión, no tiene sentido agregar ruido aleatorio a las variables en un conjunto de datos, ya que esto afectaría los resultados de un análisis.

Por lo tanto, el jitter solo debe usarse para la visualización de datos, no para el análisis de datos.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Una prueba F produce una estadística F. Para encontrar el valor p asociado con una estadística F en Excel, puede…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!