Integrantes:

Introducción

En un entorno empresarial cada vez más impulsado por los datos, la capacidad de analizar y visualizar información de manera efectiva es esencial para la toma de decisiones informadas. Dos herramientas clave en el análisis de datos, especialmente en el contexto empresarial, son la “Gráfica de Tallos y Hojas” y el “Diagrama de Cajas”.

En un mundo donde la toma de decisiones se sustenta cada vez más en la evidencia derivada de datos concretos, estas herramientas se presentan como aliadas indispensables. La “Gráfica de Tallos y Hojas” ofrece una visión detallada de la distribución de datos, permitiendo una comprensión profunda de la variabilidad y la frecuencia de valores. Por otro lado, el “Diagrama de Cajas” proporciona una instantánea visual de medidas estadísticas clave, como la mediana y los cuartiles, facilitando la identificación de patrones y la evaluación de la dispersión de los datos. A través de la implementación práctica en R Studio, exploraremos cómo estas herramientas pueden ser aplicadas eficazmente en el ámbito empresarial. Desde la exploración de conjuntos de datos hasta la identificación de oportunidades y desafíos, estas técnicas descriptivas se erigen como instrumentos esenciales para quienes buscan extraer valor significativo de sus datos empresariales.

Diagrama de Tallos y Hojas en R

El diagrama de tallos y hojas es una herramienta gráfica que se utiliza para visualizar la distribución de datos numéricos. Es especialmente útil para identificar patrones, valores atípicos y tendencias en un conjunto de datos. En R, la función stem es una herramienta poderosa para crear diagramas de tallos y hojas.

La función stem en R

La función stem en R es una forma efectiva de crear diagramas de tallos y hojas. Aquí están los detalles de los argumentos clave:

  • x: El vector de datos numéricos que deseas representar en el diagrama.

  • scale: Controla la escala de los tallos. El valor predeterminado es 1, lo que significa que un tallo representa una unidad. Puedes ajustar este valor para agrupar los datos de manera diferente.

  • width: Controla el ancho de la gráfica en el diagrama de tallos y hojas

  • atom: Permite definir una función personalizada que determine cómo se deben representar las hojas en el diagrama de tallos y hojas.

Ejemplo 1

Supongamos que tenemos un conjunto de datos que representa las calificaciones de un grupo de estudiantes en un examen. Queremos crear un diagrama de tallos y hojas para examinar la distribución de calificaciones.

# Datos de ejemplo: calificaciones de un grupo de estudiantes
calificaciones <- c(12, 7, 11, 18, 12, 5, 9, 11, 16, 14, 2, 18, 20)

# Crear un diagrama de tallos y hojas
stem(calificaciones, scale = 2, width = 15, atom = 10)
## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   0 | 2
##   0 | 579
##   1 | 112
##   1 | 688
##   2 | 0

Ejemplo 2

longitudes <- c(12.24, 12.45, 12.56, 13.21, 13.32, 13.45, 14.12, 14.25, 15.09, 15.21, 15.33, 15.45, 16.02, 16.13, 16.25, 16.37, 16.45, 17.01, 17.15, 17.29, 17.34, 17.45)

