#Objetivo.
#Identificar medidas de dispersión y visualizar datos de alumnos inscritos de una institución de educación superior.
#Descripción.
#Cargar datos de los alumnos inscritos en el semestre Septiembre 2020-Enero 2021 y determinar medidas centrales media, mediana; encontrar medidas de dispersión varianza, desviación estándar y coeficiente de variación; visualizar datos con diagrama de cajas de alumnos por carrera y sus promedios para ubicar cuartiles, gráficas de dispersión de cada carrera y los promedios de cada alumno identificando el coeficiente de dispersión en cada conjunto de datos.
#1. Cargar librerías.
library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

#2. Cargar los datos de la dirección citada.
datos <- read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/datos/promedios%20alumnos/datos%20alumnos%20promedios%20SEP%202020.csv?fbclid=IwAR25NkkYE7ReSQnH_JbYJnEyiFzIAACdmSWlUdl3nb_AQhZ8-g0w-DoeY4Q",  encoding = "UTF-8" )

head(datos)
##   No..Control Alumno Semestre Cr..Apr. Carga Promedio  Carrera
## 1    20190001      1       11      198    19    80.21 SISTEMAS
## 2    20190002      2       11      235    10    84.33 SISTEMAS
## 3    20190003      3        9      235    10    95.25 SISTEMAS
## 4    20190004      4        9      226    19    95.00 SISTEMAS
## 5    20190005      5       10      231    14    82.32 SISTEMAS
## 6    20190006      6        9      212    23    95.02 SISTEMAS
#3. Genera gráfica de caja de promedios de alumnos en función de las carreras para identificar cuartiles.

ggplot(filter(datos, Promedio > 0), aes(x = Carrera, y = Promedio, color= Carrera ) ) +
    geom_boxplot() +
  labs(title = "Promedios de Carreras")

#4. Identificar medidas de tendencia central con histograma y líneas de sus media y mediana de cada carrera en función de los promedios.
#ADMINISTRACION
Administracion <- filter (datos, Promedio > 0 & Carrera == "ADMINISTRACION") 
mean(Administracion$Promedio)
## [1] 89.44312
## [1] 89.44312

median(Administracion$Promedio)
## [1] 89.605
## [1] 89.605

