Docencia de grado de Econometria basada en R - Retos y Soluciones

Primera reunion de Usuarios R Salamanca Mayo de 2016

Jose Antonio Ortega
Departamento de Economia e Historia Economica, Universidad de Salamanca

Docencia de grado de Econometría basada en R

Retos y soluciones

  • Desde 2001 llevo impartiendo cursos de econometría utilizando R.
  • Novedades curso 2015-16:
    • Inicio de curso con manipulación de datos: tidyr, dplyr, ...
    • Uso de paquete mosaic para análisis estadísticos
    • Uso de slidify y knitr para la elaboración de los materiales
  • Esta presentación:
    • Creación de materiales didácticos
    • Competencias para el análisis empírico
    • Estrategia de trabajo
    • Integración de R con moodle
    • Evaluación

To gui or not to gui?

La principal elección en un curso de estadística-econometría con R.

  • Hasta el curso 2014-15 utilizaba fundamentalmente Rcmdr para el análisis empírico.

Rcmdr

¿Qué ha cambiado en estos años?

  • El análisis empírico es más importante que nunca .

  • Infinidad de datos accesibles online.

  • Es clave cubrir TODO el proceso del análisis empírico:

    • Obtención de datos
    • Manipulación
    • Análisis exploratorio
    • Modelización
    • Diagnóstico
    • Utilización práctica

bigdata

  • Los libros de texto han quedado obsoletos.

  • Suelen partir de unos datos convenientemente depurados para ilustrar los métodos.

Ventajas de RStudio

En el curso 2015-16 he comenzado a utilizar RStudio

Rstudio

RStudio permite:

  • Mostrar desde el primer día como trabajar con R de forma eficiente:

    • Ficheros .R
    • Visualización del espacio de trabajo
    • manipulate y Addins
  • Utilizar paquetes básicos para la manipulación y el análisis de datos:

    • tidyr y dplyr para manipulación.
    • mosaic para estadísticas, gráficos, bootstrap, ...
    • visreg, LinRegInteractive: modelos lineales
  • Énfasis en la replicabilidad

  • Generar materiales con knitr y slidify (esta presentación), y colgarlos en rpubs

Creación de materiales didácticos: knitr

  • El formato Rmarkdown permite generar documentos en el formato preferido (html, doc y pdf) con un sólo click con el paquete knitr integrado en RStudio.

  • Integra el análisis con R, mostrando el código y los resultados (code chunks)

  • Permite integrar ecuaciones en formato latex.

  • Así como tablas en formato latex.

knitr

Creación de materiales didácticos: slidify

Permite generar presentaciones en formato html5 escritas en formato Rmarkdown modificado.

Ejemplo: posible logo de Ralamanca

library(sp);library(maptools)
library(rgeos); library(ggplot2)
r_wkt_gist_file <- "https://gist.githubusercontent.com/hrbrmstr/07d0ccf14c2ff109f55a/raw/db274a39b8f024468f8550d7aeaabb83c576f7ef/rlogo.wkt"
download.file(r_wkt_gist_file, "rlogo.wkt")
rlogo <- readWKT(paste0(readLines("rlogo.wkt", warn=FALSE)))

rlogo_shp <- SpatialPolygonsDataFrame(rlogo, 
              data.frame(poly=c("halo", "r")))
rlogo_poly <- fortify(rlogo_shp, region="poly")

Con colores sangre de toro y piedra de villamayor

ggplot(rlogo_poly) + 
geom_polygon(aes(x=long, y=lat, group=id, fill=id)) + 
scale_fill_manual(values=c(halo="#ddcf99", r="#7f052a")) +
coord_equal() + theme_void() +
theme(legend.position="none")

plot of chunk unnamed-chunk-2

Competencias para el análisis empírico:

Estrategia de trabajo

Crear las condiciones para el trabajo autónomo con R: Ejemplo

  • Importación de datos desde INE (formato pcaxis con pxr), excel, html, ...
  • Transformación de datos a formato ordenado (tidy) con tidyr.
  • Manipulación con dplyr y operador después (%>%) para trabajar en R de manera intuitiva.

http://rpubs.com/jaortega/153805

Estrategia de trabajo (ii)

Ejemplos relevantes con datos reales

  • Detectar problemas en los datos.
  • Visualizarlos (lattice, ggplot2)
  • Poner en forma adecuada para modelos estadísticos.