stem(longitudes, scale=1)
## 
##   The decimal point is at the |
## 
##   12 | 256235
##   14 | 131235
##   16 | 0134502335
stem(longitudes, scale=2)
## 
##   The decimal point is at the |
## 
##   12 | 256
##   13 | 235
##   14 | 13
##   15 | 1235
##   16 | 01345
##   17 | 02335
stem(longitudes, scale=4)
## 
##   The decimal point is at the |
## 
##   12 | 2
##   12 | 56
##   13 | 23
##   13 | 5
##   14 | 13
##   14 | 
##   15 | 123
##   15 | 5
##   16 | 0134
##   16 | 5
##   17 | 0233
##   17 | 5
stem(longitudes, scale=10)
## 
##   The decimal point is 1 digit(s) to the left of the |
## 
##   122 | 4
##   124 | 56
##   126 | 
##   128 | 
##   130 | 
##   132 | 12
##   134 | 5
##   136 | 
##   138 | 
##   140 | 2
##   142 | 5
##   144 | 
##   146 | 
##   148 | 
##   150 | 9
##   152 | 13
##   154 | 5
##   156 | 
##   158 | 
##   160 | 23
##   162 | 57
##   164 | 5
##   166 | 
##   168 | 
##   170 | 15
##   172 | 94
##   174 | 5
stem(longitudes, scale=2, width =5)#Mientras más bajo más compacto
## 
##   The decimal point is at the |
## 
##   12 | 
##   13 | 
##   14 | 
##   15 | 
##   16 | 
##   17 |
stem(longitudes, scale=2, width =15)
## 
##   The decimal point is at the |
## 
##   12 | 256
##   13 | 235
##   14 | 13
##   15 | 123
##   16 | 013
##   17 | 023
stem(longitudes, scale=20, width =15)
## 
##   The decimal point is 1 digit(s) to the left of the |
## 
##   122 | 4
##   123 | 
##   124 | 5
##   125 | 6
##   126 | 
##   127 | 
##   128 | 
##   129 | 
##   130 | 
##   131 | 
##   132 | 1
##   133 | 2
##   134 | 5
##   135 | 
##   136 | 
##   137 | 
##   138 | 
##   139 | 
##   140 | 
##   141 | 2
##   142 | 5
##   143 | 
##   144 | 
##   145 | 
##   146 | 
##   147 | 
##   148 | 
##   149 | 
##   150 | 9
##   151 | 
##   152 | 1
##   153 | 3
##   154 | 5
##   155 | 
##   156 | 
##   157 | 
##   158 | 
##   159 | 
##   160 | 2
##   161 | 3
##   162 | 5
##   163 | 7
##   164 | 5
##   165 | 
##   166 | 
##   167 | 
##   168 | 
##   169 | 
##   170 | 1
##   171 | 5
##   172 | 9
##   173 | 4
##   174 | 5
stem(longitudes, scale =2, width = 15, atom = 10)
## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   1 | 223
##   1 | 555
stem(longitudes, scale =2, width = 15, atom = 1)
## 
##   The decimal point is at the |
## 
##   12 | 256
##   13 | 235
##   14 | 13
##   15 | 123
##   16 | 013
##   17 | 023

Ejemplo con Dataset

Para poder usar un Dataset tendremos que instalar paquetes como “readr” y “Rcpp”. Estos mismos te los dice rstudio cuando vas a importar la data

a <- read.csv("C:/Users/wilde/OneDrive/Escritorio/most_valuable_teams .csv")
datos_numericos <- as.numeric(gsub("[^0-9.]", "", a$Market_value_of_players))
datos_numericos
##   [1] 45.75 28.51 33.47 32.69 32.57 32.80 29.39 34.33 29.04 23.34 25.62 20.48
##  [13] 16.64 19.65 21.10 20.71 18.06 16.68 16.68 16.52 15.98 13.68 17.01 16.30
##  [25] 14.50 14.72 13.06 12.53 12.02 13.73  9.90 10.71 12.45  8.99  9.84 10.46
##  [37] 10.19  8.76 10.53  9.33  9.57  9.54  9.66  8.94  9.21  7.23  7.98  8.39
##  [49]  8.03  6.49  8.62  6.54  7.24  6.61  6.14  6.34  7.90  5.14  5.37  6.38
##  [61]  5.85  5.29  5.44  4.85  4.77  5.09  6.05  6.85  4.62  5.09  4.89  5.12
##  [73]  4.43  3.97  5.29  5.02  4.81  4.62  4.60  4.26  3.59  3.57  4.72  4.52
##  [85]  4.02  3.77  4.17  3.62  3.58  3.30  4.06  3.62  4.02  4.01  2.92  3.18
##  [97]  3.47  3.35  3.32  3.46

Estos son los clubes pertenecientes a la base de datos

