#Objetivo.
#Realizar cálculos para determinar medidas de localización y tendencia central como CUARTILES Y PERCENTILES 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.


#1. Cargar librerías.

library(readr)

library (ggplot2)

library(resumeRdesc)

#2. Cargar o construir los datos.

set.seed(1111)


  #  edades en donde la media sea 45 años y desviación estandar sea igual a 10 años.
 #   pesos en donde la media sea 75 kgs y desviación estandar sea igual 15 kgs.
#    estaturas en donde la media sea 1.70 y desviación estandar sea igual a 0.10.

media.edad <- 45; ds.edad <- 10
media.peso <- 75; ds.peso <- 15
media.estatura <- 1.70; ds.estatura <- 0.10


#    Simular los datos, utilizar rnorm()

edad <- round(rnorm(n = 100, mean = media.edad, sd = ds.edad),0)
peso <- round(rnorm(n = 100, mean = media.peso, sd = ds.peso),2)
estatura <- round(rnorm(n = 100, mean = media.estatura, sd = ds.estatura),2)


#    Construir un conjunto de datos llamado personas

personas <- data.frame(edad, peso, estatura)
head(personas)
##   edad  peso estatura
## 1   44 85.16     1.69
## 2   58 62.46     1.70
## 3   51 83.98     1.72
## 4   57 70.66     1.60
## 5   46 75.95     1.56
## 6   16 91.47     1.74
#3. Cuartiles al 25%, 50% y 75%.

    #Cuartiles es un vector de 3 posiciones [1], [2] y [3].

#Edad.

cuartiles.edad <- quantile(personas$edad, probs = c(0.25, 0.50, 0.75), type = 6)

#25%.

cuartiles.edad[1]
## 25% 
##  40
## 25% 
##  40

#50%.

cuartiles.edad[2]
## 50% 
##  47
## 50% 
##  47

#75%.

cuartiles.edad[3]
## 75% 
##  55
## 75% 
##  55

#Peso.

cuartiles.peso <- quantile(personas$peso, probs = c(0.25, 0.50, 0.75), type = 6)


#25%.

cuartiles.peso[1]
##  25% 
## 66.5
##  25% 
## 66.5

#50%.

cuartiles.peso[2]
##   50% 
## 76.86
##   50% 
## 76.86

#75%.

cuartiles.edad[3]
## 75% 
##  55
## 75% 
##  55

#Estatura.

cuartiles.estatura <- quantile(personas$estatura, probs = c(0.25, 0.50, 0.75), type = 6)


#25%.

cuartiles.estatura[1]
##  25% 
## 1.64
##  25% 
## 1.64

#50%.

cuartiles.estatura[2]
##   50% 
## 1.695
##   50% 
## 1.695

#75%.

cuartiles.estatura[3]
##    75% 
## 1.7575
##    75% 
## 1.7575

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

   # Percentiles es un vector de 5 posiciones [1],[2],[3],[4] y [5].

#Edad.

percentil.edad <- quantile(personas$edad, probs = c(0.10, 0.30, 0.50, 0.70, 0.90), type = 7)

#10%.

percentil.edad[1]
##  10% 
## 33.9
##  10% 
## 33.9

#30%

percentil.edad[2]
##  30% 
## 41.7
##  30% 
## 41.7

#50%.

percentil.edad[3]
## 50% 
##  47
## 50% 
##  47

#70%.

percentil.edad[4]
##  70% 
## 52.3
##  70% 
## 52.3

#90%

percentil.edad[5]
##  90% 
## 62.1
##  90% 
## 62.1

#Peso.

percentil.peso <- quantile(personas$peso, probs = c(0.10, 0.30, 0.50, 0.70, 0.90), type = 7)

#10%.

percentil.peso[1]
##    10% 
## 59.107
##    10% 
## 59.107

#30%

percentil.peso[2]
##    30% 
## 68.018
##    30% 
## 68.018

#50%.

percentil.peso[3]
##   50% 
## 76.86
##   50% 
## 76.86

#70%.

percentil.peso[4]
##    70% 
## 89.375
##    70% 
## 89.375

#90%

