Goodhart, Lucas y márketing

Abundo sobre lo de ayer. Una empresa clasifica a sus clientes y los asigna a grupos: malotes, estrella, psepsé, etc. Examina las características de los clientes estrella y entonces reorienta su política comercial en la siguiente dirección: Tratemos de que nuestros clientes infraóptimos asuman formalmente las características formales de aquellos que más nos gustan. En gran medida, según lo discutido ayer, el principal logro de ese tipo de políticas es la de debilitar el vínculo entre esas características identificadas por los modelos y la rentabilidad de los clientes. ...

13 de noviembre de 2018 · Carlos J. Gil Bellosta

Goodhart, Lucas y todas esas cosas

Como me da vergüenza que una búsqueda de Goodhart en mi blog no dé resultados, allá voy. Lo de Goodhart, independientemente de lo que os hayan contado, tiene que ver con es decir, un gráfico causal hiperbásico. Si la variable de interés y es difícil de medir, resulta tentador prestar atención a la variable observable x y usarla como proxy. Todo bien. Pero también puede interesar operar sobre y y a cierta gente le puede sobrevenir la ocurrencia de operar sobre x con la esperanza de que eso influya sobre y. ...

12 de noviembre de 2018 · Carlos J. Gil Bellosta

Creación de "secuencias" con redes neuronales recurrentes

Secuencias como pueden crearse con redes neuronales recurrentes como las que se describen en Generating Sequences With Recurrent Neural Networks.

9 de noviembre de 2018 · Carlos J. Gil Bellosta

¿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.

8 de noviembre de 2018 · Carlos J. Gil Bellosta

Cuando oigáis que los algoritmos discriminan, acordaos de esto que cuento hoy

Generalmente, cuando construyes uno de esos modelos para clasificar gente entre merecedores de una hipoteca o no; de un descuento o no; de… vamos, lo que hacen cientos de científicos de datos a diario, se utilizan dos tipos de fuentes de datos: individuales y grupales. La información grupal es la que se atribuye a un individuo por el hecho de pertenecer a un sexo, a un grupo de edad, a un código postal, etc. Típicamente tiene una estructura seccional (invariante en el tiempo). ...

7 de noviembre de 2018 · Carlos J. Gil Bellosta

¿Qué hay de malo en gorronear investigación básica?

El artículo Endogenous Technological Change de Paul Romer (nóbel de economia de este año) ofrece algunas pistas sobre la relación entre investigación (o I+D o como quiera llamarse) y desarrollo económico. En él se lee (con mi subrayado): Rivalry and excludability are closely linked because most rival goods are excludable. (A parking space in a shopping center parking lot is an example of a good that is effectively nonexcludable because the cost of enforcing excludability is too high relative to the value of the good.) The interesting case for growth theory is the set of goods that are nonrival yet excludable. The third premise cited in the Introduction implies that technology is a nonrival input. The second premise implies that technological change takes place because of the actions of self-interested individuals, so improvements in the technology must confer benefits that are at least partially excludable. The first premise therefore implies that growth is driven fundamentally by the accumulation of a partially excludable, nonrival input. ...

6 de noviembre de 2018 · Carlos J. Gil Bellosta

Cuatro paquetes interesantes de R

Son paquetes que he marcado como potencialmente relevantes pero que aún no he revisado como debiera. Tal vez alguien tenga algo más que decir sobre ellos. Tiene los comentarios, por supuesto, abiertos. longRPart2: Particionamiento recursivo para modelos longitudinales. Extiende ctree y, por supuesto, mob del paquete party a datos de tipo longitudinal. radiant: Más que un paquete, es un conjunto de paquetes para business analytics usando R y Shiny. Ni idea de para qué parte de ese amplio campo del business analytics puede resultar útil, pero si resulta que es precisamente el tuyo, ¡enhorabuena! survivalAnalysis: Promete una sintaxis homogénea y coherente para todo lo que tiene que ver con el análisis de la supervivencia. No sé si lo consigue o no, pero R está falto de este tipo de metapaquetes que den uniformidad a la sintaxis, muchas veces extravagante, con la que los desarrolladores de paquetes tan a menudo maltratan a sus usuarios. IPSUR: Es el paquete que acompaña al libro (libremente disponible) del que el nombre del paquete es acrónimo: Introduction to Probability and Statistics Using R.

5 de noviembre de 2018 · Carlos J. Gil Bellosta

Las tres culturas (en LUCA)

Ayer salió publicada una entrada de blog mía en LUCA, i.e., aquí. Pero vamos, como si la hubiese escrito aquí. Nota: La ortotipografía (particularmente del título de la entrada) no fue cosa mía.

1 de noviembre de 2018 · Carlos J. Gil Bellosta

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… ...

31 de octubre de 2018 · Carlos J. Gil Bellosta

Datos anchos y largos (y otras cosas relacionadas con Stan)

Hay una discusión imperdible sobre datos anchos y largos (y modelos con y sin estructura) a partir del minuto 4:20 de https://www.youtube.com/watch?v=VnNdhsm0rJQ El resto también vale muchísimo la pena.

30 de octubre de 2018 · Carlos J. Gil Bellosta