a$Club
##   [1] "Manchester City"               "Paris Saint-Germain"          
##   [3] "Manchester United"             "Chelsea FC"                   
##   [5] "Liverpool FC"                  "Bayern Munich"                
##   [7] "Real Madrid"                   "Atlético de Madrid"           
##   [9] "Tottenham Hotspur"             "FC Barcelona"                 
##  [11] "Juventus FC"                   "Inter Milan"                  
##  [13] "Borussia Dortmund"             "Leicester City"               
##  [15] "Arsenal FC"                    "SSC Napoli"                   
##  [17] "RB Leipzig"                    "AC Milan"                     
##  [19] "Everton FC"                    "Sevilla FC"                   
##  [21] "Atalanta BC"                   "AS Roma"                      
##  [23] "Aston Villa"                   "Wolverhampton Wanderers"      
##  [25] "Real Sociedad"                 "West Ham United"              
##  [27] "Bayer 04 Leverkusen"           "AS Monaco"                    
##  [29] "Olympique Lyon"                "Ajax Amsterdam"               
##  [31] "SS Lazio"                      "Borussia Mönchengladbach"     
##  [33] "Villarreal CF"                 "VfL Wolfsburg"                
##  [35] "SL Benfica"                    "LOSC Lille"                   
##  [37] "FC Porto"                      "Olympique Marseille"          
##  [39] "Leeds United"                  "Valencia CF"                  
##  [41] "ACF Fiorentina"                "Brighton & Hove Albion"       
##  [43] "Newcastle United"              "Southampton FC"               
##  [45] "Crystal Palace"                "Eintracht Frankfurt"          
##  [47] "Real Betis Balompié"           "OGC Nice"                     
##  [49] "US Sassuolo"                   "TSG 1899 Hoffenheim"          
##  [51] "Sporting CP"                   "Norwich City"                 
##  [53] "Athletic Bilbao"               "Stade Rennais FC"             
##  [55] "Torino FC"                     "Shakhtar Donetsk"             
##  [57] "Zenit St. Petersburg"          "VfB Stuttgart"                
##  [59] "Brentford FC"                  "Getafe CF"                    
##  [61] "PSV Eindhoven"                 "Cagliari Calcio"              
##  [63] "Red Bull Salzburg"             "Club Brugge KV"               
##  [65] "Clube de Regatas do Flamengo"  "Fulham FC"                    
##  [67] "Burnley FC"                    "Celta de Vigo"                
##  [69] "Sociedade Esportiva Palmeiras" "Bologna FC 1909"              
##  [71] "Hertha BSC"                    "Watford FC"                   
##  [73] "Dynamo Kyiv"                   "Besiktas JK"                  
##  [75] "KRC Genk"                      "Spartak Moscow"               
##  [77] "SC Freiburg"                   "UC Sampdoria"                 
##  [79] "Sheffield United"              "SC Braga"                     
##  [81] "Olympiacos Piraeus"            "Fenerbahce SK"                
##  [83] "FK Krasnodar"                  "AFC Bournemouth"              
##  [85] "Levante UD"                    "GNK Dinamo Zagreb"            
##  [87] "Hellas Verona"                 "Rangers FC"                   
##  [89] "Club Atlético River Plate"     "Galatasaray A.S."             
##  [91] "Udinese Calcio"                "Feyenoord Rotterdam"          
##  [93] "1.FSV Mainz 05"                "RCD Espanyol Barcelona"       
##  [95] "Genoa CFC"                     "Clube Atlético Mineiro"       
##  [97] "FC Augsburg"                   "Lokomotiv Moscow"             
##  [99] "Trabzonspor"                   "CA Osasuna"

Trabajaremos con el valor promedio de los jugadores de cada equipo que se puede llegar a tener y a su vez, como son datos numerícos, eliminaremos todo dato no deseado para poder trabajar correctamente