NO EXISTE el modelo correcto. Sólo aproximaciones útiles.

  • Enfoques alternativos desde el principio: paramétricos y no paramétricos.
  • Énfasis en el diagnóstico del modelo.
  • Utilización de estimadores robustos: fórmulas sandwich de varianzas, estimación bootstrap de varianzas, regresión robusta, ...
  • Conceptos de causalidad, y papel de la asignación aleatoria en experimentos.
  • Validación predictiva, selección de modelos, método lasso...

Proyecto mosaic

Ejemplos mosaic

Un paquete muy bien pensado.

  • Generaliza el uso de fórmulas para estadística descriptiva:
mean(y~x,data=mcarlo)
  • Generaliza métodos de simulacion del modo más sencillo posible:
    • Método de Montecarlo
    • bootstrap
    • Contrastes de réplicas
term estimate std.error
(Intercept) 3044.906 177.102
R_Bruta 0.746 0.004
## Una vez: resample es la clave
do(1) * lm(R_Disp ~ R_Bruta, data=resample(ecv))
##   Intercept  R_Bruta    sigma r.squared        F numdf dendf
## 1  3158.072 0.737559 3554.114 0.9687981 371442.8     1 11963
## 1000 veces:
bsRenta = do(1000) * 
   lm(R_Disp ~ R_Bruta, data=resample(ecv))
## Error estándar bootstrap
sd(Intercept,data=bsRenta); sd(R_Bruta,data=bsRenta)
## [1] 145.0453
## [1] 0.004976502

Otros paquetes: visreg

library(splines); library(visreg)
m2=lm(I(R_Disp/n) ~ ns(R_Bruta,5):factor(n), data=ecv)
visreg(m2,"R_Bruta","n",overlay=TRUE,xlim=c(0,80000))

plot of chunk unnamed-chunk-6

visreg2d(mRenta2,"R_Bruta","n")

plot of chunk unnamed-chunk-7

Integración de R con moodle (Studium)

De R a moodle

  • El paquete exams permite generar preguntas con multiples variantes.

  • Las preguntas se escriben en formato Rmarkdown.

  • Se puede generar fichero xml para moodle o bien pdf para examen escrito o html.

  • A veces da problemas (interacción entre soluciones locales y knitr): Funciones propias para generar preguntas cloze con multiples variantes [En preparación]

De moodle a R

  • Con wiris se replica el análisis que hace R a partir de unos datos comunes.

  • Se genera una función de R que controla la variante del problema.

  • El estudiante ejecuta la función en R que se le proporciona en moodle y realiza los procesos que se le piden

  • La pregunta wiris cloze comprueba las soluciones

PROBLEMAS: El traslado a moodle 2.0 ha cambiado el funcionamiento. Problemas de verificación de soluciones.

Ejemplo: Pregunta en moodle

Boxcox1

Ejemplo: Salida en R

library(TeachingDemos)
load("BoxCox.RData")
ejBoxCox(1095)

Boxcox2

Evaluación

La evaluación de la asignatura se basa en:

  • Hojas de problemas semanales en moodle

  • Pruebas prácticas (con R) y teóricas en el aula

  • Trabajo de curso, por parejas (para fomentar trabajo en equipo):

    • Propuesta de tema con feedback del profesor
    • Todas las fases se realizan con R: importación de datos de INE o anuario la caixa, Eurostat ò WDI del Banco Mundial.
    • Se promueve la replicabilidad entregando los ficheros .RData, .R y, en su caso, .Rmd además del trabajo.
  • Participación en las clases

  • Examen final

Conclusiones

  • Un curso de Econometría sólo es útil para los estudiantes si les pone en disposición de desarrollar sus propios análisis empírico.

  • Los libros de texto al uso no funcionan:

    • Trabajar con datos reales es muy distinto a trabajar con datos de ejemplo.
    • Preparar los datos para el análisis es tarea compleja que requiere ser tratada como tal.
    • Los resultados teóricos que se basan en especificación correcta y conocida del modelo no se dan nunca en la práctica (salvo experimentos de Montecarlo).
    • Lo importante es saber como conseguir modelos aproximadamente válidos
  • R dispone de nuevos paquetes para desarrollar de manera intuitiva estos objetivos.

  • Es preferible utilizar los paquetes directamente a través de RStudio, con un gui como Rcmdr de manera complementaria y no al revés: busqueda activa de soluciones.

  • La integración de R con las plataformas de e-learning como moodle permite la evaluacion de los conocimientos obtenidos.