Tres de seis consejos para mejorar las regresiones

Por si alguien se lo perdió, están aquí. De los seis, mencionaré tres que me están resultando muy útiles en un proyecto actual. De todos ellos, el que más a rajatabla sigo es el primero: ajustar muchos modelos. Pudiera parecer trampa: buscar y rebuscar por si sale algo. Sin embargo, es una técnica que plantearse como una manera de familiarizarse y aprender la estructura de los datos. Los modelos (explicativos, como los que justifican esta entrada) no dejan de ser resúmenes de conjuntos de datos y no es sino ajustando diversos modelos que uno aprende si, por ejemplo, un coeficiente varía por año o provincia. ...

24 de octubre de 2017 · Carlos J. Gil Bellosta

Modelos directos, inversos y en los que tanto da

Continúo con esto que concluí con una discusión que me negué a resolver sobre la geometría de los errores. Que es la manera de entender que los problemas directos e inversos no son exactamente el mismo. Digamos que no es una medida invariante frente a reflexiones del plano (que es lo que hacemos realmente al considerar el modelo inverso). ¿Pero y si medimos la distancia (ortogonal) entre los puntos $(x,y)$ y la curva $y = f(x)$ (o, equivalentemente, $x = f^{-1}(x)$)? Entonces daría (o debería dar) lo mismo. ...

23 de octubre de 2017 · Carlos J. Gil Bellosta

He tratado de contrastar una hipótesis sin éxito, así que solo publico el subproducto

Inspirado por esto he tratado de contrastar una hipótesis en otro contexto. Las cosas, o se hacen bien, o no se hacen. Como mi análisis se ha complicado con casos y casitos particulares, aunque siga pensándo cierta (en caso de tener que apostar, como priori, claro) la hipótesis de partida, abandono su búsqueda. Como subproducto, esto: library(xml2) library(stringr) library(plyr) library(lubridate) periodos <- expand.grid(anno = 2010:2017, mes = 1:12) periodos$ind <- periodos$anno * 100 + periodos$mes periodos <- periodos[periodos$ind < 201711,] periodos <- paste(periodos$anno, str_pad(periodos$mes, 2, pad = "0"), sep = "_") raw <- lapply(periodos, function(x){ url <- paste0("http://www.eldiario.es/sitemap_contents_", x, ".xml") print(url) as_list(read_xml(url)) }) #df <- lapply(raw, function(y) ldply(y, function(x) as.data.frame(t(unlist(x))))) res <- lapply(raw, unlist) res <- lapply(res, function(x) t(matrix(x, 3, length(x) / 3))) res <- data.frame(url = res[,1], time = res[,2], stringsAsFactors = FALSE) res$time <- gsub("\\+.*", "", res$time) res$time <- strptime(res$time, "%Y-%m-%dT%H:%M:%S") res$titular <- gsub("_0_[0-9]*.html", "", res$url) res$titular <- gsub(".*/", "", res$titular) res$titular <- tolower(res$titular) res$year <- year(res$time) res$month <- month(res$time) Igual le sirve a alguien para analizar palabras clave en titulares de ese u otro medio, su evolución por mes, etc.

20 de octubre de 2017 · Carlos J. Gil Bellosta

#ardeAsturias, #ardeAvilés? Ah, ¡mierda!

#ardeAsturias #ardeAvilés? Ah, ¡mierda! Notas: Las imágenes están sacadas de aquí. La página es muy entretenida, pero no es exactamente lo que promete, como evidencia esta entrada. Si no has estado nunca en Avilés, igual no entiendes de qué va la cosa. La manera recomendable de solucionar el problema es problema es yendo: vale la pena.

18 de octubre de 2017 · Carlos J. Gil Bellosta

Para esto que me da de comer no vale XGBoost

