Módulo 1: Generalidades e Introducción a R

Objetivos:
Dar una introducción práctica al lenguaje de programación estadística R
Cubrir metodologías básicas de análisis estadístico con su interpretación y visualización de resultados
Desarrollar en el participante las destrezas necesarias para entender, interpretar y comunicar los resultados estadísticos de sus análisis
Lo que espero de mi audiencia
Pre-requisitos:
Conocimientos básicos de estadística
Conexión estable a internet
Materiales:
Canales de comunicación:
Plataforma ZULIP
Email del curso: [email protected]
Estructura de cada sesión:
50% de presentaciones y demostraciones
50% de ejercicios prácticos y aplicación de conocimiento adquirido
Un receso de 10 a 15 minutos en la mitad de cada sesión
Trabajo final del curso:
Opción 1: Realización de un reporte estadístico con tus propios datos.
Opción 2: Cumplir con la sugerencia de análisis a realizar sobre distintas tablas de datos en el sitio web del curso.
La aprobación del curso se conseguirá con una nota mínima de 7/10
Opción 1:
La estructura básica que espero de un reporte estadístico es : título, resumen, objetivos, metodología, resultados, conclusiones (bibliografía dependiendo si tiene sentido ponerla) y apéndice.
En caso de presentar bibliografía, el estilo que más te agrade está bien.
El contenido del reporte debe estar escrito en una manera simple y entendible para el lector en general. No hace falta entrar a profundidad en conceptos estadísticos.
Opción 2:
ES IMPRESCINDIBLE el presentar el código de R (script) usado en el reporte a manera de Apéndice, independientemente de la opción que optes para tu trabajo final. Para la opción 1, en el apéndice debe contar también con el análisis exploratorio de los datos.
Envío del reporte final debe ser hasta antes de las 23H59 GMT-5 (hora de Ecuador continental) del 19 de abril del año en curso en formato pdf a mi correo electrónico ([email protected]).
La fecha de entrega de calificaciones del reporte la daré a conocer dependiendo del número de trabajos entregados.
De ser posible, sigue las sesiones en una tablet/otro monitor/otro ordenador (o practica el dominio de ALT+TAB)
Aliento el uso de datos propios (¡este es un curso mayoritariamente práctico!)
Solo existe un tipo de “pregunta tonta”: la que no se hace
No sentirse intimidado por recursos extras y complementarios mayoritariamente en idioma inglés
Durante el curso se espera que sigas y reproduzcas en tu ordenador en tiempo real el código de R que escribiré para cada ejemplo. ¡NO DESESPERES si no alcanzas mi ritmo! Los ejercicios que veremos en cada clase, los subiré resueltos a la página web del curso un día después del término de cada sesión
Nuevamente, por si tienes dudas e inquietudes, puedes comunicarte conmigo mediante los canales de comunicación anteriormente mencionados.

Su uso se va extendiendo cada vez más en el ámbito académico (e industrial)
Software libre
Amplio abanico de librerías (19223 al 19.02.2023)
¡Basta comunidad de R enthusiasts!
Versátil:
Gráficos listos para publicación
Generación de reportes, páginas web, presentaciones y libros en distintos formatos (rmarkdown, blogdown, quarto)
Construcción de aplicaciones interactivas para visualización/análisis de datos (rshiny)
Descarga la última versión disponible de R
Ejecuta el archivo .exe para iniciar la instalación
Recomendado: No cambies el directorio sugerido por el asistente de instalación
Opcional: No instalar traducciones de los mensajes de R