b <- a[, c("Club", "Market_value_of_players")]
b
##                              Club Market_value_of_players
## 1                 Manchester City                 €45.75m
## 2             Paris Saint-Germain                 €28.51m
## 3               Manchester United                 €33.47m
## 4                      Chelsea FC                 €32.69m
## 5                    Liverpool FC                 €32.57m
## 6                   Bayern Munich                 €32.80m
## 7                     Real Madrid                 €29.39m
## 8              Atlético de Madrid                 €34.33m
## 9               Tottenham Hotspur                 €29.04m
## 10                   FC Barcelona                 €23.34m
## 11                    Juventus FC                 €25.62m
## 12                    Inter Milan                 €20.48m
## 13              Borussia Dortmund                 €16.64m
## 14                 Leicester City                 €19.65m
## 15                     Arsenal FC                 €21.10m
## 16                     SSC Napoli                 €20.71m
## 17                     RB Leipzig                 €18.06m
## 18                       AC Milan                 €16.68m
## 19                     Everton FC                 €16.68m
## 20                     Sevilla FC                 €16.52m
## 21                    Atalanta BC                 €15.98m
## 22                        AS Roma                 €13.68m
## 23                    Aston Villa                 €17.01m
## 24        Wolverhampton Wanderers                 €16.30m
## 25                  Real Sociedad                 €14.50m
## 26                West Ham United                 €14.72m
## 27            Bayer 04 Leverkusen                 €13.06m
## 28                      AS Monaco                 €12.53m
## 29                 Olympique Lyon                 €12.02m
## 30                 Ajax Amsterdam                 €13.73m
## 31                       SS Lazio                  €9.90m
## 32       Borussia Mönchengladbach                 €10.71m
## 33                  Villarreal CF                 €12.45m
## 34                  VfL Wolfsburg                  €8.99m
## 35                     SL Benfica                  €9.84m
## 36                     LOSC Lille                 €10.46m
## 37                       FC Porto                 €10.19m
## 38            Olympique Marseille                  €8.76m
## 39                   Leeds United                 €10.53m
## 40                    Valencia CF                  €9.33m
## 41                 ACF Fiorentina                  €9.57m
## 42         Brighton & Hove Albion                  €9.54m
## 43               Newcastle United                  €9.66m
## 44                 Southampton FC                  €8.94m
## 45                 Crystal Palace                  €9.21m
## 46            Eintracht Frankfurt                  €7.23m
## 47            Real Betis Balompié                  €7.98m
## 48                       OGC Nice                  €8.39m
## 49                    US Sassuolo                  €8.03m
## 50            TSG 1899 Hoffenheim                  €6.49m
## 51                    Sporting CP                  €8.62m
## 52                   Norwich City                  €6.54m
## 53                Athletic Bilbao                  €7.24m
## 54               Stade Rennais FC                  €6.61m
## 55                      Torino FC                  €6.14m
## 56               Shakhtar Donetsk                  €6.34m
## 57           Zenit St. Petersburg                  €7.90m
## 58                  VfB Stuttgart                  €5.14m
## 59                   Brentford FC                  €5.37m
## 60                      Getafe CF                  €6.38m
## 61                  PSV Eindhoven                  €5.85m
## 62                Cagliari Calcio                  €5.29m
## 63              Red Bull Salzburg                  €5.44m
## 64                 Club Brugge KV                  €4.85m
## 65   Clube de Regatas do Flamengo                  €4.77m
## 66                      Fulham FC                  €5.09m
## 67                     Burnley FC                  €6.05m
## 68                  Celta de Vigo                  €6.85m
## 69  Sociedade Esportiva Palmeiras                  €4.62m
## 70                Bologna FC 1909                  €5.09m
## 71                     Hertha BSC                  €4.89m
## 72                     Watford FC                  €5.12m
## 73                    Dynamo Kyiv                  €4.43m
## 74                    Besiktas JK                  €3.97m
## 75                       KRC Genk                  €5.29m
## 76                 Spartak Moscow                  €5.02m
## 77                    SC Freiburg                  €4.81m
## 78                   UC Sampdoria                  €4.62m
## 79               Sheffield United                  €4.60m
## 80                       SC Braga                  €4.26m
## 81             Olympiacos Piraeus                  €3.59m
## 82                  Fenerbahce SK                  €3.57m
## 83                   FK Krasnodar                  €4.72m
## 84                AFC Bournemouth                  €4.52m
## 85                     Levante UD                  €4.02m
## 86              GNK Dinamo Zagreb                  €3.77m
## 87                  Hellas Verona                  €4.17m
## 88                     Rangers FC                  €3.62m
## 89      Club Atlético River Plate                  €3.58m
## 90               Galatasaray A.S.                  €3.30m
## 91                 Udinese Calcio                  €4.06m
## 92            Feyenoord Rotterdam                  €3.62m
## 93                 1.FSV Mainz 05                  €4.02m
## 94         RCD Espanyol Barcelona                  €4.01m
## 95                      Genoa CFC                  €2.92m
## 96         Clube Atlético Mineiro                  €3.18m
## 97                    FC Augsburg                  €3.47m
## 98               Lokomotiv Moscow                  €3.35m
## 99                    Trabzonspor                  €3.32m
## 100                    CA Osasuna                  €3.46m

