Por una vez, accedo a hablar de algo de lo que no sé

Me piden que opine sobre lo de las encuestas electorales y su error. Vaya por delante mi confesión de que de eso sé poco. Soy matemático, no estadístico, y uno de los mayores huecos (¿simas?) de mi formación estadística tiene que ver con todo lo relativo al muestreo. Así que, con la valentía que aporta la ignorancia, procedo. El primer gran problema con las encuestas electorales es que confunden países con urnas y gente con bolas de colores. Si en una urna hay N bolas (de colores distintos) y queremos estimar su número mediante una extracción de n bolas, existe un margen de error debido a que en lugar de ver todos los datos uno ve únicamente una muestra. ...

29 de junio de 2016 · Carlos J. Gil Bellosta

R es un vago

Si creo la función foo <- function(a,b) a*a + b y la llamo mediante foo(1 + 1,3) pueden ocurrir dos cosas: o bien que R precalcule 1+1 y la función ejecute 2 * 2 + 3 o bien que la función ejecute directamente (1+1)*(1+1)+3. Pero, ¿qué es lo que hace realmente? Si escribimos f1 <- function(x){ print("Soy f1") x } f2 <- function(x){ print("Soy f2") x } foo(f1(2), f2(3)) obtenemos > foo(f1(2), f2(3)) [1] "Soy f1" [1] "Soy f2" [1] 7 lo que significa que f1 ha sido llamada una única vez. Es decir, R resuelve sus argumentos antes de aplicar la función. Pero hay más: ...

27 de junio de 2016 · Carlos J. Gil Bellosta

GBM (III): Más allá de las pérdidas cuadráticas

Liberados del estrecho ámbito de nuestra original mentira sugerente gracias a la relación que descubrimos entre residuos y gradientes cuando las pérdidas son cuadráticas podemos adentrarnos en ámbitos más extensos. Lo que discutimos del gradiente tiene una interpretación fácilmente inteligible en el caso de pérdidas cuadráticas. Pero ni la pérdida de interpretabilidad nos impide extender el razonamiento de la entrada anterior a funciones de pérdida distintas de la cuadrática siempre que podamos calcular un gradiente. ...

24 de junio de 2016 · Carlos J. Gil Bellosta

Unos lo creen mucho; otros, poco; pero nadie sabe cuánto

Imaginad que tenéis una empresa que un año, después de pagar insumos, salarios, tasas, IVAs, etc. tiene un beneficio de 1000 euros. La pregunta a la que trata de responder esta entrada es la siguiente: ¿por valor de cuánto podréis comprar bienes y servicios personales? En primer lugar, ese beneficio paga el impuesto de sociedades, un 25% este año en España. Quedan 750 euros. Como dueño, te concedes esos beneficios a través de dividendos. Que entran en tu IRPF y por los que hay que pagar alrededor del 20% (podría ser un 19% o un 23% dependiendo de su cuantía total). Quedan 600 euros. ...

23 de junio de 2016 · Carlos J. Gil Bellosta

GBM (II): Minimización de funciones, pérdidas cuadráticas, residuos y gradientes

Para minimizar una función $\phi(x)$ es habitual utilizar un procedimiento iterativo: a partir de un punto inicial $x_0$ se salta a $x_1 = x_0 - \lambda \nabla \phi(x_0)$ (donde $\lambda$ es un número pequeño predefinido de antemano), y de ahí, sucesivamente, a $$ x_n = x_{n-1} - \lambda \nabla \phi(x_{n-1}).$$ Porque, típicamente, como cuando uno está en el monte y da un paso corto en la dirección opuesta a la de máxima pendiente, sucede que ...

22 de junio de 2016 · Carlos J. Gil Bellosta

GBM (I): Una mentira sugerente

Hace un tiempo resumí los GBMs (Gradient Boosting Machines) en una línea. Hoy comienzo una serie de varias entradas para que nadie tenga excusa de no saber de qué va la cosa. Arranco con una mentira sugerente. Porque lo que voy a contar no es del todo cierto, pero motiva lo que vendrá después. Consideremos un conjunto de datos medio famoso: el de los precios de los alquileres en Múnich. Comencemos con un modelo sencillo, una regresión lineal que relacione el precio del alquiler con los metros cuadrados, i.e., ...

