Embalses en España: otro ejercicio inconcluso de "web scraping"

R

Vi el otro día que alguien había conseguido datos de la entrada en funcionamiento de las presas de EE.UU. y me picó la curiosidad: ¿se podrán conseguir también para España?

La respuesta es afirmativa.

El código para bajarse (y adecentar un poco) la base de datos es:

library(XML)

## bajada de datos
tmp <- lapply(1:47,
                function(x)
                readLines(paste("http://www.seprem.es/presases.php?p=",
                                x, sep = "")))
tmp2 <- lapply(tmp, readHTMLTable)

## limpieza de datos
res <- lapply(tmp2, function(x) x[[1]])
res <- do.call(rbind, res)
res <- res[,-c(1,7)]
res <- res[!is.na(res$V2),]
res <- res[-(1:5),]

res <- data.frame(lapply(res, as.character),
    stringsAsFactors=F)
names(res) <- make.names(as.character(res[1,]))

## filtros de filas
res <- res[res$Nombre != "Nombre",]
res <- res[res$Nombre != "",]
res <- res[!grepl("Presas", res$Nombre), ]
res <- res[!grepl("DIQUE DEL", res$Nombre), ]

colnames(res) <- c("nombre", "vertiente",
    "altura", "hm3", "finalizada")
res <- res[!is.na(res$vertiente),]

## texto a numérico
res$altura <- as.numeric(gsub(",", ".", res$altura))
res$hm3 <- as.numeric(gsub(",", ".", res$hm3))
res$finalizada <- as.numeric(res$finalizada)

## más filtros (se aplican a obras que no son embalses)
res <- res[!is.na(res$hm3), ]

## los embalses en construcción no tienen fecha de
## finalización
res$finalizada[is.na(res$finalizada)] <- 2015

En cuanto a qué hacer con ellos, me limitaré a mostrar la salida de

Todo el mundo habla de cadenas de Markov

Todo el mundo habla últimamente de cadenas de Markov. ¿No os habéis dado cuenta? ¿O seré yo el que saca a relucir el asunto venga o no al caso? Sea que se haya puesto de moda o que esté mi misma obsesión por el asunto sesgando mi impresión sobre sobre (me encanta escribir dos preposiciones seguidas) lo que la gente habla, es el caso que el otro día me comprometí a escribir sobre

¿Cinco años y salen sin programar?

Sí, hay gente que pasa cinco años en una de esas instituciones encopetadas que son las universidades y sale de ellas sin saber programar.

Aquí va un ejemplo. Es un fragmento de un currículo que me ha llegado recientemente. El tipo es economista, graduado en uno de los departamentos de la materia más reconocidos de Madrid. Dice así:

cv_informatica

Eso es todo lo que el tipo reconoce saber sobre algo parecido a la programación.

Una de gráficos casi artísticos con R

Hoy traigo una selección a cuatro páginas en que podréis encontrar gráficos casi artísticos creados con R. En la primera de ellas se construye el fractal de Collatz.

En las dos siguientes, los autores construyen animaciones. Una de ellas para ilustrar el mecanismo de la regresión local y el segundo para crear figuras en 3D.

London

Y el último, trata de mapas. En particular, de cómo sobreimponer sobre ellos datos de rutas.

Aventuras de "web scraping": cómo bajarse todo el BOE

R

Rescato aquí para futura o ajena referencia un pedazo de código que utilicé un día para un proyecto que se abortó y que tenía que ver con el análisis del texto del BOE. Reza así:

setwd("~/boe/boes")

library(RCurl)

h = getCurlHandle()

for( i in 1:3231){
  mi.url <- paste("http://www.boe.es/diario_boe/xml.php?id=BOE-A-2013-", i, sep = "")
  nom.fich <- paste("2013-A-",
    formatC(i, width = 6, format = "d", flag = "0"),  ".xml", sep = "")
  res <- getURI(mi.url, curl = h)
  cat(res, file = nom.fich)
}

