+ - 0:00:00
Notes for current slide
Notes for next slide

Introducción a R

Econometría I

Paula Pereda ()

12 de agosto de 2022

1 / 35

Preliminares

2 / 35

Sobre los talleres en sí

  • Viernes de 08:00 a 09:40 | 📍 Sede Sinergia Ejido (Ejido 1275) - Salón K301

  • Talleres: ejercicios teóricos + aplicaciones en R (intuición & práctica).

  • Cada dos semanas apróximadamente hay que hacer un trabajo domiciliario.

  • Trabajo final:

    • Hasta 3 integrantes

    • 29/10: Entrega tema de trabajo de investigación.

    • 21/11: Entrega trabajo de investigación (paper o presentación, código + datos).

    • Mi mail está al inicio de cada presentación, por cualquier consulta siempre me pueden escribir.

3 / 35

Sobre los talleres en sí

  • Composición de la nota final:

    • Parcial - 40%

    • Trabajo de investigación - 30%

    • Prácticos - 25%

    • Actitud y participación - 5%

4 / 35

Econometría

Un econometrista aplicado necesita un conocimiento sólido de (al menos) tres áreas:

  1. La teoría de la econometría subyacente (supuestos, resultados, fortalezas, debilidades).

  2. Sabér cómo aplicar métodos teóricos a datos reales.

  3. Métodos eficientes para trabajar con datos — limpiar, agregar, unir, visualizar.

Este curso tiene como objetivo profundizar conocimientos en cada una de estas tres áreas.

  • 1: Como antes.
  • 2–3: R

[†]: Econometrista aplicado = Practicante de econometría, e.g., analista, consultor, científico de datos.

5 / 35

R

6 / 35

R

¿Qué es R?

Citando a la web del proyecto R:

R es un entorno de software libre para gráficos y computación estadística. Se compila y se ejecuta en una amplia variedad de plataformas UNIX, Windows y MacOS.

¿Qué significa esto?

  • R fue creado para el trabajo estadístico y gráfico requerido por la econometría.

  • R tiene una comunidad en línea bastante activa y útil. (Stack Overflow, R-Ladies, Grupos de usuarios de R)

  • Además, es gratis y código abierto.

7 / 35

R

¿Por qué usar R?

1. R es gratis y de código abierto.

2. R es flexible y poderoso— es adaptable a casi cualquier tarea, e.g., estadística, análisis de datos espaciales, machine learning, web scraping, limpieza de datos, creación de sitios web, estas notas de clase.

3. Relacionado: R no impone en la cantidad de observaciones, memoria o poder de procesamiento.

4. Con dedicación pueden obtener una herramienta valiosa y comercial.

5. 💖 R

[†]: Aprender R definitivamente requiere tiempo y esfuerzo.

8 / 35

R

9 / 35

R

10 / 35

R

11 / 35

R

12 / 35

R

13 / 35

R

14 / 35

R + [Conceptos claves]

16 / 35

Descarga, actualización y R en línea

1. Descarga

2. Actualización de R

  • Una manera simple desde Windows:
install.packages("installr")
installr::updateR()
  • Una manera simple desde Mac:
devtools::install_github("AndreaCirilloAC/updateR")
updateR::updateR(admin_password = "PASSWORD") # "PASSWORD" es la contraseña del sistema
17 / 35

Descarga, actualización y R en línea

3. R Online

Es un RStudio que se ejecuta lento pero sirve para salir de apuros: https://rstudio.cloud/plans/free

18 / 35

R

19 / 35

RStudio

20 / 35

Guía para las clases

  • Un block de color gris en una diapositiva significa que se inicia código R. Es como si hubiera una consola de R en la diapositiva.

  • Dentro del block gris un signo de numeral ('#') significa que se inicia un comentario.

  • Dentro del block gris un signo de numeral y el signo '>' ('>') es un resultado del intérprete.

Ejemplo:

9 + 12 # esto es una suma
> [1] 21
21 / 35

Resultados del intérprete

9 + 12
> [1] 21
rnorm(15)
> [1] -0.32606194 1.00924283 -0.37129459 1.45421663 0.66290663 -0.66827330
> [7] -2.00434993 -1.30699470 -2.32536400 0.44944767 0.42626153 -0.90526337
> [13] -0.01495748 0.28629459 -1.43816416

Los números que aparecen entre paréntesis rectos ([]) luego de '#>' indican la posición del resultado.

22 / 35

Código incompleto

Ejemplo:

> objeto_1 <- seq(1, 30, 0.5)
> plot(objeto_1
+
+ )
>
  • En R el signo '>' (prompt) indica que el intérprete "está listo" para recibir órdenes.

  • Si luego de dar una orden, en lugar de aparecer nuevamente el prompt, aparece el signo de '+' indica que hay una orden incompleta. En el ejemplo de arriba lo que falta es cerrar el paréntesis de la función plot().

  • Si doy 'Enter' con una función incompleta va a aparecer nuevamente el signo de '+', para salir de este ciclo debo apretar 'Esc'.

23 / 35

Consejos para aprender

Dos consejos de Hadley Wickham para aprender y mejorar la programación en R:

1. Lean código fuente. Busquen los paquetes o las funciones que usan con más frecuencia y miren cómo están escritos.

2. Adopten una mentalidad científica. Si no comprenden cómo funciona algo, desarrollen una hipótesis, diseñen algunos experimentos, ejecútenlos y registren los resultados.

24 / 35

Importancia del uso de scripts

