Cómo organizar un proyecto de análisis de datos: primeros pasos

Esta es una entrada básica orientada a quienes comienzan en el mundo del análisis de datos y se enfrentan a uno de sus primeros retos en solitario. Contiene consejos que no son de aplicación universal, dependen del contexto y están sometidos a revisión y adecuación a las circunstancias concretas. Cada maestrillo tiene su librillo y esta es una versión simplificada del mío.

Un proyecto vive un directorio

Un proyecto vive en un directorio. Proyecto nuevo, directorio nuevo. Con un nombre que lo identifique adecuadamente, etc. Importante: ¡sin espacios en el nombre! (Utilizar espacios en el nombre de directorios y ficheros es, aparte de enojoso en sí mismo, fuente de problemas; afortunadamente, es trivial evitarlos: nunca espacios en el nombre y ya.)

NannyML: ¿estima realmente la bondad de un modelo sin grupo de control?

Imaginemos que tenemos un modelo para resolver un problema de clasificación binaria. Supongamos, sin pérdida de generalidad (cámbiese lo que haya de cambiarse), que se trata de un árbol.

Ese árbol se entrena con datos Madrid y define $K$ grupos (nodos terminales) $G_1, \dots, G_K$ donde la probabilidad de acertar —estimada usando algún conjunto de validación— es $p_1, \dots, p_K$. Además, se conoce el tamaño $n_i$ de los grupos $G_i$ en Madrid.

CRPS

Hoy toca hablar del CRPS, o continuous ranked probability score, que es un tipo particular de scoring y que se usa para lo que se usan los scorings: comparar modelos y predicciones.

Imaginemos que alguien quiere predecir un determinado valor y que como no es un patán, tiene la gentileza de proporcionar la distribución del valor esperado (p.e., una $N(a, b)$). Resulta que el valor observado es $x_o$.

¿Cómo de buena es esa predicción? En principio, cuando más probable sea $x$ en términos de la función de probabilidad de la predicción, mejor será dicha predicción. Así que $p(x_o)$ —donde $p$ es la función de densidad de la predicción— podría ser un buen scoring. En la práctica se usa una versión de la anterior, $\log(p(x_o))$, pero viene a ser lo mismo.

Log scoring = máxima verosimilitud

Hay dos técnicas en estadística que son una sola. Pero como se usan en contextos aparentemente distintos, tienen una historia diferente, se tratan con un lenguaje particular, posiblemente en asignaturas de distinto año, etc. y nadie se ha molestado en tender puentes, se consideran, prácticamente inconmensurables cuando, en el fondo, son la misma cosa.

Me refiero al llamado log scoring (para seleccionar entre modelos) y el principio de la máxima verosimilitud.

Algunos números sobre el cambio climático: servicios en la nube

Hay un reciente artículo en El País, Tu día a día en internet contamina al año tanto como un viaje en coche de más de 1.000 kilómetros, que es todo un ejercicio de valentía por parte de su autor: se enfrenta a la bestia parda de los periodistas que no es otra cosa que el de la correcta gestión de los órdenes de magnitud.

El titular, como se verá, es una sobrestimación (como poco, de un orden de magnitud); la entradilla, que dice

Cómo se calcula (vs cómo podría calcularse) la inflación

En resumidas cuentas, el INE calcula la inflación asi:

  1. A partir de la encuesta de presupuestos familiares, crea una cesta típica de productos.
  2. A partir de “datos de campo” evalúa la variación de los precios que forman parte de esa cesta de productos.

Comentarios:

  • Esa cesta de productos cuya evolución se sigue sería la que adquiriría una familia idealizada que no existe en absoluto. Por ejemplo, esa cesta puede sugerir que la familia idealizada consume un 0.1% de su presupuesto anual en comida de perros. Pero nadie consume un 0.1% de su presupuesto anual en eso: quienes tengan perro gastarán mucho más; los que, no, nada.

El principio de mediocridad como instrumento para estimar duraciones

Esta entrada trata de explicar cómo utilizar el llamado principio de mediocridad para la estimación de la duración de cosas cuando apenas se sabe nada al respecto. En ese sentido, extiende y fundamente lo que puede leerse aquí.

Planteamiento

Consideremos el conjunto $A$ de todos los pares de números (reales, que todo hay que decirlo) $0 < a < b$.

En todo lo que sigue, $b$ se interpretará como la duración total de algo (la existencia de la especie humana, el número de semanas que una obra teatral estará en cartel, etc.) y $a$ el momento en el que un observador ha contemplado la existencia de ese algo.

Si yo fuera rey, ¿cómo serían las encuestas electorales?

El otro día —más bien, aquel día en el que tomé las notas que uso en esta entrada— hubo elecciones regionales en Castilla y León. Durante las semanas anteriores se publicaron los resultados de una serie de encuestas electorales al uso, similares a estos:

Es decir, información típicamente cuantitativa.

Cerraron los colegios electorales, se contaron los votos y al día siguiente la prensa comenzó a discutir una serie de temas cualitativos muy concretos: si cierto partido había incrementado/reducido su número de votos, si tal otro había desaparecido o no, si el ganador habría de necesitar algún tipo de acuerdo, etc. Incluso a nivel provincial, pueden emerger otras, como si cierto partido va a lograr ese escaño que casi siempre se le escapa; si aquel otro partido va a quedarse, como siempre, sin representación, etc.

Causalidad e individualismo metodológico

Frecuentemente, se postulan y estudian relaciones causales del tipo

donde, por simplificar, se han eliminado las variables de confusión, etc. para mostrar su versión más estilizada, la que acaba en los abstracts.

Frecuentemente, además, $C$ y $E$ hacen referencia a magnitudes macro: una campaña de publicidad y los ingresos; una medida económica y el PIB; la presión y el volumen de un gas, etc. Todos sabemos que en esos casos, el diagrama anterior es solo una manera abreviada de representar el verdadero diagrama causal,

WGS84 vs ETRS89 vs ED50 vs Madrid 1870

En esta entrada voy a comparar los sistemas de coordenadas WSG84, ETRS89, ED50 y el vetustísimo Madrid 1870. Además, lo voy a hacer mal y luego voy a explicar no solo por qué sino por qué no es culpa mía.

Primero, las coordenadas de Sol (el Kilómetro 0, para ser más precisos) en WGS84 (EPSG:4326):

library(sf)
options(digits = 10)
sol_wsg84 <- st_sfc(st_point(
    c(40.416634493768065, -3.703811417868093)),
    crs = 4326)
st_coordinates(sol_wsg84)
#             X            Y
# 1 40.41663449 -3.703811418

Ahora, en ETRS89 (EPSG:4258):