Algunas notas sobre los CIs

I. Supongamos que $\theta$ es un parámetro real. John D. Cook le construye el siguiente intervalo de confianza al 95%: Se toma un dado de 20 caras (como los de rol). Si sale un 1, el intervalo de confianza es el conjunto vacío. Si sale cualquier otro valor, el intervalo de confianza es el eje real entero. Es tan perfectamente válido (desde el punto de vista frecuentista) como cualquier otro. II. La mejor manera que he encontrado para entender qué es un intervalo de confianza frecuentista es el de una urna enorme. ...

4 de abril de 2024 · Carlos J. Gil Bellosta

Las ANOVAs tienen interés meramente histórico

Todo eso que se conoce como ANOVA tiene, a lo más, interés histórico. Se puede hacer más y mejor con igual o menor esfuerzo. ¿Cómo? Aplicando lo que se cuenta aquí. Nota: Interés histórico no significa no interés: muchas veces existe un solapamiento importante entre el orden histórico de los conceptos y el orden en que es más natural aprenderlos (o enseñarlos).

2 de abril de 2024 · Carlos J. Gil Bellosta

Hoy vuelve a ser el día internacional de la copia de seguridad

Hoy, como cada 31 de marzo, se celebra el día internacional de la copia de seguridad. Así que ya sabéis qué hacer: Coda Revisando mis archivos, vi que ya hablé del asunto en 2015, 2017 y 2023.

31 de marzo de 2024 · Carlos J. Gil Bellosta

¿Cómo se interpretan los resultados de estas regresiones

Esta entrada trata sobre las aparentes contradicciones que surgen cuando se comparan las regresiones $y \sim x$ y $x \sim y$. En particular, aquí se muestran y que vienen a decir: El tal Rodgers rinde por encima de lo que se espera para su salario. Para lo que rinde, gana demasiado. Lo cual, a pesar de lo contradictorio, no es un fenómeno extrañísimo. Si uno hace n <- 100 x <- rnorm(n) a <- .3 b <- .5 y <- a * x + b + 0.1 * rnorm(100) reg1 <- lm(y ~ x) reg2 <- lm(x ~ y) which.1 <- y > predict(reg1, data.frame(x = x)) which.2 <- x > predict(reg2, data.frame(y = y)) tmp <- cbind(which.1, which.2) tmp <- which(tmp[,1] & tmp[,2]) ab <- coef(reg2) plot(x, y) abline(reg1, col = "blue") abline(b = 1/ ab[2], a = - ab[1] / ab[2], col = "green") points(x[tmp], y[tmp], col = "red", pch = 16) puede obtener tantos gráficos de la forma ...

28 de marzo de 2024 · Carlos J. Gil Bellosta

modelplotr

Si leéis algo y tropezáis con un gráfico como es que lo que lo rodea vale la pena. En este caso, lo que lo rodea es este texto que algún LLM me ha resumido así: El texto analiza la importancia de evaluar el valor comercial de los modelos predictivos y las limitaciones de las métricas de evaluación tradicionales como la curva ROC. Presenta cuatro gráficos de evaluación (ganancias acumuladas, elevación acumulada, respuesta y respuesta acumulada) y tres gráficos financieros (costos e ingresos, ganancias y retorno de la inversión) que pueden ayudar a explicar el valor comercial de un modelo. El texto proporciona ejemplos de cómo utilizar el paquete R modelplotr para crear estos gráficos.

26 de marzo de 2024 · Carlos J. Gil Bellosta

Cortos

I. Todo lo que uno necesita saber sobre los espacios de colores (y nunca supo que lo necesitaba preguntar). II. Todos estos asuntos sobre la intermitencia de las energías renovables, etc., ¡son tan estadísticos/probabilísticos! ¿Cómo no quererlos? III. Otro artículo sobre la reducción de la varianza. Esta vez, el de los precios del pescado en el sur de la India. El gráfico que lo dice todo es este: Otro de los instrumentos para reducir la varianza de los precios son los mercados, en general y los de futuros en particular. Pero a principios del siglo que corre, cuando andaba por aquella parte del mundo, el gobierno de la India decidió hacer esta cosa que me ha recordado Claude-3-Opus (al que cito): ...

