Números

Hay algo podrido en la microeconomía normativa

Para el normativista (economista o no), lo importante no es como son las cosas sino cómo deberían ser.

En Temporalidad: ¿buenas intenciones con malos resultados? viene a decirse que:

  • La temporalidad laboral es intrínsecamente perversa.
  • Que hay que desincentivarla de alguna manera (p.e., encareciendo los contratos temporales mediante penalizaciones fiscales)

Normativismo at its best. Yo no sé cómo son las cosas. De hecho, siempre espero que gente como los autores del artículo me las expliquen, que describan antes identificar problemas y proponer soluciones. Pero aun sin saber cómo son las cosas, sé cómo son mis cosas.

Si das la regla por buena, enhorabuena, estás usando el sistema d'Hondt

En una circunscripción un partido obtiene $latex N$ votos. Si manda al congreso $latex n$ diputados, cada uno de ellos representaría a $latex N/n$ votantes.

En una circunscripción, una serie de partidos obtienen $latex N_i$ votos. Los primeros $latex j$ diputados del partido $latex i$ representarían a $latex N_i / j$ votantes.

Si la circunscripción manda al parlamento a $latex n$ diputados, tiene sentido enviar a aquellos que representan a más votantes. Si das la regla por buena, enhorabuena, estás usando el sistema d’Hondt.

Los resultados preliminares del experimento finlandés de la renta básica apestan a...

Por si alguien acaba de despertar después de un coma de tres o más años de duración, lo del experimento finlandés de la renta básica y un somero análisis (junto con una serie de conclusiones extravagantes) está descrito aquí.

En resumen, el experimento terminó y se ha redactado un informe preliminar de los resultados (que avisa por todos los lados de que no sirven para nada y que hay que esperar a los definitivos) basados en entrevistas telefónicas (con una tasa de respuesta muy baja) a los beneficiarios del plan (y a unos cuantos que no lo son y que conforman un grupo de control).

d’Hondt vs lm

Se cuestiona Malaprensa (aquí) si con un 12.9% de los votos podría Vox obtener 45 escaños. Precisamente porque es lo que le correspondería con una regla de tres. Pero todo el mundo sabe que entre lo uno y lo otro media la regla de d’Hondt, causa de resabidas distorsiones.

Y, tras realizar las debidas simulaciones, concluye que sí, que es perfectamente posible.

Pero eso es algo que ya sabíamos los que habíamos leído esto, que viene a decir que sí, que por contraintuitivo que parezca, lm atribuye escaños no mal. Para vagos, selecciono:

Sobre la brecha salarial... de belleza

¿Por qué existe un debate público sobre la brecha salarial de género y no sobre la brecha salarial por cualquier otra presunta causa? La hay, p.e., por nivel de estudios. Pero, claro, uno siempre puede argumentar en términos meritocráticos. ¿Por sector económico? Ahí está menos claro y discutirlo nos llevaría muy lejos.

Pero, ¿por qué no ir más allá de las variables registradas por el INE y fijarnos, p.e., en la belleza (física)? Porque parece que brecha, hayla. Diráse que es una medida subjetiva y no refrendada por el registro civil. No como el sexo. Pero si mal no recuerdo, la última vez que alguien fletó un bus naranja para explicarnos que los niños tienen pene y las niñas, vulva, la cosa acabó como el rosario de la aurora.

Un acto fallido: la pregunta sigue, pues, abierta

Jot Down es una publicación recomendable. Aunque frecuentemente peque de a lo que tienden las publicaciones de letras (en el sentido menos amable del término): que prime el escribir bonito sobre la sustancia, el argumento y su coherencia.

El artículo que motiva este se anuncia como Especulación inmobiliaria, tradición centenaria y recoge tres episodios (¿anécdota? ¿categoría?) bien conocidos pero florida y amenamente descritos:

  • El del duque de Lerma a principios del XVII.
  • El del marqués de Salamanca, en el XIX.
  • El que se deriva de la ley del suelo de 1998.

