Modelos log-lineales y GLMs con regularización

Hace años tomé el curso de NLP de M. Collings en Coursera (¡muy recomendable!), uno de cuyos capítulos trataba de los llamados modelos loglineales. En esto, Collings sigue una nomenclatura un tanto personal porque la mayor parte de la gente se refiere con ese nombre a algo que no es exactamente lo mismo (y dentro del mundo de las tablas de contingencia).

El otro día, sin embargo, me pensé que los modelos loglineales à la Collings me serían muy útiles para un problema de clasificación en el que estamos trabajando. Y repasándolos… me di cuenta de que eran versiones de algo ya conocido: GLMs multinomiales con regularización. Sí, como estos.

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

Charlatanes y regulación

Así resumen sus autores Regulation of Charlatans in High-Skill Professions:

We study a market for a skill that is in short supply and high demand, where the presence of charlatans (professionals who sell a service that they do not deliver on) is an equilibrium outcome. We use this model to evaluate the standards and disclosure requirements that exist in these markets. We show that reducing the number of charlatans through regulation decreases consumer surplus. Although both standards and disclosure drive charlatans out of the market, consumers are worse off because of the resulting reduction in competition amongst producers. Producers, on the other hand, strictly benefit from the regulation, implying that the regulation we observe in these markets likely derives from producer interests. Using these insights, we study the factors that drive the cross-sectional variation in charlatans across professions. Professions with weak trade groups, skills in larger supply, shorter training periods and less informative signals regarding the professional’s skill, are more likely to feature charlatans.

vecpart: modelización de moderadores con árboles

En un GLM (aún más generalizado que la G de las siglas) puede haber coeficientes moderados. Usando una terminología muy ad hoc, en el modelo pueden entrar predictores y moderadores. Lo cual quiere decir que la parte lineal puede ser de la forma

$$\sum_i X_i \beta_i(Z_i),$$

donde las $latex X_i$ son los predictores propiamente dichos y las variables $latex Z_i$ son moderadoras, es decir, que modifican el efecto de los predictores a través de una función arbitraria $latex \beta_i$.

Modas y fotogenia del código secuencial

R

Este tipo de programación se puso de moda en los noventa:

Y yo decía: ¿dónde están mis bucles? ¿Y mis bifurcaciones?

Este tipo de programación está de moda últimamente:

hourly_delay <- flights %>%
  filter(!is.na(dep_delay)) %>%
  group_by(date, hour) %>%
  summarise(
    delay = mean(dep_delay),
    n = n() ) %>%
  filter(n > 10)

Y todo bien, sí, pero sigo sin tener bucles o bifurcaciones.

Tal vez no hagan falta. Al menos, para cosas de andar por casa. Pero, lo confieso, el código de verdad que escribo está lleno de casos especiales, comprobaciones de todo tipo de contingencias, reglas que aplican a unas columnas sí y otras no, objetos complejos (p.e., listas), que se van rellenando de una u otra manera dependiendo de las opciones del usuario y otras enojosas coyunturas muy reñidas con la elegancia.

Una cosa buena, una cosa mala

Que son la misma: esta.

Comienzo por lo malo: ¿realmente necesitamos 17+1 INEs publicando la vistas de la misma información a través de 17+1 APIs, 17+1 paquetes de R y (17+1)*N mantenedores y desarrolladores?

Lo bueno: tiene buena pinta y es encomiable tanto el esfuerzo de los autores como su vocación de servicio público.

Nota: Espero que no enfaden demasiado el 50% de los juicios que he emitido a quien me ha enviado el enlace para su evaluación y posible difusión. Sepa que lo tengo en grande estima y que me consta responsable de mucho de la parte buena y casi nada de la mala.

Sr. Python, muchas gracias por su candidatura; ya le llamaremos cuando... tenga modelos mixtos

Era casi todavía el siglo XX cuando yo, desesperado por hacer cosas que consideraba normales y que SAS no me permitía, pregunté a un profesor por algo como C pero para estadística. Y el profesor me contó que conocía a alguien que conocía a alguien que conocía a alguien que usaba una cosa nueva que se llamaba R y que podía servirme.

Fue amor a primera vista, pero esa es otra historia. La relevante aquí es que volví a hablar con aquel profesor para agradecerle el consejo y, de paso, le pregunté que por qué no lo usaba él. Me contestó que porque en R no había modelos mixtos (aunque nlme es anterior, del 99; ¡a saber en qué estado se encontraba entonces!).

AUC = Wilcoxon

Construyo unos datos,

n <- 30
si <- data.frame(res = "si",
    score = rnorm(n, 1, 1))
no <- data.frame(res = "no",
    score = rnorm(n, 0, 1))
dat <- rbind(si, no)

que simulan los scorings de un modelo hipótetico en el que comparo unos casos positivos y otros negativos.

Comparo con el test de Wilcoxon el scoring según la etiqueta y normalizo (adecuadamente):

test <- wilcox.test(score ~ res, data = dat)$statistic
test / n^2

Por otro lado calculo el AUC:

library(pROC)
my_roc <- roc(dat$res, dat$score)
auc(my_roc)

¡Lo mismo!

Motivo: ambas expresiones dan la probabilidad de que el scoring de un sí elegido al azar sea superior al de un no elegido también al azar. Cosa que está superdocumentada en el ancho mundo.

Ya, pero ¿es viable un fact check descentralizado? Entonces, ¿qué hacer?

Me llegó ayer por Twitter lo siguiente:

Lo había publicado alguien que no conocía y retuiteado (por eso me alcanzó) una persona que sigo porque me consta que sabe de unos temas pero que ignoro en qué medida está puesta en los geopolíticos y la historia económica de las naciones del mundo.

Los datos llaman la atención: son interesantes y no obvios. Pero sabemos que la intersección de lo intersante, no obvio y cierto es prácticamente el conjunto vacío. Por lo que hay una alta probabilidad de que esos datos de presunto origen en el IMF y los muy adictos al Excel (y a meter la pata con él) Rienhart & Rogoff hayan sido embellecidos.

Taxis (y su huelga) y tráfico (en Madrid)

El tráfico (rodado) en una ciudad grande (como Madrid) es un sistema complejo.

Los sistemas complejos buscan equilibrios. Un ecosistema es un sistema complejo en el que los corzos comen hierba y los lobos comen corzos. El número de corzos y zorros se autodetermina mutuamente (¿Lotka-Volterra?). De tal manera, además, que siempre están en el límite de la supervivencia: es el hambre y la necesidad la que regula las poblaciones. Hobbes diría que la vida en un sistema complejo es desagradable, brutal y corta.