for( i in 1:3212){
  mi.url <- paste("http://www.boe.es/diario_boe/xml.php?id=BOE-B-2013-", i, sep = "")
  nom.fich <- paste("2013-B-",
    formatC(i, width = 6, format = "d", flag = "0"),  ".xml", sep = "")
  res <- getURI(mi.url, curl = h)
  cat(res, file = nom.fich)
}

No me preguntéis por qué el contador solo llega hasta tres mil doscientos y pico. O por qué no itero hasta que getURI devuelva un error.

Demasiado simple

La realidad es compleja y los más de los fenómenos son multivariados. Frente a casi cualquier afirmación del tipo A causa B, el detector de pendejadas debería hacer saltar la alarma y hacernos pensar que tal vez sea demasiado simple.

Mi detector de pendejadas tuvo más trabajo del habitual mientras leía Equidad y élite. El artículo, tengo la impresión, elabora sobre los datos

pisa_vs_nivel_educativo_padres

recogidos en este informe del Ministerio de Educación sobre los resultados de PISA para España en 2012. En realidad, no son los resultados de PISA sino de un estudio piloto paralelo sobre una submuestra de la muestra de estudiantes a los que se ha examinado por ordenador y no con el tradicional cuestionario de papel. Insisto: tengo la sensación de que son esos los datos porque el autor del artículo no cita sus fuentes sino vagamente.

Reponderación de componentes: un ejemplo

Esta entrada es la continuación de La escala natural de la varianza. En ella vimos cómo los componentes de un PCA pueden tener un peso que pudiera no guardar relación con su importancia práctica.

Si uno quiere trabajar con las principales componentes de un PCA sobre unos datos, puede que la escala sea irrelevante (p.e., si quiere utilizar modelos lineales). Pero hay casos egregios en los que no sucede así.

Menos econometría y más precioestatos

¿Será necesario un doctorado en econometría para poner una lavadora? Con eso ironiza el autor de El nuevo sistema de precios para la electricidad (I): Entre la tarifa gusiluz y la tarifa batamanta.

Os cuento el contexto.

Al parecer, a partir de cierta fecha no muy remota, el precio de la electricidad en España variará de acuerdo con el precio en el mercado de generación y, por lo tanto, según la hora. Las variaciones podrán ser importantes según el día, el tiempo, etc. De manera que los consumidores no sabrán —salvo que malgasten mucho tiempo consultando algún tipo de servicio de cotizaciones en tiempo real— cuánto les costará poner una lavadora. Y, por lo tanto, tampoco podrán ajustar su consumo al precio. Etc.

Una cosa que me irrita de muchos artículos de estadística

Hay una cosa que encuentro irritante en muchos artículos de estadística. Supongamos que existe una técnica A y que invento una técnica B. Entonces escribo un artículo en el que hablo de A, describo B, pruebo si procede algún teorema y, finalmente, me dispongo a compararlo con A.

Naturalmente, tanto A como B tienen hipótesis de partida: que las observaciones sean iid, que sean normales,…

Lo natural sería crear datos artificiales de acuerdo con las hipótesis subyacentes de A y comparar sobre ellos ambas técnicas. Además, tal vez, crear conjuntos de datos estresados para comparar A y B fuera del área de confort de A. Pero siempre utilizando datos en los que se conoce la verdad, es decir, el nivel de ruido, la intensidad de la señal, la correlación entre las variables, etc. Eso solo se consigue con datos artificiales, creados por nosotros.

@R_Hisp, la cuenta oficial de la Comunidad R Hispano

R

Finalmente, la Comunidad R Hispano dispone de una cuenta oficial en Twitter.

El anuncio público lo realizó Emilio López Cano, miembro de la junta de la asociación y que va a coordinar la cuenta con ayuda de otros voluntarios.

Os animo a seguir esa cuenta para estar al tanto de las novedades de la asociación en la que, como dice Emilio (en el enlace anterior), hay y va a seguir habiendo movimiento.