Entropía Conjunta · H(X, Y)
🛡 NetGuard Analytics — Centro de Operaciones de RedEl equipo de seguridad de NetGuard Analytics registra simultáneamente dos variables en cada evento de red corporativa:
- X — Tipo de evento: NORMAL o ALERTA
- Y — Origen del tráfico: INTERNO o EXTERNO
Tras analizar miles de registros, el equipo estima la siguiente distribución conjunta de probabilidades:
- p(NORMAL, INTERNO) = 0.50
- p(NORMAL, EXTERNO) = 0.10
- p(ALERTA, INTERNO) = 0.05
- p(ALERTA, EXTERNO) = 0.35
b) Calcule las entropías marginales H(X) y H(Y).
c) Compare H(X, Y) con H(X) + H(Y) e indique si X e Y son independientes. Justifique su respuesta.
¿Qué calcula H(X, Y)? La entropía conjunta mide cuántos bits se necesitan, en promedio, para describir un evento cuando se consideran ambas variables al mismo tiempo. Si las variables son independientes, describir el par requiere tanta información como describir cada una por separado. Si hay dependencia entre ellas, se necesita menos información porque conocer una variable ya adelanta algo sobre la otra.
| X \ Y | INTERNO | EXTERNO | P(X) — Marginal |
|---|---|---|---|
| NORMAL | 0.50 | 0.10 | 0.60 |
| ALERTA | 0.05 | 0.35 | 0.40 |
| P(Y) — Marginal | 0.55 | 0.45 | 1.00 |
Las probabilidades marginales se obtienen sumando cada fila (para P(X)) y cada columna (para P(Y)).
La fórmula es análoga a la entropía simple, pero se suma sobre todos los pares posibles (x, y). Cada término −p(x,y)·log₂p(x,y) expresa la contribución informativa del par (x, y), ponderada por su probabilidad de ocurrencia.
Se aplica sobre los 4 pares posibles. Los términos con p = 0 no contribuyen porque lím_{p→0} p·log₂p = 0.
Cada término −p(x,y)·log₂p(x,y) representa cuántos bits aporta ese par al total. Los pares más raros (probabilidad baja) tienen log₂ grande, pero la ponderación por p los modera.
Interpretación: se necesitan en promedio 1.5784 bits para codificar un evento descrito por el par (tipo, origen). Este es el contenido informativo medio de la fuente conjunta.
Las probabilidades marginales se obtienen colapsando una dimensión de la tabla (sumando filas para X, sumando columnas para Y). La entropía marginal H(X) mide cuántos bits se necesitan para describir solo el tipo de evento, sin considerar el origen.
La propiedad clave es: si X e Y son estadísticamente independientes, la información necesaria para describir el par es exactamente la suma de las informaciones individuales: H(X,Y) = H(X) + H(Y). Si hay dependencia, se necesita menos información porque una variable adelanta algo sobre la otra, y H(X,Y) < H(X) + H(Y).
La diferencia de 0.3853 bits es la información que las variables comparten entre sí. El sistema conjunto requiere esa cantidad menos de información porque conocer el origen del tráfico ya adelanta algo sobre el tipo de evento. Por ejemplo: p(ALERTA | EXTERNO) = 0.35/0.45 = 0.78, mucho mayor que p(ALERTA) = 0.40, lo que confirma la dependencia.
La barra roja es el escenario hipotético de independencia. La barra azul oscuro es el valor real — su menor longitud refleja la dependencia entre variables.
Entropía Condicional · H(Y | X)
🔐 CipherWatch S.A. — Sistema de Acceso CorporativoCipherWatch S.A. administra el sistema de control de acceso de una empresa financiera. Cada registro contiene:
- X — Tipo de usuario: ADMIN o USUARIO_NORMAL
- Y — Acción realizada: DB_CRITICA (acceso a base de datos crítica) o NAVEGACION
La distribución conjunta observada en los registros es:
- p(ADMIN, DB_CRITICA) = 0.40 · p(ADMIN, NAVEGACION) = 0.10
- p(NORMAL, DB_CRITICA) = 0.05 · p(NORMAL, NAVEGACION) = 0.45
b) Calcule la entropía condicional H(Y | X).
c) ¿En qué porcentaje se reduce la información necesaria sobre Y al conocer X?
d) Verifique la regla de la cadena: H(X, Y) = H(X) + H(Y | X).
¿Qué calcula H(Y | X)? La entropía condicional H(Y|X) mide cuántos bits se necesitan, en promedio, para describir la acción Y sabiendo ya el tipo de usuario X. Si el rol determina completamente la acción, H(Y|X) = 0: no se necesita información adicional. Si el rol no aporta nada, H(Y|X) = H(Y): conocer el usuario no reduce en nada lo que hay que describir sobre la acción.
| X \ Y | DB_CRITICA | NAVEGACION | P(X) — Marginal |
|---|---|---|---|
| ADMIN | 0.40 | 0.10 | 0.50 |
| USUARIO_NORMAL | 0.05 | 0.45 | 0.50 |
| P(Y) — Marginal | 0.45 | 0.55 | 1.00 |
H(Y|X) se calcula como el promedio ponderado de la entropía de Y para cada valor posible de X. El peso de cada término es la probabilidad marginal p(x), porque los usuarios ADMIN y NORMAL ocurren con diferente frecuencia en el sistema.
Dividimos cada fila de la tabla conjunta entre su probabilidad marginal p(x). Esto nos dice, para cada tipo de usuario, con qué probabilidad realiza cada acción.
X = ADMIN (p(X) = 0.50)
Los ADMIN acceden principalmente a la base de datos crítica (80%). Su comportamiento es más especializado.
X = USUARIO_NORMAL (p(X) = 0.50)
Los usuarios normales casi siempre navegan (90%). Su acceso a DB_CRITICA es una excepción.
Aplicamos la fórmula de entropía simple a cada distribución condicional. El resultado mide cuántos bits se necesitan para describir la acción conociendo ya el tipo de usuario. Cuanto más sesgada sea la distribución condicional, menor será esta entropía.
H(Y|NORMAL) = 0.4690 bits < H(Y|ADMIN) = 0.7219 bits: el comportamiento del usuario normal es más predecible (distribución 90/10) que el del administrador (distribución 80/20), lo que requiere menos bits para describirlo.
Promediamos las entropías condicionales de cada grupo, ponderando por la probabilidad de ese tipo de usuario en el sistema:
Interpretación: en promedio, conocer el tipo de usuario reduce a 0.5955 bits la información necesaria para describir la acción. Sin ese conocimiento, se necesitarían H(Y) bits.
Comparamos H(Y) —información necesaria para describir la acción sin ningún dato adicional— con H(Y|X) —información necesaria cuando ya sabemos el tipo de usuario:
Conocer el tipo de usuario elimina el 40% de la información que habría que transmitir sobre la acción. Esos 0.3973 bits son precisamente la información que comparten X e Y (la información mutua I(X;Y), que veremos en la Sección 3).
La regla de la cadena dice que la información total del par (X, Y) es igual a la información de X más la información adicional de Y una vez conocido X. Es una descomposición aditiva de la información conjunta:
Lectura de la igualdad: se necesitan 1.0000 bits para saber el tipo de usuario, y luego 0.5955 bits adicionales para saber qué acción realizó. En total: 1.5955 bits para describir el par completo.
Información Mutua · I(X ; Y)
📋 FortiLog Systems — Análisis de Logs de AutenticaciónFortiLog Systems evalúa si el tipo de evento de autenticación y la dirección IP de origen están estadísticamente relacionados:
- X — Resultado de autenticación: LOGIN_OK o LOGIN_FAIL
- Y — Tipo de IP: IP_INTERNA o IP_EXTERNA
Se registran tres escenarios con distribuciones distintas:
- Escenario A: p = {(OK,INT):0.30, (OK,EXT):0.20, (FAIL,INT):0.30, (FAIL,EXT):0.20}
- Escenario B: p = {(OK,INT):0.40, (OK,EXT):0.15, (FAIL,INT):0.10, (FAIL,EXT):0.35}
- Escenario C: p = {(OK,INT):0.48, (OK,EXT):0.02, (FAIL,INT):0.02, (FAIL,EXT):0.48}
b) Interprete el valor obtenido en cada caso: ¿qué indica sobre la relación entre tipo de evento e IP?
c) ¿En cuál de los tres escenarios debería el sistema SOC generar una alerta? Justifique.
¿Qué mide I(X ; Y)? La información mutua cuantifica cuánta información comparten dos variables entre sí: es la cantidad de información sobre X que se gana al observar Y (y viceversa, por simetría). Se calcula como la diferencia entre la información que necesitaríamos si las variables fueran independientes y la información que realmente necesitamos. Cuando I(X;Y) = 0 las variables son completamente independientes; cuando I(X;Y) = H(X) conocer Y determina X por completo.
La información mutua se calcula como la diferencia entre la suma de entropías individuales y la entropía conjunta. Cada una de las formas equivalentes revela una interpretación distinta:
\( I(X\,;\,Y) = H(X) + H(Y) - H(X,Y) \) — cuánta información "se ahorra" al describir el par en vez de cada variable por separado
\( I(X\,;\,Y) = H(X) - H(X \mid Y) \) — cuánta información de X se gana al observar Y
\( I(X\,;\,Y) = H(Y) - H(Y \mid X) \) — cuánta información de Y se gana al observar X
| X \ Y | IP_INT | IP_EXT | P(X) |
|---|---|---|---|
| LOGIN_OK | 0.30 | 0.20 | 0.50 |
| LOGIN_FAIL | 0.30 | 0.20 | 0.50 |
| P(Y) | 0.60 | 0.40 | 1.00 |
Ambas filas son proporcionales → independencia.
Interpretación: I(X;Y) = 0 confirma independencia total. Observar la IP no aporta ninguna información sobre el resultado del login. Esto se puede verificar también porque las filas de la tabla son proporcionales entre sí (ambas tienen relación 60/40 entre INT y EXT).
| X \ Y | IP_INT | IP_EXT | P(X) |
|---|---|---|---|
| LOGIN_OK | 0.40 | 0.15 | 0.55 |
| LOGIN_FAIL | 0.10 | 0.35 | 0.45 |
| P(Y) | 0.50 | 0.50 | 1.00 |
Las filas ya no son proporcionales → dependencia.
Interpretación: I(X;Y) = 0.1912 bits > 0. Existe una correlación real: saber el tipo de IP aporta 0.1912 bits de información sobre el resultado. Comparado con H(X) = 0.9928, esto representa un 19.3% de la información total de X que puede inferirse desde Y. El patrón existe pero es moderado.
| X \ Y | IP_INT | IP_EXT | P(X) |
|---|---|---|---|
| LOGIN_OK | 0.48 | 0.02 | 0.50 |
| LOGIN_FAIL | 0.02 | 0.48 | 0.50 |
| P(Y) | 0.50 | 0.50 | 1.00 |
Diagonal dominante → dependencia casi total.
Interpretación: I(X;Y) = 0.7577 bits ≈ 0.76·H(X). Saber el tipo de IP transmite el 75.8% de toda la información disponible sobre el resultado del login. La dependencia es casi total. Si ves IP_EXTERNA, casi con certeza será LOGIN_FAIL: p(FAIL|EXT) = 0.48/0.50 = 0.96 (96%).
| Escenario | I(X;Y) | I / H(X) — % explicado | Diagnóstico | Acción |
|---|---|---|---|---|
| A — Normal | 0.0000 bits | 0% | Sin correlación | Sin alerta |
| B — Sospechoso | 0.1912 bits | 19.3% | Correlación parcial | Investigar |
| C — Ataque | 0.7577 bits | 75.8% | Dependencia muy alta | Respuesta inmediata |
Redundancia · R
💾 DataShield Corp — Optimización de Transmisión de LogsDataShield Corp transmite logs de seguridad en tiempo real desde sensores distribuidos. Cada log registra uno de 4 tipos de evento posibles: NORMAL, ADVERTENCIA, ERROR, CRITICO.
Se observan tres perfiles de tráfico según el turno operativo:
- Perfil A — Turno diurno: p = (0.25, 0.25, 0.25, 0.25)
- Perfil B — Turno nocturno: p = (0.70, 0.15, 0.10, 0.05)
- Perfil C — Durante incidente: p = (0.02, 0.03, 0.05, 0.90)
b) Para cada perfil, calcule H(X) y la redundancia R = (H_max − H(X)) / H_max.
c) ¿Qué perfil tiene mayor potencial de compresión sin pérdida? ¿Por qué?
d) Relacione el valor de R con el límite teórico de compresión establecido por Shannon.
donde \(\bar{\ell}\) es la longitud media de código. Ningún algoritmo sin pérdida puede comprimir por debajo de este límite.
¿Qué mide la redundancia R? La redundancia mide qué proporción del flujo de datos es predecible o repetitiva y por tanto podría eliminarse sin perder información. Se define como la distancia relativa entre la entropía real de la fuente y su entropía máxima teórica. Una fuente con R = 0 usa todos sus símbolos con igual frecuencia — cada símbolo aporta la máxima información posible y no hay nada que comprimir. Una fuente con R = 1 siempre emite el mismo símbolo — todos los datos son redundantes. La redundancia establece el límite teórico de compresión sin pérdida: no se puede comprimir más allá de H(X) bits por símbolo (primer teorema de Shannon).
La entropía máxima se alcanza cuando todos los símbolos son equiprobables (p = 1/n para cada uno). En ese caso la fuente es completamente aleatoria y no hay ningún patrón explotable para comprimir.
Esto significa que para transmitir eventos de una fuente con 4 símbolos igualmente probables se necesitan exactamente 2 bits por símbolo — lo que corresponde a una codificación binaria de 2 dígitos (00, 01, 10, 11). Cuando los símbolos no son equiprobables, H(X) < 2 y hay margen para comprimir.
El primer teorema de Shannon (teorema de codificación de fuentes) establece que la longitud media mínima de cualquier código sin pérdida no puede ser inferior a H(X) bits por símbolo. Esto es un límite absoluto: ningún algoritmo, por sofisticado que sea, puede comprimir por debajo de ese umbral sin perder información.
Huffman alcanza cerca de ese límite cuando la distribución es conocida. LZ77/LZ78 lo aproximan adaptativamente sin conocer la distribución a priori, lo que los hace adecuados para logs en tiempo real.
| Perfil | H_max | H(X) | Redundancia (bits) | R | Compresión máxima teórica |
|---|---|---|---|---|---|
| A · Diurno (uniforme) | 2.0000 | 2.0000 | 0.0000 | 0.00 | 0% — datos eficientes |
| B · Nocturno (sesgado) | 2.0000 | 1.3190 | 0.6810 | 0.34 | ~34% — compresión útil |
| C · Incidente (det.) | 2.0000 | 0.6175 | 1.3825 | 0.69 | ~69% — alta compresión |
Las cuatro métricas — de un vistazo
| Métrica | Fórmula | Qué mide con precisión | Valor clave en ejercicios |
|---|---|---|---|
| Entropía conjunta H(X,Y) |
−Σ p(x,y)·log₂p(x,y) | Información promedio necesaria para describir el par (X,Y). Menor que H(X)+H(Y) cuando hay dependencia. | 1.5784 bits (NetGuard) |
| Entropía condicional H(Y|X) |
H(X,Y) − H(X) | Información adicional sobre Y que aún se necesita después de conocer X. Cero si X determina Y completamente. | 0.5955 bits (CipherWatch, −40%) |
| Información mutua I(X;Y) |
H(X)+H(Y)−H(X,Y) | Información compartida entre X e Y. Cuánto saber una variable reduce la información necesaria para describir la otra. | 0.7577 bits (FortiLog, ataque) |
| Redundancia R |
(H_max−H(X))/H_max | Fracción del flujo de datos que es predecible o repetitiva y puede eliminarse sin pérdida. Límite teórico de compresión. | 0.6912 (DataShield, incidente) |