Estadística

Mezclas y regularización

Cuando mezclas agua y tierra obtienes barro, una sustancia que comparte propiedades de sus ingredientes. Eso lo tenía muy claro de pequeño. Lo que en esa época me sorprendió mucho es que el agua fuese una mezcla de oxígeno e hidrógeno: ¡era muy distinta de sus componentes!

Porque no era una mezcla, obviamente. Era una combinación. En una combinación emergen propiedades inesperadas. Las mezclas, sin embargo, son más previsibles.

Pensaba en esto mientras escribía sobre la regularización de modelos (ridge, lasso y todas esas cosas). La regularización puede interpretarse como una mezcla de dos modelos: el original y el nulo (con todos los coeficientes iguales a cero). El modelo original tiene poco sesgo y mucha varianza; el nulo, prácticamente nada de varianza y muchísimo sesgo. El regularizado queda a medio camino. El original tiene varios, tal vez muchos, grados de libertad mientras que el nulo, ninguno (¿o uno?); puede considerarse que el número de grados de libertad del regularizado queda a medio camino.

Quienes ignoran la estadística están condenados a reinventarla

Esa frase la he pronunciado en alguna ocasión y no sé si la habré escrito en este blog. La reescribo porque hace apenas unas horas he leído un artículo en el que un tipo ha redescubierto el partial pooling (quien lo ignore lea esto urgentemente). Claro, proponía unas cosas tan raras como ocurrentes que se reducían en la estrategia que he contado: tengo cierta intuición de una idea genial que no llego a aprehender enteramente y procedo a moverme dando tumbos y a golpe de ocurrencias en la difusa dirección en la que parece apuntar.

offset, porque el coeficiente es 1 necesariamente

Estos días me han preguntado sobre un modelo lineal tal que $latex y \sim x_1 + \dots$ donde el coeficiente de $latex x_1$ no se entiende si no es igual a 1. Es como si los datos se creasen de la forma

n <- 100
x1 <- rnorm(n)
x2 <- rnorm(n)
y <- x1 + rnorm(n, .1) + .02 * x2

y se conociese el coeficiente de $latex x_1$ y no el de $latex x_2$. Entonces no tiene sentido plantear el modelo

lm(y ~ x1 + x2)

sino más bien

Entre lo fofo y lo hierático,modelos loglineales

El contexto, por fijar ideas, el problema de taguear fechas en textos.

La estrategia gomosa, fofa (ñof, ñof, ñof), y en la que parecen parecer creer algunos, embeddings más TensorFlow.

La estrategia hierática, inflexible y reminiscente de robots de pelis de serie B, expresiones regulares encadenadas con ORs.

En la mitad donde mora la virtud, extracción de features (principalmente con expresiones regulares) y luego, esto.

Nota: esta entrada es un recordatorio para mí mismo y por si retorna cierto asunto que dejé postergado hace un par de días.

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

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

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.