Se habla abundantemente de los aspectos negativos de los tres (recuérdese: de letras). Al tratar el último, el más interesante en términos efectivos, se arrima pero no llega a plantear (y, por supuesto, tratar de dar respuesta a) la pregunta más obvia. Es algo así como si en una película de intriga, en los últimos minutos, tras la escalada de la tensión, en lugar de resolver el misterio e identificar y detener al asesino, cambiase súbitamente el género y una horda de zombis se comiese el cerebro de todos los implicados.

Sentido de la proporción

Es el segundo de los síntomas de naïveté económica discutidos aquí. Que, por supuesto, no se circunscribe a discusiones de naturaleza económica. Recomendadísimo.

¿Siguen votando igual los diputados?

Hace seis años escribí esto. Hoy actualizo aquella entrada para crear

Y, por supuesto, el código (que he tenido que reescribir en gran medida):

library(xml2)
library(reshape2)
library(plyr)

# descarga y manipulación de datos

dia_votacion <- function(n.votacion){
  dir.create("tmp")
  url <- paste("https://app.congreso.es/votacionesWeb/OpenData?sesion=",
                n.votacion, "&completa;=1&legislatura;=12", sep = "")
  download.file( url, destfile = "./tmp/votos.zip")
  try(unzip("./tmp/votos.zip", exdir = "./tmp"), TRUE)

  ficheros <- dir("./tmp", pattern = ".*xml", full.names = T)

  if (length(ficheros) == 0)
    return(NULL)

  res <- lapply(ficheros, function(fichero){

    print(fichero)

    datos <- as_list(read_xml(fichero))

    sesion <- datos$Resultado$Informacion$Sesion
    numero <- datos$Resultado$Informacion$NumeroVotacion

    try(datos <- ldply(datos$Resultado$Votaciones, unlist), TRUE)

    if (class(datos) == "try-error")
      return(NULL)

    if (class(datos) != "data.frame")
      return(NULL)

    if(nrow(datos) == 0)
      return(NULL)

    datos$sesion <- sesion
    datos$numero <- numero

    datos
  })

  unlink("./tmp", recursive = T)      # borra el directorio temporal

  res
}

tmp <- lapply(1:156, dia_votacion)

datos <- tmp[!sapply(tmp, is.null)]
datos <- lapply(datos, function(x) do.call(rbind, x))
datos <- do.call(rbind, datos)

datos$numero <- as.numeric(unlist(datos$numero))
datos$sesion <- as.numeric(unlist(datos$sesion))

datos$asunto <- as.character(1000000 + 1000 * datos$sesion + datos$numero)

datos$ind <- 0
datos$ind[datos$Voto == "No"] <- -1
datos$ind[datos$Voto == "Sí"] <- 1

tmp <- dcast(datos, asunto ~ Diputado, value.var = "ind", fill = 0)
matriz_votos <- as.matrix(tmp[, -1])

rownames(matriz_votos) <- NULL
colnames(matriz_votos) <- NULL

heatmap(matriz_votos, xlab = "Diputados", ylab = "Asuntos", scale = "none")

No sé si alguien querrá sacarle más punta a la no historia de hoy.

Encuesta Social Europea: un cociente

Leo (fuente):

[…] en su comparecencia del año pasado comentó algo sobre un pago al exterior de 174 000 euros, correspondiente a la cuota del consorcio de infraestructuras científicas, ERIC, que, como bien sabe, es el consorcio internacional que se encarga de realizar la encuesta social europea. El año pasado dijo que le preocupaba que 2017 fuese el último año en el que España formase parte de esa encuesta social europea porque teníamos cuota de país invitado y no de socio de la infraestructura, algo que nos parece preocupante. Veo que este año en los presupuestos hay un pago al exterior, pero de menor importe, de 139 000 euros. En este sentido, le quería preguntar si nos han hecho un descuento, una tarjeta de socios, una de país pobre…

Acerca del CIS y la cocina

Escribo hoy acerca del CIS y la cocina de la intención de voto. Lo hago desde la ignorancia informada en esos temas y sin pretensión alguna de ser o parecer más listo que otros.