ggplot(Administracion, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Administración",subtitle =  paste("Media = ", round(mean(Administracion$Promedio),2), ", Mediana = ", round(median(Administracion$Promedio),2)))

#ARQUITECTURA

Arquitectura <- filter (datos, Promedio > 0 & Carrera == "ARQUITECTURA") 
mean(Arquitectura$Promedio)
## [1] 86.46481
## [1] 86.46481

median(Arquitectura$Promedio)
## [1] 86.58
ggplot(Arquitectura, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Arquitectura",subtitle =  paste("Media = ", round(mean(Arquitectura$Promedio),2), ", Mediana = ", round(median(Arquitectura$Promedio),2))) 

#BIOQUIMICA

Bioquimica <- filter (datos, Promedio > 0 & Carrera == "BIOQUIMICA") 
mean(Bioquimica$Promedio)
## [1] 84.68143
## [1] 84.68143

median(Bioquimica$Promedio)
## [1] 84.06
## [1] 84.06

ggplot(Bioquimica, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Bioquimica",subtitle =  paste("Media = ", round(mean(Bioquimica$Promedio),2), ", Mediana = ", round(median(Bioquimica$Promedio),2))) 

#CIVIL

Civil <- filter (datos, Promedio > 0 & Carrera == "CIVIL") 
mean(Civil$Promedio)
## [1] 84.281
## [1] 84.281

median(Civil$Promedio)
## [1] 83.915
## [1] 83.915

ggplot(Civil, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Civil",subtitle =  paste("Media = ", round(mean(Civil$Promedio),2), ", Mediana = ", round(median(Civil$Promedio),2))) 

#ELECTRICA

Electrica<- filter (datos, Promedio > 0 & Carrera == "ELECTRICA") 
mean(Electrica$Promedio)
## [1] 83.77305
## [1] 83.77305

median(Electrica$Promedio)
## [1] 83.24
## [1] 83.24

ggplot(Electrica, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Electrica",subtitle =  paste("Media = ", round(mean(Electrica$Promedio),2), ", Mediana = ", round(median(Electrica$Promedio),2))) 

#ELECTRONICA

Electronica <- filter (datos, Promedio > 0 & Carrera == "ELECTRONICA") 
mean(Electronica$Promedio)
## [1] 86.6572
## [1] 86.6572

median(Electronica$Promedio)
## [1] 86.67
## [1] 86.67

ggplot(Electronica, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Electronica",subtitle =  paste("Media = ", round(mean(Electronica$Promedio),2), ", Mediana = ", round(median(Electronica$Promedio),2))) 

#GESTION EMPRESARIAL

Gestion.Empresarial <- filter (datos, Promedio > 0 & Carrera == "GESTION EMPRESARIAL") 
mean(Gestion.Empresarial$Promedio)
## [1] 87.66966
## [1] 87.66966

median(Gestion.Empresarial$Promedio)
## [1] 87.59
## [1] 87.59

ggplot(Gestion.Empresarial, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Gestion Empresarial",subtitle =  paste("Media = ", round(mean(Gestion.Empresarial$Promedio),2), ", Mediana = ", round(median(Gestion.Empresarial$Promedio),2))) 

#INDUSTRIAL

Industrial <- filter (datos, Promedio > 0 & Carrera == "INDUSTRIAL") 
mean(Industrial$Promedio)
## [1] 85.01737
## [1] 85.01737

median(Industrial$Promedio)
## [1] 84.64
## [1] 84.64

ggplot(Industrial, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Industrial",subtitle =  paste("Media = ", round(mean(Industrial$Promedio),2), ", Mediana = ", round(median(Industrial$Promedio),2))) 

#INFORMATICA

Informatica <- filter (datos, Promedio > 0 & Carrera == "INFORMATICA") 
mean(Informatica$Promedio)
## [1] 86.26577
## [1] 86.26577

median(Informatica$Promedio)
## [1] 86.64
## [1] 86.64

ggplot(Informatica, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Informatica",subtitle =  paste("Media = ", round(mean(Informatica$Promedio),2), ", Mediana = ", round(median(Informatica$Promedio),2))) 

#MECANICA

Mecanica <- filter (datos, Promedio > 0 & Carrera == "MECANICA") 
mean(Mecanica$Promedio)
## [1] 82.58467
## [1] 82.58467

median(Mecanica$Promedio)
## [1] 82.02
## [1] 82.02

ggplot(Mecanica, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Mecanica",subtitle =  paste("Media = ", round(mean(Mecanica$Promedio),2), ", Mediana = ", round(median(Mecanica$Promedio),2))) 

#MECATRONICA

Mecatronica <- filter (datos, Promedio > 0 & Carrera == "MECATRONICA") 
mean(Mecatronica$Promedio)
## [1] 84.45948
## [1] 84.45948

median(Mecatronica$Promedio)
## [1] 84.085
## [1] 84.085

ggplot(Mecatronica, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Mecatronica",subtitle =  paste("Media = ", round(mean(Mecatronica$Promedio),2), ", Mediana = ", round(median(Mecatronica$Promedio),2))) 

#QUIMICA

Quimica <- filter (datos, Promedio > 0 & Carrera == "QUIMICA") 
mean(Quimica$Promedio)
## [1] 86.05215
## [1] 86.05215

median(Quimica$Promedio)
## [1] 85.67
## [1] 85.67

ggplot(Quimica, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Quimica",subtitle =  paste("Media = ", round(mean(Quimica$Promedio),2), ", Mediana = ", round(median(Quimica$Promedio),2))) 

#SISTEMAS

Sistemas <- filter (datos, Promedio > 0 & Carrera == "SISTEMAS") 
mean(Sistemas$Promedio)
## [1] 85.90464
## [1] 85.90464

median(Sistemas$Promedio)
## [1] 85.34
## [1] 85.34

ggplot(Sistemas, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Sistemas",subtitle =  paste("Media = ", round(mean(Sistemas$Promedio),2), ", Mediana = ", round(median(Sistemas$Promedio),2))) 

#TIC

Tic <- filter (datos, Promedio > 0 & Carrera == "TIC") 
mean(Tic$Promedio)
## [1] 84.31719
## [1] 84.31719

median(Tic$Promedio)
## [1] 83.24
## [1] 83.24

ggplot(Tic, aes(Promedio)) +
  geom_histogram(bins = 30) +
  geom_vline(aes(xintercept = median(Promedio),
                  color = "mediana"),
              linetype = "solid",
              size = 2) +
    geom_vline(aes(xintercept = mean(Promedio),
                  color = "media"),
              linetype = "solid",
              size = 2) +
  labs(title = "Histograma de Promedio de Tic",subtitle =  paste("Media = ", round(mean(Tic$Promedio),2), ", Mediana = ", round(median(Tic$Promedio),2))) 

#5. Identificar varianza y desviación estándar en una gráfica de dispersión de los promedios de cada carrera.
#ADMINISTRACION

n <- nrow(Administracion)
ggplot(Administracion, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Administracion", subtitle =  paste("Varianza = ", round(var(Administracion$Promedio),2), ", DesvStd = ", round(sd(Administracion$Promedio),2)))

#ARQUITECTURA

n <- nrow(Arquitectura)
ggplot(Arquitectura, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Arquitectura", subtitle =  paste("Varianza = ", round(var(Arquitectura$Promedio),2), ", DesvStd = ", round(sd(Arquitectura$Promedio),2)))

#BIOQUIMICA

n <- nrow(Bioquimica)
ggplot(Bioquimica, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Bioquimica", subtitle =  paste("Varianza = ", round(var(Bioquimica$Promedio),2), ", DesvStd = ", round(sd(Bioquimica$Promedio),2)))

#CIVIL

n <- nrow(Civil)
ggplot(Civil, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Civil", subtitle =  paste("Varianza = ", round(var(Civil$Promedio),2), ", DesvStd = ", round(sd(Civil$Promedio),2)))

#ELECTRICA

n <- nrow(Electrica)
ggplot(Electrica, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Electrica", subtitle =  paste("Varianza = ", round(var(Electrica$Promedio),2), ", DesvStd = ", round(sd(Electrica$Promedio),2)))

#ELECTRONICA

n <- nrow(Electronica)
ggplot(Electronica, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Electronica", subtitle =  paste("Varianza = ", round(var(Electronica$Promedio),2), ", DesvStd = ", round(sd(Electronica$Promedio),2)))

#GESTION EMPRESARIAL

n <- nrow(Gestion.Empresarial)
ggplot(Gestion.Empresarial, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Gestion.Empresarial", subtitle =  paste("Varianza = ", round(var(Gestion.Empresarial$Promedio),2), ", DesvStd = ", round(sd(Gestion.Empresarial$Promedio),2)))

#INDUSTRIAL

n <- nrow(Industrial)
ggplot(Industrial, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Industrial", subtitle =  paste("Varianza = ", round(var(Industrial$Promedio),2), ", DesvStd = ", round(sd(Industrial$Promedio),2)))

#INFORMATICA

n <- nrow(Informatica)
ggplot(Informatica, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Informatica", subtitle =  paste("Varianza = ", round(var(Informatica$Promedio),2), ", DesvStd = ", round(sd(Informatica$Promedio),2)))

#MECANICA

n <- nrow(Mecanica)
ggplot(Mecanica, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Mecanica", subtitle =  paste("Varianza = ", round(var(Mecanica$Promedio),2), ", DesvStd = ", round(sd(Mecanica$Promedio),2)))

#MECATRONICA

n <- nrow(Mecatronica)
ggplot(Mecatronica, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Mecatronica", subtitle =  paste("Varianza = ", round(var(Mecatronica$Promedio),2), ", DesvStd = ", round(sd(Mecatronica$Promedio),2)))

#QUIMICA

n <- nrow(Quimica)
ggplot(Quimica, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Quimica", subtitle =  paste("Varianza = ", round(var(Quimica$Promedio),2), ", DesvStd = ", round(sd(Quimica$Promedio),2)))

#SISTEMAS

n <- nrow(Sistemas)
ggplot(Sistemas, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Sistemas", subtitle =  paste("Varianza = ", round(var(Sistemas$Promedio),2), ", DesvStd = ", round(sd(Sistemas$Promedio),2)))

#TIC

n <- nrow(Tic)
ggplot(Tic, aes(x = 1:n, y = Promedio)) +
   geom_point() +
    labs(title = "Dispersion de Promedio de Tic", subtitle =  paste("Varianza = ", round(var(Tic$Promedio),2), ", DesvStd = ", round(sd(Tic$Promedio),2)))

#6. Determinar una tabla para todos los parámetros estadísticos solicitados.

Tabla.Final <- datos %>%
    group_by (Carrera) %>%
    summarise(n = n(), media = mean(Promedio), mediana = median(Promedio), varianza = var(Promedio), desviacion.std = sd(Promedio))
## `summarise()` ungrouping output (override with `.groups` argument)
Tabla.Final
## # A tibble: 14 x 6
##    Carrera                 n media mediana varianza desviacion.std
##    <chr>               <int> <dbl>   <dbl>    <dbl>          <dbl>
##  1 ADMINISTRACION        497  74.5    88.4    1125.           33.5
##  2 ARQUITECTURA          675  70.1    85.4    1163.           34.1
##  3 BIOQUIMICA            441  68.6    82.8    1126.           33.6
##  4 CIVIL                 648  73.1    83.1     834.           28.9
##  5 ELECTRICA             280  60.7    81.8    1414.           37.6
##  6 ELECTRONICA           161  67.3    85.3    1324.           36.4
##  7 GESTION EMPRESARIAL   585  74.2    86.7    1013.           31.8
##  8 INDUSTRIAL            707  74.2    83.7     819.           28.6
##  9 INFORMATICA           101  60.6    83.6    1581.           39.8
## 10 MECANICA              301  61.7    80.7    1302.           36.1
## 11 MECATRONICA           432  70.8    83.4     981.           31.3
## 12 QUIMICA               568  72.6    84.6     996.           31.6
## 13 SISTEMAS              452  70.9    84.1    1081.           32.9
## 14 TIC                    81  66.6    81.7    1209.           34.8
#8. Interpretacion.
#Con la base de datos creada podemos delimitar, por medio de la función filter(), determinados aspectos dentro de las tablas por las cuales esta compuesta la base de datos, en conjunción con la función gglpot(), podremos determinar de manera grafica los resultado de los aspectos seleccionados, en este caso se nos solicitan histogramas, donde se puedan apreciar la media y mediana del promedio de cada carrera, para ello nos apoyamos de las funciones mean(), y median() que nos permiten determinar estos resultados de un conjunto de datos, para luego con ggplot() crear nuevamente una grafica que cumpla con los requisitos que se nos dieron.