Ya con los datos obtenidos y ordenados, procederemos a trabajar con el diagrama de tallos y hojas

stem(datos_numericos, scale = 2, width = 50, atom = 0.1)
## 
##   The decimal point is at the |
## 
##    2 | 9233455666668
##    4 | 000012345666788990111133449
##    6 | 11345569229
##    8 | 00468902356789
##   10 | 2557
##   12 | 055177
##   14 | 57
##   16 | 0356770
##   18 | 17
##   20 | 571
##   22 | 3
##   24 | 6
##   26 | 
##   28 | 504
##   30 | 
##   32 | 6785
##   34 | 3
##   36 | 
##   38 | 
##   40 | 
##   42 | 
##   44 | 8
stem(datos_numericos, scale = 5, width = 50, atom = 0.1)
## 
##   The decimal point is at the |
## 
##    2 | 9
##    3 | 233455666668
##    4 | 00001234566678899
##    5 | 0111133449
##    6 | 11345569
##    7 | 229
##    8 | 004689
##    9 | 02356789
##   10 | 2557
##   11 | 
##   12 | 055
##   13 | 177
##   14 | 57
##   15 | 
##   16 | 035677
##   17 | 0
##   18 | 1
##   19 | 7
##   20 | 57
##   21 | 1
##   22 | 
##   23 | 3
##   24 | 
##   25 | 6
##   26 | 
##   27 | 
##   28 | 5
##   29 | 04
##   30 | 
##   31 | 
##   32 | 678
##   33 | 5
##   34 | 3
##   35 | 
##   36 | 
##   37 | 
##   38 | 
##   39 | 
##   40 | 
##   41 | 
##   42 | 
##   43 | 
##   44 | 
##   45 | 8

Diagrama de cajas

Los diagramas de caja, también conocidos como de caja y bigotes son gráficos que muestra la distribución de una variable usando cuartiles, de modo que de manera visual podemos inferir algunas cosas sobre su dispersión, ubicación y simetría.

Ejemplo - datos

datos_edad <- c(10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60)
# diagrama de caja
boxplot(datos_edad, 
        main="Diagrama de Caja -  (edades)", 
        ylab="Edad", 
        col="lightblue", 
        border="black")

  • Mediana :

La línea en el centro de la caja representa la mediana de las edades, que es aproximadamente \(35\) años en este caso. Esto significa que la mitad de las personas tienen \(35\) años o menos, y la otra mitad tiene más de \(35\) años.

  • Caja :

La caja abarca desde el primer cuartil (\(Q_1\)) hasta el tercer cuartil (\(Q_3\)) de las edades. \(Q_1\) es aproximadamente \(22.5\) años, y \(Q_3\) es aproximadamente \(47.5\) años. Esto significa que el \(50\)% central de las edades se encuentra en este rango. Las edades entre \(22.5\) y \(47.5\) años son las edades intercuartiles.

  • Bigotes :

Los bigotes se extienden desde los bordes de la caja. En este caso, no hay valores atípicos (outliers) representados como puntos o asteriscos fuera de los bigotes. Esto indica que no hay edades extremadamente por encima o por debajo de la norma en tu conjunto de datos. Los bigotes abarcan todo el rango de edades, desde \(10\) años hasta \(60\) años.

  • Extremos (líneas fuera de los bigotes) :

En este diagrama de caja, los extremos representan los valores máximo (\(60\) años) y mínimo (\(10\) años) dentro de \(1,5\) veces el rango intercuartil (\(IQR\)). No hay valores atípicos más allá de estos extremos.