Rtools es una cadena de herramientas para compilar librerías de R en Windows basada en lenguajes C/C++/Fortran.
No es necesario en sistemas operativos de Apple o basados en Unix (Linux).
Se puede usar R en Windows sin necesidad de Rtools por la existencia de versiones de librerías en formato binario (ya previamente compiladas).
Las ventajas de contar con Rtools:
Posibilidad de actualizar librerías a sus mas recientes versiones.
Compilación de versiones beta de librerías experimentales aun no disponibles en CRAN.
Uso de librerías específicas que necesitan de Rtools para su funcionamiento (ej. rstan)
En caso de que desees instalar Rtools, sigue las instrucciones en este link https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html
Editor: ventana donde escribimos código. Puede contener tantas pestañas como scripts de R tengamos abiertos. No se ejecuta a no ser que ordenemos a R hacerlo.
Ambiente/historia de trabajo: nos permite visualizar los objetos que vayamos creando durante la ejecución del código así como el orden de los comandos ejecutados.
Consola: o terminal de R, es la interface directa de RStudio con R. En esta podemos ejecutar comandos línea por línea y visualizar los resultados de la ejecución de lo que escribamos en el editor.
Varias pestañas de importancia:
Plots: donde se producirán los plots que ejecutemos
Packages: listado de librerías instaladas
Help: ayuda de R (activada por comando o búsqueda manual)
Viewer: crea una ventana fuera del ambiente de RStudio para visualizar gráficos
En R, los objetos son distintas formas de almacenar datos/información
Existen varios tipos de objetos en R, los mas básicos:
Vectores
Tablas de datos
Listas
Matrices
Cuando elementos de distinta clase son almacenados en un vector, R los transforma
¿Cómo podemos saber la clase de un objeto de R?
Cuando elementos de distinta clase son almacenados en un vector, R los transforma
¿Cómo podemos saber la clase de un objeto de R?
str es un comando base de R. Es el comando mas simple para explorar la clase de un objeto.
Pero ya hablaremos de comandos y librerías en breve…
x, y, z y las combinaciones c(x, y), c(z, x)Arreglo bidimensional que permite almacenar datos de distintas clases
¿Cómo creo tablas de datos en R?
Arreglo bidimensional que permite almacenar datos de distintas clases
¿Cómo creo tablas de datos en R?
variable1 variable2
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
Todos los elementos de un objeto de R tienen un índice.
Esto permite el acceder a elementos específicos de un objeto mediante su índice.
¿Cuál es el segundo elemento del vector_a?
tabla?lista_a?lista_a?lista_a que creamos anteriormente, ¿cuál es el valor en la columna 2, fila 4 de la tabla de datos almacenado como segundo objeto de esta lista?Una librería es un conjunto de funciones que son invocadas mediante sus nombres exactos (comandos) y ejecutadas de acuerdo a los argumentos que requieran
as.Date, as.factor, str, y data.frame son comandos de la librería base de RExisten dos tipos de librerías en R
Librerías base de R (disponibles desde todo inicio de sesión)
Librerías externas de R (requieren ser instaladas una única vez y llamadas previamente al análisis)
Existen dos formas de instalar librerías en R
Mediante GUI de RStudio
Mediante el editor o la consola, ventanas 1 y 3 de RStudio, respectivamente
En este curso nos enfocaremos en hacer mínimo uso de la GUI. El motivo: mientras menos dependemos de la GUI, nuestros códigos (scripts) serán mas reproducibles e independientes de nuestra intervención cada vez que sean ejecutados.
El comando base de R para instalar librerías es install.packages
Puede instalar una librería a la vez:
library()La librería base de R permite importar datos de archivos de texto (.txt) y archivos de valores separados por comas (.csv) mediante los comandos read.table() y read.csv() respectivamente.
Pero en la realidad, la mayoría de personas usamos actualmente Excel para llevar control de nuestros datos. En R, podemos importar datos de Excel mediante la librería readxl:
Idealmente tus códigos (scripts) deben ser lo mas posiblemente reproducibles. Para comenzar, te doy las siguientes recomendaciones:
Crea un folder para cada proyecto
En este folder copia los archivos de Excel relacionados
Crea dentro de este folder un script de R, ejemplo “sesion1.R”
El primer paso en este script, es indicarle a R el directorio de trabajo (con el comando base setwd())
¡Estamos entonces listos para cualquier análisis que deseemos hacer!
setwd("C:/Users/mmore/Documents/cursos_uce_2023/datos/")
library(readxl) # invocamos la librería
rot_berlin <- read_excel("rotXLS.xlsx") # creamos un objeto (tabla de datos) y llamamos la función read_excel
head(rot_berlin) # chequeamos que nuestro archivo se halla importado correctamente# A tibble: 6 × 12
date cases week incidence FM RSK SHK_TAG PM TMK
<dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2001-01-07 00:00:00 0 14 0 3.35 0 0 1003. 3.86
2 2001-01-14 00:00:00 8 15 0.23 1.65 0 0 1029. -2.35
3 2001-01-21 00:00:00 12 16 0.34 3.15 0.0545 0.2 1018. -0.364
4 2001-01-28 00:00:00 59 17 1.69 5.98 3.75 0 992. 2.47
5 2001-02-04 00:00:00 55 18 1.57 5.88 6.39 3.3 999. -4.92
6 2001-02-11 00:00:00 76 19 2.17 4.68 0.218 0 1024. 6.29
# … with 3 more variables: TXK <dbl>, TNK <dbl>, UPM <dbl>
Antes de sumergirnos en el uso de R, es importante definir algunas cosas:
Para asignar contenido (valores) a un objeto, los operadores de R son <- o =
R es sensible a mayúsculas y minúsculas (Tabla ≠ tabla)
R no es sensible a indentaciones (como Python)
#
#?nombre_de_la_función:
Existen varias formas de correr tu código en R
Con el ícono “Run” en la esquina superior derecha de la Ventana del editor.
Desde una ventana del prompt de Windows (usuarios intermedios y avanzados).
Y mi preferida: el atajo “Ctrl + Enter”. Esta última tiene la ventaja de correr línea por línea el código y también de correr únicamente sobre líneas previamente seleccionadas.
[1] 7.286667
modeest)El siguiente vector contiene dos valores perdidos NA. La mayoría de funciones en R no lidian con datos perdidos a menos que les sea explícitamente indicado. Por medio de la ayuda de R (por ejemplo, ingresa ?mean() en la consola) encuentra la manera de indicarle a R que ignore los NA y realice los cálculos de la media aritmética, la mediana, la moda, la desviación estándar, la varianza y los cuartiles usando las funciones anteriormente enunciadas.
Tip: basta con que veas la ayuda de una sola función para revisar el argumento que tienes que modificar. El mismo argumento es común a todas las demás funciones
Para ilustrar esta sección, utilizaremos la base de datos de “Palmer penguins”:
palmerpenguins.

