Diagrama 1
El anterior diagrama muestra las dos grandes áreas de la estadística clásica
La estadística descriptiva: Se refiere a todas las herramientas de recolección, procesamiento, visualización, análisis y presentación de un conjunto de datos sin generalizar o ir mas allá que ese conjunto de datos.Por ejemplo, en un departamento de recursos humanos que se analiza la totalidad de la rotación de personal.Los resultados concluídos solamente son válidos para esa empresa en un espacio y tiempo dados y especificados.
La estadística inferencial: Su contraparte, la estadística inferencial, puede generalizar a través de una muestra de los datos ( obtenida con procedimientos rigurosos) a un “universo” o “población” de mayor tamaño a la cuál representa.Siguiendo el mismo ejemplo, una empresa de recursos humanos, puede tomar una muestra de empresas para analizar la situación de la rotación en empresas de zona Franca.Esta población también debe ser definida en tiempo y espacio para poder conocer el alcance del análisis.
Diagrama 2
Diagrama 3
A su vez, cuando se realiza cualesquiera de estos dos tipos de estadística, un fin último es poder agregar los datos recolectados en medidas resumen de dos tipos:
Medidas de Tendencia Central: Estas medidas tienen el objetivo de conocer los valores centrales en los cuáles los datos tienden a concentrarse, usualmente representados por el valor promedio o media, la mediana, la moda y los percentiles.
Medidas de Variabilidad: La variabilidad o varianza es una de las razones de ser de la estadística.Ya que cuando se realizan mediciones, por la característica de todos los fenómenos de la naturaleza, existen variaciones en las observaciones.Siguiendo el ejemplo de la rotación, no existe la posibilidad de encontrar dos empresas iguales en cuanto al tiempo que todos los empleados estuvieron en dichas empresas.Para conocer que tanta variabilidad ocurre en un fenómeno, se mide la varianza y la desviación estándar.
Vamos a conocer más a detalle estas medidas más adelante.
En R, existen miles de paquetes que pueden ser instalados desde el repositorio CRAN.Estos paquetes amplian la funcionalidad básica del lenguaje, agregando funciones específicas de miles de campos científicos, tecnológicos, académicos o de negocios.
[En este link] https://support.rstudio.com/hc/en-us/articles/201057987-Quick-list-of-useful-R-packages se presenta un listado curado de paquetes básicos para el análisis estadístico que serán (o podrían ser) utilizados a lo largo del curso.
Vamos a instalar unos cuantos:
# Instala 3 paquetes para manipulación de datos, visualización de datos y análisis exploratorio, respectivamente.
install.packages('dplyr');install.packages('ggplot'); install.packages('dlookr')Posterior a instalarlos, debemos cargarlos en el ambiente con la función library(<nombrePaquete>) :
No obstante, a continuación una forma mas eficiente y elegante de realizar este proceso, en el que se chequea si el paquete esta instalado o no; si el paquete no esta instalado se instala y carga y si el paquete ya esta instalado solo se carga:
##Primero se crea un objeto con los paquetes que se desean instalar/cargar
paquetes<- c("ggplot2","lubridate")
##Aplica un ciclo iterativo para comprobar el estado de cada paquete e instalar si corresponde
for (i in paquetes){
if (i %in% installed.packages()[,"Package"] == FALSE){
install.packages(i,repos="http://cran.rstudio.com/");
}
}
#Carga los paquetes sin generar mensajes o warnings
sapply(paquetes,library,character.only=TRUE,quietly=T)##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:dplyr':
##
## intersect, setdiff, union
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
## $ggplot2
## [1] "ggplot2" "dplyr" "kableExtra" "stats" "graphics"
## [6] "grDevices" "utils" "datasets" "methods" "base"
##
## $lubridate
## [1] "lubridate" "ggplot2" "dplyr" "kableExtra" "stats"
## [6] "graphics" "grDevices" "utils" "datasets" "methods"
## [11] "base"
Para proceder con la práctica de los contenidos meramente estadísticos ya previamente repasados, vamos a ver un procedimiento para cargar un archivo .csv
Si un archivo de texto esta separado por “,” o “;”, usualmente se lee como un archivo de extensión .csv.Para esto se utiliza la función read.csv.
En este primer caso lo vamos a hacer desde un archivo local.Para esto, primero debemos “setear” el directorio de trabajo o donde se encuentra el archivo, para poder leerlo.
Puede obtener los datos actualizados al día de hoy, corriendo el siguiente script de R
# Set wd
# Se debe poner un string con el path en donde se encuentra el archivo
wd <- "/cloud/project/Clase1"
# Esta instrucción indica que el string wd con el path sea el nuevo Working Directory
setwd(wd)
# Crea un nuevo objeto en R, leyendo el archivo .csv ubicado en el WD.
df <- read.csv("covidCantones.csv",sep = ",")
#Visualizar los datos(20 primeros registros)
head(df,20)## X Province Canton Date.first.confirmed Confirmed Active Deaths
## 1 1 San José San José March 15, 2020 14243 4099 206
## 2 2 San José Escazú March 15, 2020 1321 144 21
## 3 3 San José Desamparados March 15, 2020 5715 3539 84
## 4 4 San José Puriscal March 27, 2020 405 104 6
## 5 5 San José Tarrazú March 27, 2020 25 8 0
## 6 6 San José Aserrí March 22, 2020 1083 636 6
## 7 7 San José Mora March 27, 2020 496 129 8
## 8 8 San José Goicoechea March 18, 2020 2587 953 41
## 9 9 San José Santa Ana March 15, 2020 1341 347 13
## 10 10 San José Alajuelita March 28, 2020 3694 2231 43
## 11 11 San José Vázquez de Coronado March 20, 2020 1168 389 15
## 12 12 San José Acosta June 17, 2020 457 183 2
## 13 13 San José Tibás March 15, 2020 1877 1045 37
## 14 14 San José Moravia March 18, 2020 802 239 11
## 15 15 San José Montes de Oca March 20, 2020 816 354 10
## 16 16 San José Turrubares March 28, 2020 45 19 0
## 17 17 San José Dota August 12, 2020 9 2 0
## 18 18 San José Curridabat March 17, 2020 1942 736 28
## 19 19 San José Pérez Zeledón March 15, 2020 283 177 1
## 20 20 San José León Cortés Castro July 10, 2020 41 6 0
## Recovered
## 1 9938
## 2 1156
## 3 2092
## 4 295
## 5 17
## 6 441
## 7 359
## 8 1593
## 9 981
## 10 1420
## 11 764
## 12 272
## 13 795
## 14 552
## 15 452
## 16 26
## 17 7
## 18 1178
## 19 105
## 20 35
Para mas detalle en como cargar archivos en R, se puede referir a este [link].https://rpubs.com/Felipe1986/Clase4
Entrando en calor, vamos a proceder a utilizar algunos de los paquetes ya mencionados, para practicar los conceptos estadísticos estudiados.Para empezar, utilizaremos la sintaxis del paquete ´dplyr´ para obtener una muestra.Recordemos que este paquete:
library(dplyr)
dfMuestra <- df %>% # >%> se puede leer como " y entonces lo siguiente es..."
sample_n(size = 10)
dfMuestra## X Province Canton Date.first.confirmed Confirmed Active Deaths
## 1 37 Cartago Cartago March 17, 2020 1206 549 12
## 2 41 Cartago Turrialba April 7, 2020 224 86 4
## 3 62 Guanacaste Tilarán March 26, 2020 67 17 1
## 4 76 Puntarenas Garabito March 25, 2020 317 170 6
## 5 48 Heredia Santa Bárbara March 18, 2020 539 279 0
## 6 29 Alajuela Orotina March 25, 2020 166 54 1
## 7 46 Heredia Barva March 15, 2020 731 285 9
## 8 71 Puntarenas Quepos May 10, 2020 284 110 6
## 9 24 Alajuela San Mateo June 2, 2020 22 11 0
## 10 19 San José Pérez Zeledón March 15, 2020 283 177 1
## Recovered
## 1 645
## 2 134
## 3 49
## 4 141
## 5 260
## 6 111
## 7 437
## 8 168
## 9 11
## 10 105
Si queremos visualizar las tablas de una manera más estetica, podemos utilizar el paquete ´kabbleExtra´ para tablas:
kable(head(dfMuestra,10)) %>%
kable_styling(bootstrap_options = c("striped", "hover"))%>%
scroll_box(width = "900px", height = "500px")| X | Province | Canton | Date.first.confirmed | Confirmed | Active | Deaths | Recovered |
|---|---|---|---|---|---|---|---|
| 37 | Cartago | Cartago | March 17, 2020 | 1206 | 549 | 12 | 645 |
| 41 | Cartago | Turrialba | April 7, 2020 | 224 | 86 | 4 | 134 |
| 62 | Guanacaste | Tilarán | March 26, 2020 | 67 | 17 | 1 | 49 |
| 76 | Puntarenas | Garabito | March 25, 2020 | 317 | 170 | 6 | 141 |
| 48 | Heredia | Santa Bárbara | March 18, 2020 | 539 | 279 | 0 | 260 |
| 29 | Alajuela | Orotina | March 25, 2020 | 166 | 54 | 1 | 111 |
| 46 | Heredia | Barva | March 15, 2020 | 731 | 285 | 9 | 437 |
| 71 | Puntarenas | Quepos | May 10, 2020 | 284 | 110 | 6 | 168 |
| 24 | Alajuela | San Mateo | June 2, 2020 | 22 | 11 | 0 | 11 |
| 19 | San José | Pérez Zeledón | March 15, 2020 | 283 | 177 | 1 | 105 |
Como ya se mencionó anteriormente, existen varias medidas de tendencia central.La siguiente imagen ilustra algunas de ellas:
Diagrama 4
# Cálculo manual
#Media de casos recuperados
MediaA <-sum(df$Recovered,na.rm = TRUE) / nrow(df)
#Mediante función
MediaB<- mean(df$Recovered,na.rm = TRUE) # na.rm = TRUE esta instrucci[on es para que no tome en cuenta los valores nulos del dataset.
MediaA;MediaB## [1] 484.4024
## [1] 484.4024
-Percentiles: Para generalizar la mediana, el percentil, es el valor en donde se encuentra el n% de los datos.Donde n es un número que va del 1 al 99.Por ejemplo, el percentil 10, indica que un 10% de las observaciones son menores a ese valor y un 90% son mayores a ese valor.
## [1] 191
## 90%
## 1138.5
De esta manera, el 50% de los cantones tienen menos de 191 y el otro 50% tienen mas de 191.
Por otro parte, el 90% de los cantones tienen menos de 1138.5 y solo un 10% tiene más de 1138.5
Para resumir los percentiles, se utilizan algunos terminos convenientes:
| Percentil | Nùmero | Descripción |
|---|---|---|
| Decil | 1-10 | Divide los datos en 10 grupos. |
| Cuartil | Q1-Q2-Q3 | Cuartill 1 (Percentil 25), Cuartil 2 (Percentil 50), Cuartil 3 (Percentil 75) |
| Quintil | Q1-Q2-Q3-Q4 | Quintil 1 (Percentil 20),Quintil 2 (Percentil 40), Quintil 3 (Percentil 60), Quintil 4 (Percentil 80) |
Este es un ejemplo gráfico de como se dividen los cuartiles:
Diagrama 4
Ahora, vamos a calcular los quintiles:
## 20% 40% 60% 80%
## 1.0 3.0 6.0 11.8