Objetivo:

Realizar cálculos para determinar medidas de localización y tendencia central como cuartiles y persentiles con un conjunto de datos de personas.

Descripción:

Con un conjunto de datos de personas y con variables de interés como la edad, peso y estatura, determinar medidas de localización y tendencia central, se pide mostrar los datos, identificar las medidas visualizar gráficamente e interpretar las medidas.

Proceso:

Paso 1: Cargar librerias.

library(readr) # Por si acaso cargar datos
library(ggplot2) # Para visualizar
library(resumeRdesc) # Para estadísticos

Paso 2: Construir los datos.

set.seed(2020)


n <- 100
media.edad <- 45; ds.edad <-10
media.peso <- 75; ds.peso <- 15
media.estatura <- 1.70; ds.estatura <-0.10
Construir el conjunto de datos personas head(personas); tail(personas); los primeros y ulltimos 6 registros u observaciones del conjunto.
edad <- round(rnorm(n = n, mean = media.edad, sd = ds.edad),0)
peso <- round(rnorm(n = n, mean = media.peso, sd = ds.peso),2)
estatura <- round(rnorm(n = n, mean = media.estatura, sd = ds.estatura),2)

personas <- data.frame(edad, peso, estatura)

head(personas); tail(personas)
##   edad  peso estatura
## 1   49 49.07     1.63
## 2   48 60.13     1.79
## 3   34 66.22     1.66
## 4   34 80.75     1.74
## 5   17 86.20     1.60
## 6   52 61.07     1.57
##     edad  peso estatura
## 95    43 64.09     1.73
## 96    37 84.40     1.63
## 97    48 58.63     1.65
## 98    52 67.26     1.88
## 99    40 75.25     1.60
## 100   38 84.91     1.64

Paso 3: Cuartiles al 25%, 50% y 75%

Edad.
cuartiles.E <- quantile(personas$edad, probs = c(0.25, 0.50, 0.75), type = 6)
cuartiles.E[1]
## 25% 
##  39
cuartiles.E[2]
## 50% 
##  46
cuartiles.E[3]
##   75% 
## 52.75
Peso.
cuartiles.P <- quantile(personas$peso, probs = c(0.25, 0.50, 0.75), type = 6)
cuartiles.P[1]
##   25% 
## 59.53
cuartiles.P[2]
##   50% 
## 74.14
cuartiles.P[3]
##   75% 
## 85.88
Estatura.
cuartiles.Es <- quantile(personas$estatura, probs = c(0.25, 0.50, 0.75), type = 6)
cuartiles.Es[1]
##   25% 
## 1.605
cuartiles.Es[2]
##  50% 
## 1.69
cuartiles.Es[3]
##    75% 
## 1.7675

Paso 4: Percentiles al 10%, 30%, 50%, 70% y 90%.

Edad.
percentil.E <- quantile(personas$edad, probs = c(0.10, 0.30, 0.50, 0.70, 0.90), type = 7)
percentil.E[1]
##  10% 
## 32.9
percentil.E[2]
##  30% 
## 41.7
percentil.E[3]
## 50% 
##  46
percentil.E[4]
## 70% 
##  51
percentil.E[5]
##  90% 
## 61.1
Peso.
percentil.P <- quantile(personas$peso, probs = c(0.10, 0.30, 0.50, 0.70, 0.90), type = 7)
percentil.P[1]
##    10% 
## 50.902
percentil.P[2]
##    30% 
## 63.302
percentil.P[3]
##   50% 
## 74.14
percentil.P[4]
##    70% 
## 82.613
percentil.P[5]
##    90% 
## 93.698
Estatura.
percentil.Es <- quantile(personas$estatura, probs = c(0.10, 0.30, 0.50, 0.70, 0.90), type = 7)
percentil.Es[1]
##   10% 
## 1.548
percentil.Es[2]
##  30% 
## 1.63
percentil.Es[3]
##  50% 
## 1.69
percentil.Es[4]
##  70% 
## 1.75
percentil.Es[5]
##   90% 
## 1.821