La forma mas sencilla de calcular los estadísticos descriptivos de una tabla de datos es usando la función base summary()
species island bill_length_mm bill_depth_mm
Adelie :152 Biscoe :168 Min. :32.10 Min. :13.10
Chinstrap: 68 Dream :124 1st Qu.:39.23 1st Qu.:15.60
Gentoo :124 Torgersen: 52 Median :44.45 Median :17.30
Mean :43.92 Mean :17.15
3rd Qu.:48.50 3rd Qu.:18.70
Max. :59.60 Max. :21.50
NA's :2 NA's :2
flipper_length_mm body_mass_g sex year
Min. :172.0 Min. :2700 female:165 Min. :2007
1st Qu.:190.0 1st Qu.:3550 male :168 1st Qu.:2007
Median :197.0 Median :4050 NA's : 11 Median :2008
Mean :200.9 Mean :4202 Mean :2008
3rd Qu.:213.0 3rd Qu.:4750 3rd Qu.:2009
Max. :231.0 Max. :6300 Max. :2009
NA's :2 NA's :2
data() con el nombre de la tabla dentro de los paréntesis. Calcula los estadísticos descriptivos de la tabla de datos de nombre “iris”.Existen dos formas de crear tablas de frecuencia:
A partir de variables categóricas
Categorizando una variable continua
Usualmente se presentan:
Frecuencia absoluta: número de observaciones por categoría
Frecuencia acumulada: suma de frecuencias absolutas
Frecuencia relativa: frecuencia absoluta/total de observaciones
Frecuencia relativa acumulada: suma de frecuencias relativas
library(fdth) # fdth es una librería que nos permite calcular tablas de frecuencia
attach(penguins) # attach es un comando que convierte las columnas en objetos
head(penguins) # le damos un vistazo a las variables (columnas)# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_l…¹ body_…² sex year
<fct> <fct> <dbl> <dbl> <int> <int> <fct> <int>
1 Adelie Torgersen 39.1 18.7 181 3750 male 2007
2 Adelie Torgersen 39.5 17.4 186 3800 fema… 2007
3 Adelie Torgersen 40.3 18 195 3250 fema… 2007
4 Adelie Torgersen NA NA NA NA <NA> 2007
5 Adelie Torgersen 36.7 19.3 193 3450 fema… 2007
6 Adelie Torgersen 39.3 20.6 190 3650 male 2007
# … with abbreviated variable names ¹flipper_length_mm, ²body_mass_g
library(fdth) # fdth es una librería que nos permite calcular tablas de frecuencia
attach(penguins) # attach es un comando que convierte las columnas en objetos
tabla_frec1 <- fdt_cat(species) # fdt_cat es la función de ftdh que calcula la tabla de frecuencia
tabla_frec1 Category f rf rf(%) cf cf(%)
Adelie 152 0.44 44.19 152 44.19
Gentoo 124 0.36 36.05 276 80.23
Chinstrap 68 0.20 19.77 344 100.00
f: frecuencia absoluta
rf: frecuencia relativa, rf(%): frecuencia relativa en %
cf: frecuencia acumulada, cf(%): frecuencia acumulada en %
Class limits f rf rf(%) cf cf(%)
[2673,3042) 11 0.03 3.20 11 3.20
[3042,3411) 47 0.14 13.66 58 16.86
[3411,3780) 71 0.21 20.64 129 37.50
[3780,4149) 53 0.15 15.41 182 52.91
[4149,4518) 45 0.13 13.08 227 65.99
[4518,4887) 41 0.12 11.92 268 77.91
[4887,5256) 28 0.08 8.14 296 86.05
[5256,5625) 26 0.08 7.56 322 93.60
[5625,5994) 16 0.05 4.65 338 98.26
[5994,6363) 4 0.01 1.16 342 99.42
fdth categoriza una variable continua en base a tres distintos algoritmos. El “default” es el algoritmo “Sturges” (ver ?fdth() para más información).
Crea una tabla de frecuencia categorizando la variable bill_depth_mm y exportala a un archivo de Word en tu directorio de trabajo
Moreno-Zambrano, et al. (2018) No publicado