percentil.peso[5]
##    90% 
## 97.967
##    90% 
## 97.967


#Estatura.

percentil.estatura <- quantile(personas$estatura, probs = c(0.10, 0.30, 0.50, 0.70, 0.90), type = 7)

#10%.

percentil.estatura[1]
##  10% 
## 1.56
##  10% 
## 1.56

#30%

percentil.estatura[2]
##  30% 
## 1.65
##  30% 
## 1.65

#50%.

percentil.estatura[3]
##   50% 
## 1.695
##   50% 
## 1.695

#70%.

percentil.estatura[4]
##   70% 
## 1.733
##   70% 
## 1.733

#90%

percentil.estatura[5]
##   90% 
## 1.811
##   90% 
## 1.811


#5. Visualizar datos
#Edad.

  #  Dencidad de la edad.

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

#Historigrama (Media, Mediana).

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))) 

#Historigrama (Cuartiles).

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

#Historigrama (Percentiles).

ggplot(data = personas, aes(edad)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = percentil.edad[1],
                  color = "P1"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.edad[2],
                  color = "P2"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.edad[3],
                  color = "P3"),
              linetype = "solid",
              size = 2) +  
      geom_vline(aes(xintercept = percentil.edad[4],
                  color = "P4"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.edad[5],
                  color = "P5"),
              linetype = "solid",
              size = 2) + 
  labs(title = "Histograma de Edad.",subtitle =  paste("Percentil al 10% = ",round(percentil.edad[1],2), "Percentil al 30% = ",round(percentil.edad[2],2),"Percentil al 50% = ",round(percentil.edad[3],2),"Percentil al 70% = ",round(percentil.edad[4],2),"Percentil al 90% = ",round(percentil.edad[5],2)))

#Peso.

#    Dencidad de la peso.

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

#Historigrama (Media, Mediana).

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))) 

#Historigrama (Cuartiles).

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

#Historigrama (Percentiles).

ggplot(data = personas, aes(peso)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = percentil.peso[1],
                  color = "P1"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.peso[2],
                  color = "P2"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.peso[3],
                  color = "P3"),
              linetype = "solid",
              size = 2) +  
      geom_vline(aes(xintercept = percentil.peso[4],
                  color = "P4"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.peso[5],
                  color = "P5"),
              linetype = "solid",
              size = 2) + 
  labs(title = "Histograma de Peso.",subtitle =  paste("Percentil al 10% = ",round(percentil.peso[1],2), "Percentil al 30% = ",round(percentil.peso[2],2),"Percentil al 50% = ",round(percentil.peso[3],2),"Percentil al 70% = ",round(percentil.peso[4],2),"Percentil al 90% = ",round(percentil.peso[5],2)))

#Estatura.

   #Dencidad de la estatura.

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

#Historigrama (Media, Mediana).

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))) 

#Historigrama (Cuartiles).

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

#Historigrama (Percentiles).

ggplot(data = personas, aes(estatura)) +
    geom_histogram(bins = 30) + 
    geom_vline(aes(xintercept = percentil.estatura[1],
                  color = "P1"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.estatura[2],
                  color = "P2"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.estatura[3],
                  color = "P3"),
              linetype = "solid",
              size = 2) +  
      geom_vline(aes(xintercept = percentil.estatura[4],
                  color = "P4"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = percentil.estatura[5],
                  color = "P5"),
              linetype = "solid",
              size = 2) + 
  labs(title = "Histograma de Estatura.",subtitle =  paste("Percentil al 10% = ",round(percentil.estatura[1],2), "Percentil al 30% = ",round(percentil.estatura[2],2),"Percentil al 50% = ",round(percentil.estatura[3],2),"Percentil al 70% = ",round(percentil.estatura[4],2),"Percentil al 90% = ",round(percentil.estatura[5],2)))

#Interpretacion:Con la base de datos ya creada podemos usar la función quantile (), para delimitar los porcentajes dentro del objetivo a buscar, Cuartiles o Percentiles, pero para poder visualizar el valor a la vez que se entiende de manera más grafica el cómo funciona es necesario utilizar la librería ggplot (), esta nos permite realizar gráficas.