22 de marzo de 2024 · Carlos J. Gil Bellosta

Cortos (sobre LLMs)

I. Does GPT-2 Know Your Phone Number? discute dos asuntos distintos: Métodos para identificar y estimar el número de textos literales que aprende un LLM. Un análisis ya irrelevante de cómo afectaba a GPT-2. Obviamente, quiero que los LLMs sepan recitar literalmente la primera frase del Quijote o la última de Cien años de soledad. Y tal vez no (¿seguro que no?) información confidencial sobre alguien. Entre ambos extremos, ¿dónde está la frontera? ...

21 de marzo de 2024 · Carlos J. Gil Bellosta

El "perspectivismo" en el debate sobre la naturaleza, objetiva o subjetiva, de la probabilidad

How probabilities came to be objective and subjective es un artículo que se resume así: Entre 1837 y 1842, al menos seis matemáticos y filósofos, escribiendo en francés, inglés y alemán, y trabajando independientemente unos de otros, introdujeron distinciones entre dos tipos de probabilidad. Aunque los fundamentos, contenidos e implicaciones de estas distinciones diferían significativamente de autor a autor, todos giraban en torno a una distinción filosófica entre “probabilidades objetivas” y “subjetivas” que había surgido alrededor de 1840. Fue esta nueva distinción filosófica la que permitió a los probabilistas revisionistas concebir la posibilidad de “probabilidades objetivas”, lo cual habría sido un oxímoron para los probabilistas clásicos como Jakob Bernoulli y Pierre Simon Laplace. ...

19 de marzo de 2024 · Carlos J. Gil Bellosta

El "precio medio de la electricidad" no es el precio medio de la electricidad

Por ahí se ven cosas como esta: Avisa del valor máximo, mínimo y medio de la electricidad en la mayor parte de España. Pero lo que llama precio medio no es el precio medio. Llama precio medio al resultado de select avg(pvpc) from pvpc_electricidad where date(dia_hora) = '2024-03-12' ; y no de select sum(pvpc * kwh) / sum(kwh) from pvpc_electricidad where date(dia_hora) = '2024-03-12' ; que sería lo suyo. Nótese cómo, en particular, el precio está positivamente correlacionado con el consumo —si es que el mercado eléctrico funciona como se espera de él— por lo que la primera expresión será siempre menor que la segunda. Es un indicador sesgado. ...

14 de marzo de 2024 · Carlos J. Gil Bellosta

Cartogramas "de Dorling"

Motivado por esta entrada construí usando muns <- st_read("data/CifraPob2023.shp") peninsula <- muns[muns$ccaa != 'Canarias',] plot(peninsula["pob_23"]) peninsula <- st_transform(peninsula, 25830) peninsula_dorling <- cartogram_dorling( x = peninsula, weight = "pob_23", k = 0.2, itermax = 100) plot(peninsula_dorling["pob_23"]) sobre unos datos que ya no recuerdo de dónde bajé. La única línea no autoexplicativa del código es peninsula <- st_transform(peninsula, 25830) que transforma las coordenadas originales de los datos en coordenadas proyectadas (o, más bien, las coordenadas proyectadas que rigen en la zona peninsular). El 25830 en cuestión me lo chivó un LLM. Antes de usar cartogram_dorling pensé cómo podría programar algo parecido a mano. La primera idea que a uno se le ocurre es la programación lineal —que, en este caso no sería lineal sino… ¿cuadrática?—; pero, casi seguro, el tamaño del problema con todas las restricciones potenciales lo hace computacionalmente inviable. Casi seguro, hay que recurrir a heurísticas para obtener una solución razonable. ...

12 de marzo de 2024 · Carlos J. Gil Bellosta