El CIS realiza unas encuestas (con un muestreo amplio y bien diseñado, cuentan), de las que obtiene, entre otras cosas, una serie de datos, $latex x$ que incluyen simpatía, recuerdo de voto, etc. Existe por otra parte un valor enteléquico, $latex y$, no siempre observable, que conocemos por resultados electorales si se votase hoy o algo parecido. La llamada cocina es simplemente una función $latex f$ tal que $latex \hat{y} = f(x)$ es próxima a $latex y$. Esta función se construye gracias a que históricamente, cada vez que se convocan elecciones, se han observado parejas $latex (x, y)$.

Una anécdota sobre el mercado eléctrico y sus mermas

Hace años, algunos ya, di un curso de R en una empresa de consultoría bastante grande. La impartí dentro de un grupo que desarrollaba soluciones para el mercado eléctrico. Hablando con ellos, a la hora del café, me contaron uno de los proyectos en los que trabajaban: un sistema de optimización de la distribución eléctrica que podía ahorrar millones (no recuerdo bien la cifra, pero era impresionante) a las compañías eléctricas en concepto de energía que se disipaba y perdía sin beneficiar a nadie. Sin embargo, el proyecto no tenía comprador por un muy particular motivo: la legislación del mercado eléctrico obliga a los usuarios finales a compensar a las empresas por esas pérdidas. De modo que si se reducía la pérdida, se reducía igualmente la facturación de las compañías.

Los datos están histogramizados... ¿quién los deshisotogramizará?

Hace un tiempo quise hacer cosas malísimas con datos fiscales de España y Dinamarca. Pero los datos estaban histogramizados:

Gracias a Freakonometrics di con binequality. Adaptando su código, escribo

library(rvest)
library(plyr)

dk <- read_html("http://www.skm.dk/english/facts-and-figures/progression-in-the-income-tax-system")
tmp <- html_nodes(dk, "table")
tmp <- html_table(tmp[[2]])

header <- tmp[1,]
tmp <- tmp[-c(1, 2),]
colnames(tmp) <- header

# elimino declaraciones negativas
tmp <- tmp[-1,]

# elimino el total
tmp <- tmp[-(nrow(tmp)),]

colnames(tmp) <- c("rango", "contribuyentes",
    "X1", "income", "tax1", "tax2", "pct")

irpf_dk <- tmp[, c("rango", "contribuyentes",
    "income", "tax1", "tax2")]

irpf_dk$contribuyentes <- as.numeric(irpf_dk$contribuyentes)
irpf_dk$income <- as.numeric(irpf_dk$income)
irpf_dk$tax1 <- as.numeric(irpf_dk$tax1)
irpf_dk$tax2 <- as.numeric(irpf_dk$tax2)

irpf_dk$tax <- irpf_dk$tax1 + irpf_dk$tax2
irpf_dk$tax1 <- irpf_dk$tax2 <- NULL
irpf_dk$pct <- irpf_dk$tax / irpf_dk$income


irpf_dk$desde <- c(0, 25, 50, 75, 100, 125, 150,
    200, 250, 300, 350, 400, 500, 750, 1000)
irpf_dk$hasta <- c(irpf_dk$desde[-1], Inf)

irpf_dk$desde <- irpf_dk$desde / 7.44
irpf_dk$hasta <- irpf_dk$hasta / 7.44
irpf_dk$income <- irpf_dk$income / 7.44
irpf_dk$tax    <- irpf_dk$tax / 7.44

irpf_dk$mean_income <- irpf_dk$income /
        irpf_dk$contribuyentes * 1000

irpf_dk$rango <- NULL

para bajar y preprocesar los datos y después

El anómalo verano de 2018

Las temperaturas diarias máximas promedio durante el verano de 2018 en España han sido

Son las del trazo grueso y las he representado sobre las de los veranos anteriores (trazo fino) para darles contexto. (Nota: no existe tal cosa como temperatura promedio, por supuesto. He partido de temperaturas provinciales (que tampoco existen, en sí mismas pero que proporciona AEMET) y he promediado ponderando por población.)

Se aprecian dos anomalías claras, una por exceso y otra por defecto.