Los físicos crean modelos teóricos. Los economistas crean modelos teóricos. Los sicólogos crean modelos teóricos. Todo el mundo crea modelos teóricos: epidemiólogos, sismólogos, etc. Estos modelos teóricos se reducen, una vez limpios de la literatura que los envuelve, a ecuaciones que admiten parámetros (sí, esas letras griegas). Frecuentemente, esos parámetros tienen un significado concreto: son parámetros físicos (con sus unidades, etc.), son interpretables como el grado de influencia de factores sobre los fenómenos de interés, etc. Frecuentemente, casi toda la ciencia de la cosa reside en ellos. ...

17 de octubre de 2017 · Carlos J. Gil Bellosta

Modelos no lineales directos e inversos

Las malandanzas de Circiter la han conducido al siguiente entuerto: estimar $\alpha$ donde $$ y = f_\alpha(x) + \epsilon$$ y $f_\alpha$ es una función no lineal horrible. Sin embargo, $f^{-1}_\alpha$ es mucho más manejable y podría plantearse el modelo $$ x = f^{-1}_\alpha(y) + \epsilon$$ (donde este nuevo $\epsilon$ no coincide con el anterior: piénsese en el método delta y léase la nota final). Un ejemplo. Que arranca con unos datos autoexplicativos: ...

16 de octubre de 2017 · Carlos J. Gil Bellosta

rOpenSpain: ahí tiro el guante

La gente de rOpenSci hace cosas a las que merece la pena atento. Tanto por los objetivos como por medios y las formas. Recomiendo seguir sus últimas publicaciones acerca de la profesionalización del proceso de desarrollo de código. Llevo unos meses jugando con una idea inspirada por rOpenSci: crear un respositorio y un consorcio más o menos formal que desarrolle, mantenga y mejore herramientas (en R) de interés para el procesamiento y análisis de datos ya no científicos sino españoles. Hablo, obviamente, de INE (EPA, EPF, censo, padrón,…), CIS (barómetros, etc.), IGN (Siane,…), encuestas electorales, etc. ...

11 de octubre de 2017 · Carlos J. Gil Bellosta

Efectos secundarios (nota: que existan no significa que debas usarlos)

Una función no debería cambiar nada de cuanto la rodea. Debería devolver algo y ya. Se acepta barco como animal acuático cuando hay funciones que escriben en logs, guardan datos en disco o crean gráficos. R deja que los usuarios se disparen en el pie permitiendo hacer cosas tan peligrosas como: a <- new.env() a$1 # error foo <- function(){ a$a <- 1 } foo() a$a # [1] 1 De la misma manera, si le enseñas un cuchillo a una vieja, es posible que te dé su bolso con todo lo que contiene. Pero eso no significa que debas usar los cuchillos para tales fines.

10 de octubre de 2017 · Carlos J. Gil Bellosta

La estadística (y la ingenería, y la medicina, y...) es una tecnología

Abundo aquí en un punto polémico de mi charla de Pamplona: el que define la estadística como una tecnología (bajo una definición bastante particular de ella). Pero es conveniente comenzar por el concepto de técnica. Que el DRAE define horripilantemente: Conjunto de procedimientos y recursos de que se sirve una ciencia o un arte. Y no, no, no… No solo las ciencias o las artes se sirven de técnicas para alcanzar sus fines. También los homeópatas, los curanderos, los chamanes, los echadores de cartas, etc. se sirven de técnicas sin que su actividad pueda calificarse de ciencia (¿o es que se trata de artes?). ...

9 de octubre de 2017 · Carlos J. Gil Bellosta

Una comparación de lenguajes de programación en una esquinita pequeña de la economía

El título, no el de esta entrada sino el de A Comparison of Programming Languages in Economics, es una sinécdoque confusa. Que nadie busque en él consejo sobre qué lenguaje estudiar si le interesa el mundo de la economía (en general). O fuera de ella (también en general). Encontrará más bien la implementación de la solución a un único problema dentro de los muchos que supongo comprende esa disciplina. Uno, además, con el que no he visto (en persona) a economista alguno ganarse el pan ni en la academia ni fuera de ella. ...

6 de octubre de 2017 · Carlos J. Gil Bellosta