Paso 5: Visualizar datos.

Histograma de Edad con ggplot

ggplot(data = personas, aes(edad, colour = 'Edad')) +
    geom_histogram(position = "stack", bins = 30)

Histograma de Peso con ggplot

ggplot(data = personas, aes(peso, colour = 'Peso')) +
    geom_histogram(position = "stack", bins = 30)

Histograma de Estatura con ggplot

ggplot(data = personas, aes(estatura, colour = 'Estatura')) +
    geom_histogram(position = "stack", bins = 30)

Densidad de Edad con ggplot.

ggplot(data = personas, aes(edad, colour = 'Edad')) +
    geom_density()

Densidad de Peso con ggplot.

ggplot(data = personas, aes(peso, colour = 'Peso')) +
    geom_density()

Densidad de Estatura con ggplot.

ggplot(data = personas, aes(estatura, colour = 'Estatura')) +
    geom_density()

Histograma de Edad con media, mediana juntos.

ggplot(data = personas, aes(edad)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = median(edad),
                  color = "mediana"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = mean(edad),
                  color = "media"),
              linetype = "dashed",
              size = 1) +
  labs(title = "Histograma de Edad",subtitle =  paste("Media = ", round(mean(edad),2), ", Mediana = ", round(median(edad),2))) 

Histograma de Peso con media, mediana juntos.

ggplot(data = personas, aes(peso)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = median(peso),
                  color = "mediana"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = mean(peso),
                  color = "media"),
              linetype = "dashed",
              size = 1) +
  labs(title = "Histograma de Peso",subtitle =  paste("Media = ", round(mean(peso),2), ", Mediana = ", round(median(peso),2))) 

Histograma de Estatura con media, mediana juntos.

ggplot(data = personas, aes(estatura)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = median(estatura),
                  color = "mediana"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = mean(estatura),
                  color = "media"),
              linetype = "dashed",
              size = 1) +
  labs(title = "Histograma de Estatura",subtitle =  paste("Media = ", round(mean(estatura),2), ", Mediana = ", round(median(estatura),2))) 

Histograma y cuartiles de Edad juntos.

ggplot(data = personas, aes(edad)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = cuartiles.E[1],
                  color = "Q1"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = cuartiles.E[2],
                  color = "Q2"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = cuartiles.E[3],
                  color = "Q3"),
              linetype = "dashed",
              size = 1) +  
  labs(title = "Histograma de Edad",subtitle =  paste("Cuartil 1 al 25% = ",round(cuartiles.E[1],2), ", Cuartil 2 al 50% = ",round(cuartiles.E[2],2), ", Cuartil 3 al 75% = ",round(cuartiles.E[3],2)))

Histograma y cuartiles de Peso juntos.

ggplot(data = personas, aes(peso)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = cuartiles.P[1],
                  color = "Q1"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = cuartiles.P[2],
                  color = "Q2"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = cuartiles.P[3],
                  color = "Q3"),
              linetype = "dashed",
              size = 1) +  
  labs(title = "Histograma de Peso",subtitle =  paste("Cuartil 1 al 25% = ",round(cuartiles.P[1],2), ", Cuartil 2 al 50% = ",round(cuartiles.P[2],2), ", Cuartil 3 al 75% = ",round(cuartiles.P[3],2)))

Histograma y cuartiles de Estatura juntos.

ggplot(data = personas, aes(estatura)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = cuartiles.Es[1],
                  color = "Q1"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = cuartiles.Es[2],
                  color = "Q2"),
              linetype = "dashed",
              size = 1) +
    geom_vline(aes(xintercept = cuartiles.Es[3],
                  color = "Q3"),
              linetype = "dashed",
              size = 1) +  
  labs(title = "Histograma de Estatura",subtitle =  paste("Cuartil 1 al 25% = ",round(cuartiles.Es[1],2), ", Cuartil 2 al 50% = ",round(cuartiles.Es[2],2), ", Cuartil 3 al 75% = ",round(cuartiles.Es[3],2)))