21 de junio de 2016 · Carlos J. Gil Bellosta

6602.767 km alrededor de España para visitar todas sus capitales de provincia

O tal dice lo que expongo a continuación. Paquetes necesarios: library(rvest) library(caRtociudad) library(reshape2) library(ggmap) library(plyr) library(TSP) Extracción de las provincias y sus capitales (de la Wikipedia): capitales <- read_html("https://es.wikipedia.org/wiki/Anexo:Capitales_de_provincia_de_Espa%C3%B1a_por_poblaci%C3%B3n") capitales <- html_nodes(capitales, "table") capitales <- html_table(capitales[[1]])$Ciudad capitales <- capitales[!capitales %in% c("Las Palmas de Gran Canaria", "Melilla", "Ceuta", "Mérida", "Santa Cruz de Tenerife", "Santiago de Compostela", "Palma de Mallorca")] Y sus coordenadas: coordenadas <- ldply(capitales, function(x) { tmp <- cartociudad_geocode(x)[1,] res <- data.frame(ciudad = x, provincia = tmp$province, lat = tmp$latitude, lon = tmp$longitude) if(is.na(res$lat)){ tmp <- geocode(paste(x, "España")) res$lat <- tmp$lat res$lon <- tmp$lon } res }) # Pobre Logroño: ¡Cartociudad lo ubica en Asturias! coords.logrono <- geocode("Logroño") coordenadas$lat[coordenadas$ciudad == "Logroño"] <- coords.logrono$lat coordenadas$lon[coordenadas$ciudad == "Logroño"] <- coords.logrono$lon Construcción de la matriz simétrica de distancias (¡tarda un buen rato!): ...

20 de junio de 2016 · Carlos J. Gil Bellosta

Evolución histórica de la deuda del ayuntamiento de Madrid

Una de las cosas de las que me acuerdo de cuando leía es un parrafito de Mi idolatrado hijo Sisí en el que Delibes ponía en la boca no sé si de alguno de sus protagonistas o del narrador en el que se daba cuenta de la anormalidad histórica que supuso el tiempo de la II República: de repente, la gente hacía cosas que nunca había hecho y que nunca había vuelto a hacer: hablar a todas horas y con todo el mundo de política. La política entraba en los círculos de amigos, en la sobremesa de las familias, etc. ...

17 de junio de 2016 · Carlos J. Gil Bellosta

Metropolis-Hastings en Scala

Tengo la sensación de que un lenguaje funcional (como Scala) está particularmente bien adaptado al tipo de operaciones que exige MCMC. Juzguen Vds. Primero, genero datos en R: datos <- rnorm(500, 0.7, 1) writeLines(as.character(datos), "/tmp/datos.txt") Son de una normal con media 0.7. En el modelo que vamos a crear, suponemos conocida (e igual a 1) la varianza de la normal y trataremos de estimar la media suponiéndole una distribución a priori normal estándar. Y con Scala, así: ...

16 de junio de 2016 · Carlos J. Gil Bellosta

Distribuciones sin media: ¿qué pueden suponer en la práctica?

Aunque esta entrada es sin duda resabida de los más de mis lectores, quedarán los que aún no sepan que ciertas distribuciones no tienen media. Condición necesaria para que una distribución la tenga es que $$ \int_{-\infty}^\infty |x| f(x) dx$$ tenga un valor finito, cosa que, por ejemplo, no cumple la de Cauchy. Igual hay a quien esto le parece una rareza matemática, un entretenimiento de math kiddies sin implicaciones prácticas. Además, porque para que la integral anterior diverja se necesita que las distribuciones puedan tomar valores arbitrariamente altos y las que se manejan en la práctica están acotadas si no por el número de átomos del universo por el de céntimos de bolívar venezolano necesarios para comprar todas las cosas que caben en el ancho mundo. ...

15 de junio de 2016 · Carlos J. Gil Bellosta