Sexo, deporte y la cantidad de información mutua
Perdón por el titular. No soy inasequible a las modas.
La cuestión del día de hoy es la siguiente: tenemos una variable X inobservable y otra variable Y potencialmente correlacionada con X. ¿Cuánto podemos decir de X de conocida Y?
Supongamos que ambas son binarias. Si conozco Y poseo 1 bit de información. Si solo conozco X (que me da pistas sobre Y) conoceré una fracción de un bit de información (sobre Y).
Comencemos por los casos extremos. En una situación de total independencia (cuando X no dice nada de Y), tenemos…
library(entropy)
ind <- as.table(outer(c(30, 40), c(40, 30)))
ind
#A B
#A 1200 900
#B 1600 1200
mi.plugin(ind, unit = "log2")
#-2.9419e-17
… ¡0 bits de información!
En cambio, si Y determina completamente X, tenemos
dep <- as.table(matrix(c(1000, 0, 0, 1000), 2,2))
dep
#A B
#A 1000 0
#B 0 1000
mi.plugin(dep, unit = "log2")
#1
… ¡1 bit de información!
Nada sorprendente bajo el sol, ¿verdad?
Ahora veamos un caso más real. Queremos saber (en un caso hipotético) si a alguien le gusta el deporte. Podemos usar como variable indirecta el sexo (sabemos que a los hombres les tiende a gustar un poco más el deporte que a las mujeres):
sexo.deporte <- matrix(c(4e5, 1e5, 1e5, 4e5), 2,2)
sexo.deporte <- as.table(sexo.deporte)
sexo.deporte
#A B
#A 4e+05 1e+05
#B 1e+05 4e+05
O podemos ver si una persona paga o no un canal de deporte. Si paga uno de esos canales, sabemos casi a ciencia cierta que le gusta; sin embargo, sabemos que muchos aficionados al deporte no lo hacen.
tvcable.deporte <- matrix(c(1e5, 1000, 4e5, 499e3), 2,2)
tvcable.deporte <- as.table(tvcable.deporte)
tvcable.deporte
# A B
# A 100000 400000
# B 1000 499000
La pregunta es: ¿qué variable aporta más información? ¿Una algo genérica que aplica a toda la población? ¿O una que permite identificar con mucha precisión a un subconjunto pequeño de ella? La respuesta depende de las tablas en cuestión, pero en este caso concreto,
mi.plugin(sexo.deporte, unit = "log2")
# 0.27807
mi.plugin(tvcable.deporte, unit = "log2")
# 0.10079
Y la variable sexo aporta casi el triple de información que la otra.