Histograma y percentiles de Edad juntos.

ggplot(data = personas, aes(edad)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = percentil.E[1],
                  color = "Perc1"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.E[2],
                  color = "Perc2"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.E[3],
                  color = "Perc3"),
              linetype = "solid",
              size = 2) +  
      geom_vline(aes(xintercept = percentil.E[4],
                  color = "Perc4"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.E[5],
                  color = "Perc5"),
              linetype = "solid",
              size = 2) + 
  labs(title = "Histograma de Edad. Perc = Percentiles",subtitle =  paste("Perc al 10% = ",round(percentil.E[1],2), "Perc al 30% = ",round(percentil.E[2],2),"Perc al 50% = ",round(percentil.E[3],2),"Perc al 70% = ",round(percentil.E[4],2),"Perc al 90% = ",round(percentil.E[5],2)))

Histograma y percentiles de Peso juntos.

ggplot(data = personas, aes(peso)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = percentil.P[1],
                  color = "Perc1"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.P[2],
                  color = "Perc2"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.P[3],
                  color = "Perc3"),
              linetype = "solid",
              size = 2) +  
      geom_vline(aes(xintercept = percentil.P[4],
                  color = "Perc4"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.P[5],
                  color = "Perc5"),
              linetype = "solid",
              size = 2) + 
  labs(title = "Histograma de Peso. Perc = Percentiles",subtitle =  paste("Perc al 10% = ",round(percentil.P[1],2), "Perc al 30% = ",round(percentil.P[2],2),"Perc al 50% = ",round(percentil.P[3],2),"Perc al 70% = ",round(percentil.P[4],2),"Perc al 90% = ",round(percentil.P[5],2)))

Histograma y percentiles de Estatura juntos.

ggplot(data = personas, aes(estatura)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = percentil.Es[1],
                  color = "Perc1"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.Es[2],
                  color = "Perc2"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.Es[3],
                  color = "Perc3"),
              linetype = "solid",
              size = 2) +  
      geom_vline(aes(xintercept = percentil.Es[4],
                  color = "Perc4"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.Es[5],
                  color = "Perc5"),
              linetype = "solid",
              size = 2) + 
  labs(title = "Histograma de Estatura. Perc = Percentiles",subtitle =  paste("Perc al 10% = ",round(percentil.Es[1],2), "Perc al 30% = ",round(percentil.Es[2],2),"Perc al 50% = ",round(percentil.Es[3],2),"Perc al 70% = ",round(percentil.Es[4],2), "Perc al 90% = ",round(percentil.Es[5],2)))

Paso 6: Interpretar y comunicar datos.

En este caso, se encontro que el 25, 50 y 75%, de cuartiles, que mostraron datos de que el 25% en el primer cuartil de personas tienen 39 años, con un peso aproximado de 59.53kg y de estatura pequeña, 1.60cm, el 50% del segundo cuartil, las personas tienen 46 años, con un peso 74.14kg, con una estatura poco mas grande que el primer cuartil, 1.69cm y 75% del tercer cuartil, tienen 52 y 53 años, con un peso de 85.88kg, con una estatura de 1.76cm, que ya es algo alto.

Viendo estos resultados en un histograma, se puede visualizar mejor las edades, estaturas y pesos de las personas, el deja ver que tambien hay personas con 19, 20 40 y 70 años de edad, con un pesos de 30, 50, 100 y 120kg, junto con estaturas de 1.4, 1.8, 1.9cm, que estan incluidos en este caso, pero son pocos los que lo tienen. Tambien se puede ver donde es la media y mediana, donde hay mas frecuencia.

En densidad, se puede ver como se forman las curvas las cuales, las cuales indican, dependiendo de la edad, estatura y peso, esta aumenta o disminuye, sea el caso.