Estadística

Calcular una regresión a mano o con un programa puede ser más preciso

Leer sobre la historia de los glm me llevó a preguntarme sobre el modelo probit, que es —aunque con estas cosas hay que tener cuidado— cuarenta años anterior. Y tirando de ese hilo di con esto, donde se proponen tres métodos para ajustar estos modelos.

El tercer paso del primero es

fit_by_hand

y sí, sugiere ajustar a ojo, aunque advierte que hacerlo a mano (algebraicamente) o con la ayuda de un ordenador puede ser más preciso además de proporcionar intervalos de confianza.

¿Son normales las alturas (de los individuos)?

Diríase que sí. La altura de un individuo está sujeta a multitud de factores que suman y restan. Está la genética (que es el resultado de la suma y resta del impacto de muchos genes individuales). Está la dieta, está… Diríase, insisto, que la altura es el promedio de muchos efectos pequeños y no demasiado dependientes entre ellos.

Y en efecto, (una vez descargados los microdatos de la Encuesta Nacional de Salud de 2011),

Un problema inverso de regresión

He estado pensando qué tipo de ejercicios de estadística (y modelos estadísticos) plantear a mis alumnos del máster de data science de la UTAD.

Así que les he dado unos datos, los X, relativamente grandes (y sin problemas de colinealidad y similares) y les voy a pedir que me construyan la y de manera que los coeficientes obtenidos sean, aproximadamente, iguales a unos dados. A ver qué tal se les da.

Estadística descriptiva allende la estadística descriptiva

Este fin de semana me toca enseñar estadística en el máster de data science de la UTAD. Heredo un programa que incluye una sección importante de estadística descriptiva (que pienso subvertir, claro está).

La estadística descriptiva, según la entiendo, va mucho más allá de lo que viene llamándose estadística descriptiva: eso de las medias, las medianas, el análisis unidimensional, etc. Pienso que un modelo estadístico no es sino una evolución natural de esas trivialidades que nos proporciona una comprensión más profunda de los datos: más allá de cómo son las variables una a una, cómo interoperan y de qué manera actúan para determinar uno o varios efectos de interés.

Una interpretación (rápida y sucia) de los coeficientes de la regresión logística

Los coeficientes de la regresión logística tienen una interpretación recta en términos de odds ratio. Que es un concepto sobre el que puede que alguien tenga algún tipo de intuición. Pero yo no.

¿Cómo podemos interpretar, aunque sea de manera rápida y grosera, los coeficientes? En términos de la variación de la probabilidad cuando la variable correspondiente cambia de valor (p.e., en una unidad). El problema es que la probabilidad depende del valor del resto de las variables: la relación no es lineal. No obstante, esa intuición es posible (en algunos casos: véase la nota).

Rapapolvos al INE

¿Os acordáis de cuando escribí que para ingresar en el INE solo hacía falta estadística viejuna? Pues me cuenta una fuente fidedigna que Eurostat ha realizado una auditoría a nuestro organismo estadístico de cabecera y que le ha caído un buen rapapolvos. Consecuencia del cual, el INE está reformulando los criterios de acceso y tratándose de poner al día.

Igual no es cierto. No soy ducho en eso de manejar fuentes y hablar por terceros, sean o parezcan fidedignos o no. Tal vez me han metido un gol. Mas se non è vero, è ben trovato. Y si lo es, lo sabremos pronto.

Diferencia de medias a la bayesiana con salsa de stan

El habitual problema de la diferencia de medias suele formularse de la siguiente manera: hay observaciones $latex y_{1i}$ e $latex y_{2i}$ donde

$$ y_{ji} \sim N(\mu_j, \sigma)$$

e interesa saber si $latex \mu_1 = \mu_2$. Obviamente, se desconoce $latex \sigma$. De cómo resolvió Gosset el problema están los libros de estadística llenos. En R,

set.seed(1234)
N1 <- 50
N2 <- 50
mu1 <- 1
mu2 <- -0.5
sig1 <- 1
sig2 <- 1
 
y1 <- rnorm(N1, mu1, sig1)
y2 <- rnorm(N2, mu2, sig2)
 
t.test(y1, y2)
# Welch Two Sample t-test
#
# data:  y1 and y2
# t = 4.7059, df = 95.633, p-value = 8.522e-06
# alternative hypothesis: true difference in means is not equal to 0
# 95 percent confidence interval:
#   0.5246427 1.2901923
# sample estimates:
#   mean of x  mean of y
# 0.5469470 -0.3604705

En rstan,

Ver 53000 filas

Me preguntaban cómo ver con R una tabla con 53000 filas. Mi yo menos diplomático quiso contestar: define ver. Lo reformulé más amablemente y se me contestó: como en Excel.

La pregunta es: ¿permite Excel ver 53000 registros? De hecho, ¿se pueden ver 53000 registros? Impresos a razón de línea por centímetro, ocuparían 530 metros y andar a paso vivo del primero al último costaría cinco minutos.

Con 53000 registros, ver (como trasunto de entender) es una cosa distinta de tener delante. Lo siento, pero ver otra cosa que la facturación de los últimos quince días o los movimientos de la cuenta del último mes es algo distinto de lo que vacuamente promete Excel.

Cartogramas vs huertogramas

Esto es un huertograma:

huertograma_es

Tiene la propiedad de que casi todos los pixels están encima de un huerto (o un erial, o en un cerro,…).

Este es otro huertograma:

huertograma_uk

Y esta es la misma información (resultados de las elecciones de 2015 en el RU) sobre un fabuloso cartograma:

cartograma_uk

¿Os habéis fijado cómo esa casi indistinguible mancha roja en la zona de Londres del huertograma adquiere su debida relevancia en el cartograma?

Banzhaf y las elecciones que se nos vienen

Es pertinente rescatar una entrada de hace tres años sobre D’Hondt y Banzhaf. En el enlace, los detalles.

Me limitaré a actualizar el código de la función para que muestre las alianzas (algunas enteramente esperpénticas) posibles, que queda de la forma

banzhaf <- function(x){
  x <- -sort(-x)
  x <- x/sum(x)

  foo <- function(a,b,p){
    if(p>1/2)
      return(list(a))

    if (length(b)==0)
      return(NULL)

    b.prima <- b[-1]
    delta <- b[1]
    p.delta <- x[delta]

    return(c(foo(c(a,delta), b.prima, p+p.delta), foo(a,b.prima,p)))
  }

  res <- foo( NULL, names(x), 0)
  print(res)
  sort( table(unlist(res)) / length(res) )
}

y a aplicarlo sobre algunos casos de la más rabiosa actualidad que Leda Duelo ha tenido la gentileza de preparar para mí y, a través de esta página, para ti también. Son los que siguen.