Estadística

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.

Sobre la tesis de Sánchez (y no es lo que se espera de mí)

Me preguntaron mucho (antes de los últimos seis o siete circos mediáticos) sobre la tesis de Sánchez, cuando estaba en el candelabro. La bajé, la leí en parte (muchas de las páginas más infumables en diagonal, lo reconozco) y me centré en la parte estadística.

Que es un completo despropósito: es una especie de apéndice que no se usa en el resto del texto, una suerte de añadido para darle una mínima pincelada de matematicidad a la cosa. Hay unas correlaciones basadas en unas pocas observaciones elevadas a la categoría de causalidad; unas regresiones lineales que tienen pinta de haber sido calculadas con Excel; una huérfana fórmula en algo que parece $\LaTeX$ que no tiene que ver con el contexto (parece tomada de algún sitio donde se hablaba de otra cosa), etc. Todo eso (pero nada aprovechable) hay.

NMDS y un poquito más allá

Nunca he sido muy partidario de esas técnicas a medio camino entre lo descriptivo (con descripciones que apenas nadie entiende) y lo inferencial (con inferencias que pocos se creen). Entre ellas, MDS (multidimensional scaling). Pero este fin de semana y por exigencias del guión (¿se acentúa guión aún?) he tenido que replicar unos análisis en que se usaba NMDS a la vegan.

Seré breve y me limitaré a definir el problema, enlazar una referencia con código y una discusión mejor que la mía y a mostrar una de las representaciones que uno podría llegar a construir.

Reglas de "scoring" impropias: un ejemplo

Todo lo que he venido escribiendo sobre reglas de scoring propias vino en el fondo motivado por Damage Caused by Classification Accuracy and Other Discontinuous Improper Accuracy Scoring Rules, una entrada en el blog de Frank Harrell en la que se discute el siguiente caso:

  1. El tipo simula unos datos para ser ajustados mediante una regresión logística (de manera que conoce la verdad subyacente).
  2. Construye varios modelos alternativos para ajustarlos.
  3. Utiliza varios scorings distintos para seleccionar el mejor modelo.

Uno de los scorings elegidos es el accuracy (es decir, el número de observaciones correctamente clasificadas). Pero resulta que este criterio, contra lo que cabría esperar, prefiere un modelo distinto del óptimo.

Scorings: interpolando (y extrapolando) entre el de Brier y el lineal

Rápidamente y para poner el limpio unas cosas que tenía en borrador. El scoring lineal del que me he ocupado en entradas anteriores (p.e., esta o esta) está asociado a un exponente $latex \lambda = 1$ y el de Brier, a $latex \lambda = 2$. Entre ambos (y a la derecha del 2) hay otros scorings posibles.

Una penalización de $latex (1-p)^\lambda$ (véanse las entradas enlazadas más arriba para averiguar a qué me refiero), un predictor tiene un incentivo para modificar su predicción para alcanzar un scoring más alto, salvo en el caso en que $latex \lambda = 2$, en el que le compensa ser lo más sincero posible.

Cointegración: un modelo generativo

[Esta entrada tiene que ver con una nueva manía que he adquirido con la edad: construir modelos generativos para esos modelos explicados siempre de una manera sumamente críptica.]

La cointegración es una relación muy particular entre dos (o más) series temporales. Una de ellas, $latex x_t$ puede ser cualquiera. Tanto da. Vamos a construir la cointegrada, $latex y_t$. Para ello, primero, necesitamos una serie más, una serie estacionaria, p.e., $latex \nu_t$. Puede ser un ruido blanco, pero también una serie ARMA cualquiera (aunque siempre estacionaria). Por ser estacionaria, la serie $latex \nu_t$ no se aleja nunca demasiado de su valor medio, que podemos suponer cero.

Mejores predictores: un ejemplo (el de Brier)

La entrada de hoy casi me la escribe un comentarista (al que le estoy muy agradecido) ayer. Retomo el tema.

Ayer premiaba a cada predictor con $latex p(X)$, es decir, le daba $latex p$ punticos si ocurría $latex X$ y $latex 1-p$ punticos sin no ocurría. La cosa no cambia si nos alineamos con lo que está escrito por ahí y en lugar de premiar, penalizamos. Es decir, si en lugar de maximizar $latex p(X)$, buscamos minimizar $latex 1 - p(X)$. Nada cambia.