En resumen, el diagrama de caja muestra que las edades en tu conjunto de datos están distribuidas desde alrededor de \(10\) años hasta \(60\) años, con la mayoría de las edades concentradas entre aproximadamente \(22,5\) y \(47,5\) años. No hay valores atípicos en este conjunto de datos, lo que sugiere que las edades se distribuyen de manera relativamente uniforme dentro de ese rango intercuartil.

Ejemplo 2

# Datos de ejemplo: pesos de niños que no hacen deporte en kilogramos
pesos_ninos <- c(25, 28, 31, 33, 36, 38, 39, 41, 42, 45, 48, 50, 52, 55, 57)

# Creamos un diagrama de caja
boxplot(pesos_ninos, 
        main="Diagrama de Caja - Pesos de Niños que no hacen deporte",
        ylab="Peso (kg)",
        col="lightblue",
        border="black")

  • Mediana :

La línea en el centro de la caja representa la mediana del peso de los niños que no hacen deporte. La mediana se encuentra alrededor de 41 kilogramos, lo que significa que la mitad de los niños pesa más de \(41\) kg y la otra mitad pesa menos de \(41\) kg.

  • Caja :

La caja abarca desde el primer cuartil (\(Q_1\)) hasta el tercer cuartil (\(Q_3\)) de los pesos. El primer cuartil (\(Q_1\)) pesa alrededor de \(33\) kg y el tercer cuartil (\(Q_3\)) pesa alrededor de \(50\) kg. Esto indica que el \(50\)% central de los niños pesa entre aproximadamente \(33\) y \(50\) kg.

  • Bigotes :

Los bigotes se extienden desde los bordes de la caja. En este caso, no hay valores atípicos representados como puntos o asteriscos fuera de los bigotes.

  • Extremos (líneas fuera de los bigotes) :

En este diagrama de caja, los extremos representan el valor mínimo (alrededor de \(25\) kg) y el valor máximo (alrededor de \(57\) kg) dentro de \(1,5\) veces el rango intercuartil.

Ejemplo con Dataset

Para este ejemplo, usaremos una data llamada “Bank Marketing Data Set”, que contiene información de personas contactadas en una campaña de marketing directo puesta en marcha por un banco de Portugal.

download.file(
  url = "https://raw.githubusercontent.com/jboscomendoza/r-principiantes-bookdown/master/datos/bank.csv", 
  destfile = "bank.csv"
)
banco <- read.csv(file = "bank.csv", sep = ";")
View(banco)
library(ggplot2)  
## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(data = banco, aes(x = education, y = age, color = education)) +
  geom_boxplot() +
  theme_bw()

Base de datos ChickWeight contiene 578 registros transversales y 4 variables de un experimento sobre el efecto de la dieta en el crecimiento de pollos.

  • Media :

La línea en el centro de la caja representa la mediana de la edad con respecto a cada nivel educativo de las personas que decidieron participar de la encuesta. La mayoría de personas que solo tienen el nivel educativo primario tienen entre \(40\) y \(50\) años, las que tienen una educación secundaria y terciaria, en promedio tienen entre \(30\) y \(40\) años.

  • Caja :

La caja abarca desde el primer cuartil (\(Q_1\)) hasta el tercer cuartil (\(Q_3\)) de la edad. El nivel educativo primaria, el primer cuartil y el tercer cuartil, son \(38\) y \(54\) aproximadamente, de las personas que tienen nivel secundario y terciario, el primer cuartil y el tercer cuartil son \(33\) y \(47\) aproximadamente.

  • Bigotes :

Podemos apreciar pocos datos atípicos en la relación edad que corresponden a una educación primaria y terciaria, pero se aprecia más datos atípicos para los que que tienen solo educación secundaria.

  • Extremos (líneas fuera de los bigotes) :

En los tres casos, los bigotes van desde \(20\) ó \(24\) años, hasta \(78\), \(69\) y \(66\) años para los que tienen una educación primaria, secundaria y terciaria respectivamente.

Gracias al gráfico de cajas podemos ver que las personas con menos nivel de educación (primaria) tienden a tener más edad que los que sí tienen una educación secundaria y terciaria.

