Madrid

La magnitud de la sequía

Cuando tienes una serie temporal al uso (sin entrar a definir qué es eso), uno puede aplicar descomposiciones tmabién al uso, como stl, para extraer tendencia y estacionalidad, de la forma

como en esta entrada previa.

Lluvia.

La serie de la lluvia es otra cosa. Uno ve si llueve o no llueve (típicamente no). Lo que uno no ve es la probabilidad, que varía a lo largo del año, de que llueva. Pasa lo mismo con monedas (uno ve caras o cruces, no la probabilidad de cara), clientes que compran (uno ve si compra o no, no la probabilidad de compra), etc. Pero la probabilidad existe y en estimarla consiste frecuentemente el trabajo de algunos.

Más sobre correlaciones espurias y más sobre correlación y causalidad

Hoy toca esto:

Se trata de una invitación para leer el artículo Los picos de contaminación coinciden con un aumento radical en los ingresos hospitalarios, un cúmulo de desafueros epilogados por el ya habitual

Los resultados de esta investigación tienen puntos en común con la metodología científica aunque en ningún momento tendrán la misma validez ni tampoco es su intención que la tenga.

Bus al norte, bus al sur

El día 2017-09-20 hubo gente que tomó el autobús en Madrid. Se montó en una determinada parada y la siguiente estaba situada o bien al norte o bien al sur de la anterior.

He contado, por horas, cuánta gente viajó en ese primer tramo, hacia el norte y quién lo hizo hacia el sur y he obtenido

que es —al contrario de los resultados presuntamente basados en datos pero, en el fondo ideológicamente sesgados con los que nos quieren tan frecuentemente vender motos— totalmente compatible con lo que todos los que nos movemos por Madrid sabemos.

Dizque al sexto mes... pero ¿y los datos?

He leído esto, que trata de lo distinta que es

a la izquierda y a la derecha de la línea roja punteada.

La historia contada desde las posterioris basadas en datos difiere de la apriorística (recordad: ideología = priori). En concreto

Reconoceréis una aplicación de causalImpact y lo que significa el gráfico está comentado en todas partes.

Código y datos, por mor de la reproducibilidad, aquí.

Me siento mal porque han sido muy majos conmigo y ahora no sé qué hacer con lo que me han mandado

Recibo esto en mi correo electrónico:

RESOLUCIÓN DE LA GERENTE DE LA EMPRESA MUNICIPAL DE LA VIVIENDA Y SUELO DE MADRID S.A. POR LA QUE SE ADMITE PARCIALMENTE LA SOLICITUD DE ACCESO A LA INFORMACIÓN PÚBLICA EN EL EXPEDIENTE NÚM. 213/2017/00294

ANTECEDENTES DE HECHO

PRIMERO.- Con fecha de entrada en el registro del Ayuntamiento de Madrid 16 de abril de 2017 y núm. de anotación 2017/0367535, se ha recibido solicitud formulada al amparo de la Ley 19/2013, de 9 de diciembre, de transparencia, acceso a la información pública y buen gobierno (LTAIP en adelante) por D Carlos Javier Gil Bellosta en la que solicita:

Avisos recibidos, avisos resueltos y la creciente suma acumulada

El ayuntamiento de Madrid publica información (desde 2015) de los avisos recibidos por los ciudadanos a través de los distintos canales puestos a su disposición (010, LineaMadrid, la app, etc.).

He bajado los datos y he pintado

que es la suma acumulada de la diferencia entre los avisos entrantes y los resueltos día a día usando

library(data.table)
library(xts)

recibidos <- rbindlist(lapply(dir(pattern = "recibi"), fread))
resueltos <- rbindlist(lapply(dir(pattern = "resu"), fread))

recibidos.fecha <- recibidos[, .(n.recibidos = .N), by = "FECHA_DE_RECEPCION"]
resueltos.fecha <- resueltos[, .(n.resueltos = .N), by = "FECHA_DE_RECEPCION"]

ambos <- merge(recibidos.fecha, resueltos.fecha)

ambos$fecha <- as.Date(ambos$FECHA_DE_RECEPCION, format = "%d/%m/%Y")
ambos$FECHA_DE_RECEPCION <- NULL

ambos <- ambos[order(ambos$fecha),]
ambos$pendientes <- cumsum(ambos$n.recibidos - ambos$n.resueltos)

tmp <- xts(ambos$pendientes, order.by = ambos$fecha)
plot(tmp, main = "Avisos pendientes en Avisa Madrid (010, etc.)" ,
        ylab = "cola de pendientes")

Comentarios:

El extraño y extremoso caso de los empleados fantasma de Galapagar

El planteamiento:

Su versión larga exige leer El misterio de los 2.875 empleos nuevos de Galapagar.

La versión corta: en Galapagar, un pequeño municipio de la provincia de Madrid, el número de afiliados a la Seguridad Social crece súbita, inopinada e inexplicablemente en casi 3000 personas (50% de incremento).

El nudo:

Comienzan a progarse teorías conspiranoicas. Léanse los comentarios a la noticia anterior. La gente piensa que hay gato encerrado.

El desenlace:

Datos abiertos y farolas solares: más motivos para el escepticismo

La semana pasada hice constar mi escepticismo acerca del poder transformativo de los datos abiertos. Mencionaba dos ámbitos en los que existen datos no solo abiertos, sino abundantes y en tiempo real: el de los deportes y el de las finanzas. Y cómo, a pesar de ello, seguimos siendo, como sociedad, mendrugos tanto en lo deportivo como en lo financiero.

Valga un tercer caso que dispongo a exponer.

Tenemos igualmente datos abiertos, abundantes y en tiempo real de producción y consumo eléctrico y de su mix, i.e., qué tecnologías y combustibles se usan hora a hora. La gran lección que nos cuentan es:

Daré una charla en el Betabeers Madrid (especial OpenData)

Es el 16 de marzo (de 2017), es decir, el jueves que viene y estaré muy bien acompañado, como puede comprobarse en el programa.

Aunque aún no indique ahí de qué hablaré, tengo la presentación hecha a falta, únicamente del título. Adelanto únicamente que el contenido está muy condicionado por lo que rematará la reunión, una mesa redonda sobre los datos abiertos en Madrid.

"Todas" las terrazas de Madrid

es un mapa en el que, en rojo, figuran todas (véase la coda) las terrazas de Madrid. Los datos están extraídos del censo de locales, sus actividades y terrazas de hostelería y restauración del ayuntamiento y están procesados con

terrazas <- fread("http://datos.madrid.es/egob/catalogo/200085-17-censo-locales.txt")
terrazas$coordenada_x_local <- as.numeric(gsub(",", ".", terrazas$coordenada_x_local))
terrazas$coordenada_y_local <- as.numeric(gsub(",", ".", terrazas$coordenada_y_local))
tmp <- terrazas[terrazas$coordenada_x_local > 1000, ]
tmp <- terrazas[terrazas$coordenada_y_local > 3e6,]

# UTM a siglo XXI
library(rgdal)
terrazas.utm     <- SpatialPoints(
    cbind(tmp$coordenada_x_local,
    tmp$coordenada_y_local),
    proj4string=CRS("+proj=utm +zone=30"))
terrazas.latlong <- spTransform(terrazas.utm,
    CRS("+proj=longlat"))

library(ggmap)
madrid <- get_map("madrid", zoom = 12)
tmp <- as.data.frame(terrazas.latlong)
ggmap(madrid) + geom_point(
    aes(x = coords.x1, y = coords.x2),
    data = tmp, size = .5,
    col = "red", alpha = 0.3)

Sobre las cursivas de todas: