Análisis de eventos recurrentes

He sido fan del análisis de los eventos recurrentes desde antes incluso de saber que existía tal cosa formalmente. Es una extensión del análisis de la supervivencia donde resucitas y vuelves a morirte a lo Sísifo. Es decir, en el análisis de la supervivencia, te mueres y ya; por eso, si quieres extender el análisis de la supervivencia a asuntos tales como compras de clientes es necesario usar el calzador muy heterodoxamente. ...

2 de diciembre de 2020 · Carlos J. Gil Bellosta

Una herramienta para el análisis no paramétrico de series temporales

Sí, es un ejemplar de mi colección de rarezas estadísticas, técnicas que no entran dentro del currículo estándar pero que pudieran resultar útiles en algún momento, para algún caso particular. Hoy, perfiles matriciales para series temporales, una técnica que sirve esencialmente, para identificar formas que se repiten en series temporales, como Entiendo además que, como consecuencia, también para señalar aquellos ciclos en que se produzcan perfiles anómalos, para su evaluación. Pero dejo que consultéis la información en, por ejemplo, aquí y aquí. ...

17 de septiembre de 2020 · Carlos J. Gil Bellosta

Contrariamente a lo que creía recordar, "Hot deck" != LOCF

Imputación (que es algo en lo que muy a regañadientes estoy trabajando estos días). Si de verdad tienes que imputar datos en una tabla (y solo en ese caso), solo hay un criterio: construye un modelo para predecir los valores faltantes en función del resto y reemplaza el NA por su predicción. El modelo puede ser tan tonto como lm(my_col ~ 1, na.rm = T) que resulta en la popular estrategia de reemplazar los NAs por la media del resto de las observaciones. Cambiando lm por otras cosas funciones más molonas y la fórmula por otras más complejas en que intervengan otras columnas se obtienen métodos más potentes. Se pueden usar GAMs (como en mtsdi) o random forests (como en missForest), pero la idea está clara. Es solo la naturaleza del problema la que nos invita a decantarnos por una u otra opción. ...

3 de septiembre de 2020 · Carlos J. Gil Bellosta

Por supuesto que tengo más variables que observaciones... ¿y?

He intentado replicar los resultados de la entrada de ayer con GAM (vía mgcv) así (véase el enlace anterior para la definición de los datos): library(mgcv) modelo_gam <- gam( y ~ x + s(id, bs = "re"), data = datos, method = "REML", family = "poisson") Y nada: Error in gam(y ~ x + s(id, bs = "re"), data = datos, method = "REML", : Model has more coefficients than data Sí, ya sé que tengo más variables que observaciones. Pero, ¿no es para eso que estoy usando efectos aleatorios? ...

23 de julio de 2020 · Carlos J. Gil Bellosta

Cuidado con la aleatoriedad "pochola"

Abundo sobre mi entrada del otro día. Usando números aleatorios hirsutos, n <- 200 x <- runif(n) plot(cumsum(x - .5), type = "l") produce mientras que library(randtoolbox) s <- sobol(n, 1, scrambling = 3) plot(cumsum(s - .5), type = "l") genera que tiene un cariz totalmente distinto.

15 de junio de 2020 · Carlos J. Gil Bellosta

Aleatoriedad hirsuta, aleatoriedad pochola

Contemplando y comparando y se me han venido a la mente los adjetivos hirsuto y pocholo para calificar las respectivas formas de aleatoriedad que representan. La primera es el resultado del habitual n <- 200 x <- runif(n) y <- runif(n) plot(x, y, pch = 16) mientras que la segunda exige el más sofisticado library(randtoolbox) s <- sobol(n, 2, scrambling = 3) x <- s[,1] y <- s[,2] plot(x, y, pch = 16) Se ve que Sobol quería rellenar más armoniosamente el espacio. Me temo que, al hablar de aleatoriedad, muchos de nosotros también (p.e., esto).

8 de junio de 2020 · Carlos J. Gil Bellosta

Optimización estocástica

Uno de los proyectos en los que estoy trabajando últimamente está relacionado con un problema de optimización no lineal: tengo un modelo (o una familia de modelos) no lineales con una serie de parámetros, unos datos y se trata de lo que no merecería más explicación: encontrar los que minimizan cierta función de error. Tengo implementadas dos vías: La nls, que usa un optimizador numérico genérico para encontrar esos mínimos. (Nótese que uso nls y no nls porque esa función me queda muy corta). La stan, donde especifico el modelo, introduzco una serie de prioris más o menos informativas según lo que sepa de mi problema y estimo la distribución a posteriori de mis parámetros. Ambas tienen sus ventajas y desventajas. La una es rápida y la otra no; la una me da poca información sobre los parámetros y la otra, mucha; una me permite introducir mucha información a priori y la otra casi nada, etc. ...

22 de mayo de 2020 · Carlos J. Gil Bellosta

CausalImpact me ha complacido mucho

Estoy aquí analizando datos para un cliente interesado en estudiar si como consecuencia de uno de esos impuestos modennos con los que las administraciones nos quieren hacer más sanos y robustos. En concreto, le he echado un vistazo a si el impuesto ha encarecido el precio de los productos gravados (sí) y si ha disminuido su demanda (no) usando CausalImpact y me ha complacido mucho que la salida de summary(model, "report") sea, literalmente, esta: ...

27 de marzo de 2020 · Carlos J. Gil Bellosta

Densidades unidimensionales en R

Es un asunto tangencial que, además, se soluciona las más de las veces con density. Pero parece que tiene mucha más ciencia detrás. Por algún motivo, acabé un día en la página del paquete logspline, que ajusta densidades usando splines. Su promesa es que puede realizar ajustes de densidades tan finos como que está extraído de Polynomial Splines and their Tensor Products in Extended Linear Modeling, el artículo que le sirve de base teórica. El algoritmo subyacente es capaz, como da a entender el gráfico anterior, de graduar la resolución en la determinación de la densidad para representar debidamente tanto las zonas con detalles finos sin difuminarlos como las regiones más aburridas sin crear irregularidades espurias. ...

26 de marzo de 2020 · Carlos J. Gil Bellosta

Más sobre el "método delta": propagate

Por referencia y afán de completar dos entradas que hice hace un tiempo sobre el método delta, esta y esta, dejo constar mención al paquete propagate, que contiene métodos para la propagación de la incertidumbre. Para desavisados: si $x \sim N(5,1)$ e $y \sim N(10,1)$, ¿cómo sería la distribución de $x/y$? Etc.

10 de marzo de 2020 · Carlos J. Gil Bellosta