Para este segundo ejemplo usaremos la base de datos ChickWeight que contiene registros de 578 experimentos sobre el efecto de la dieta en el crecimiento de pollos, este registro contiene 4 variables, las cuales son:

  • Weight:

un vector numérico que indica el peso corporal del pollito (gm)

  • Time:

vector numérico que indica el número de días desde el nacimiento cuando se realizó la medición.

  • Chick:

un factor ordenado con niveles \(18 <… < 48\) que proporciona un identificador único para el pollito. El orden de los niveles agrupa a los pollitos de la misma dieta y los ordena según su peso final (de más ligero a más pesado) dentro de la dieta.

  • Diet:

un factor con niveles \(1,…, 4\) que indica qué dieta experimental recibió el pollito.

View(ChickWeight)
boxplot(ChickWeight$weight)

  • Media:

Es la línea en el centro de la caja que representa la mediana del peso de los pollos. Que en este caso es \(100\) aproximadamente.

  • Caja:

La caja abarca desde el primer cuartil (\(Q_1\)) hasta el tercer cuartil (\(Q_3\)) del peso de los pollos que en este caso son \(60\) y \(160\) aproximadamente.

  • Bigotes:

Se aprecian pocos datos atípicos, que están muy cerca a los extremos, no significativos.

  • Extremos: (líneas fuera de los bigotes) :

En este caso el los extremos son \(30\) y \(320\) aproximadamente.

summary(ChickWeight)
##      weight           Time           Chick     Diet   
##  Min.   : 35.0   Min.   : 0.00   13     : 12   1:220  
##  1st Qu.: 63.0   1st Qu.: 4.00   9      : 12   2:120  
##  Median :103.0   Median :10.00   20     : 12   3:120  
##  Mean   :121.8   Mean   :10.72   10     : 12   4:118  
##  3rd Qu.:163.8   3rd Qu.:16.00   17     : 12          
##  Max.   :373.0   Max.   :21.00   19     : 12          
##                                  (Other):506

Con ayuda de la función summary podemos ver con exactitud algunos datos como la media para el peso que es \(121.0\) el primer y el tercer cuartil que son \(63\) y \(163.8\) respectivamente y los extremos que son \(35\) y \(373\) exactamente.

Ahora analizaremos el tipo de dieta que recibió el pollo con su peso

ggplot(ChickWeight, aes(x=Diet, y=weight, color=Diet)) +
  geom_boxplot()

En el gráfico de cajas, podemos ver que la dieta 3 y 4 favorecen más al crecimiento del pollo, mientras que la dieta 1 es la que menor resultado presenta.

Conclusión

En conclusión, la utilización de herramientas gráficas como los diagramas de tallos y hojas, así como los diagramas de caja, proveen una visión detallada y visualmente comprensible de la distribución de datos numéricos. La función stem en R se presenta como una herramienta efectiva para la creación de diagramas de tallos y hojas, permitiendo ajustes precisos a través de sus parámetros clave.

En los ejemplos presentados, se pudo observar cómo los diagramas de tallos y hojas ofrecen una representación clara de la distribución de datos, permitiendo identificar patrones, valores atípicos y tendencias. Además, se exploraron diferentes ajustes mediante la manipulación de parámetros como scale y width, evidenciando cómo estos afectan la presentación de la información.

El análisis de conjuntos de datos reales, como el de las calificaciones de estudiantes o los valores de mercado de equipos deportivos, demostró la utilidad de estos diagramas en la comprensión rápida y efectiva de la variabilidad en los datos.

En cuanto a los diagramas de caja, se destacó su capacidad para proporcionar una visión detallada de la dispersión, ubicación y simetría de una variable. La interpretación de elementos como la mediana, los cuartiles y los bigotes facilita la comprensión de la distribución de datos, así como la identificación de posibles valores atípicos.

Finalmente, la conclusión se refuerza con la aplicación de estos gráficos a conjuntos de datos más complejos, como el dataset de marketing bancario y el dataset ChickWeight. Estos ejemplos ilustran cómo estas herramientas pueden utilizarse en diversos contextos para explorar y comunicar patrones y características clave de conjuntos de datos numéricos.

Referencias.