Un script es un archivo en el que se escriben los comandos y las funciones que se desean guardar de una sesión de trabajo.

  • Confección: crear estos archivos es importante para tener un historial de trabajo.
  • Guardado: El nombre del archivo debe ser lo sufcientemente claro como para refejar el contenido y encontrarlo con facilidad. En lo posible debe ser corto.
  • Documentación: Es muy importante comentar las operaciones o creación de funciones que se realicen para poder replicar con facilidad el trabajo. Los comentarios deben iniciar con '#'
x <- c(1, 8, 19)
# El objeto x es un vector de tres números. Y esto es un comentario :)
25 / 35

Paquetes

Un paquete de R es un conjunto de funciones que pertenecen a un mismo ambiente y que -por lo común- tienen una estructura general que justifica que estén juntas.

Descarga:

# Descargar un paquete desde CRAN
install.packages("wooldridge")
# la función
install.packages("...")
# descarga el paquete a la computadora
# (funciones y documentación de las mismas)
# Descargar un paquete desde GitHub (versión del paquete en desarrollo)
install.packages("devtools")
devtools::install_github("JustinMShea/wooldridge")
26 / 35

Uso (cargar un paquete):

# Para usar las funciones de un paquete ya descargado hay que usar la función
library(...)
library("wooldridge")
# se puede prescindir del uso de las comillas.
# En el caso de la descarga el paquete debe estar entrecomillado
library(wooldridge)
27 / 35

Ayuda

help(lm) #Comando básico de búsqueda
?lm #ídem anterior
help("+") #Ayuda sobre un operador
help.search("norm") # Busca entre los paquetes instalados las
# funciones que contienen el termino "norm"
??norm # ídem anterior
apropos("mean") #Listado de funciones que contienen el termino "norm"
help(rlm, package = "MASS") # Busca la ayudad de una función específica
# de un paquete
RSiteSearch("glm") # Busca en los manuales y ficheros de ayuda de la web
# R-project
find("mean") #Devuelve el paquete al que pertenece la función.
# (el paquete debe estar cargado: library())
example(contour) # Ejecuta los ejemplos disponibles de la función
browseVignettes() # Muestra en web las viñetas disponibles y el acceso
# a ellas. De un paquete: (package="package-name")
vignette(all = TRUE) # Muestra todas las viñetas disponibles en pantalla

Ejemplo:

help(mean)
28 / 35

Ficha técnica de una función

  • Name: El nombre de la función, entre llaves '{}' el paquete al que pertenece la función
  • Description: Breve descripción de la función
  • Usage: Sintaxis de la función
  • Arguments: Explicación de los argumentos de la función
  • Value: Características de la salida de la función (puede ser un objeto como un valor)
  • References: Bibliografía relacionada con la función
  • See Also: Funciones relacionadas.
  • Examples: Ejemplos de cómo se usa la función
29 / 35

Uso de funciones

Una función en R es una o varias sentencias de código que realizan una operación determinada.

Una función tiene dos características fundamentales para su correcto uso: un nombre y argumentos que siempre van entre paréntesis.

Ejemplo: función para obtener el promedio de un conjunto de datos

mean(x, trim = 0, na.rm = FALSE, ...)

  • Nombre de la función: mean
  • Argumentos de la función: x, trim, na.rm, ...

De los 4 argumentos hay dos que tienen un valor asignado mediante el signo '='. Estos son valores por defecto. Si el usuario no los modifica la función siempre va a asumir esos valores.

30 / 35

Uso de funciones

Cuando se usa una función:

  • Los argumentos que tienen valores por defecto pueden no llamarse cuando se ejecuta la función.
  • Los argumentos tienen un orden que resulta importante únicamente si se opta por no nombrarlos.
  • Los argumentos pueden ir en distinto orden siempre que sean nombrados y asignados.

Ejemplo: todas estas opciones generan el mismo resultado

mean(x = 1:10)
mean(1:10)
mean(x = c(1:10, NA), trim = 0, na.rm = TRUE)
mean(trim = 0, x = c(1:10, NA), na.rm = TRUE)
mean(c(1:10, NA), 0, TRUE)
31 / 35

Objetos

En R se crea un objeto con el asignador '<-'. También se puede usar '=' pero no es recomendable.

nombre_del_objeto <- contenido_del_objeto

Palabras reservadas: if, break, next, TRUE, NaN, else, for, NULL, Inf, NA, FALSE, function, repeat, while, in

  • Importante: el nombre de un objeto no puede iniciar con números, ni signos, ni puede tener espacios en blanco.
  • Relevante: R es sensible a minúsculas y mayúsculas.
  • Sugerencia: evitar nombrar objetos con nombres de funciones existentes.
32 / 35

Tipos de objetos: typeof()

Los tipos de objetos más frecuentes son estos:

typeof* Descripción Ejemplo
logical un vector que contiene valores lógicos a <- c(TRUE, FALSE, TRUE)
double un vector que contiene valores reales a <- seq(1:10, 0.3)
character un vector que contiene valores de caracteres a <- letters[1:5]
33 / 35

Estructuras de datos en R

La estructura fundamental en R es el vector. El resto de las estructuras se pueden pensar como combinaciones de vectores.

  • matrix() y array(): una matriz o un arreglo es un vector con el atributo dim()(dimensión).
  • data.frame(): uno o más vectores del mismo largo (length()) que en el caso de un marco de datos sería con la misma cantidad de las (nrow())
  • list(): un lista es un vector genérico. Cada elemento de una lista puede ser de distinto tipo.

34 / 35

R + [Aplicaciones]

35 / 35

Preliminares

2 / 35
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow