💡 Nota conceptual: entropía e incertidumbre La entropía H(X) mide la cantidad promedio de información que produce una fuente por símbolo, es decir, cuántos bits se necesitan en promedio para describir sus resultados. Esto no es lo mismo que "incertidumbre", aunque en contextos pedagógicos se usa esa palabra como interpretación intuitiva. La distinción importa: un archivo ya generado tiene entropía alta pero no hay ninguna incertidumbre sobre su contenido — simplemente sus datos no son compresibles. En los ejercicios que siguen usamos la palabra información promedio para ser precisos, e indicamos cuándo la interpretación de "variabilidad del sistema" es pertinente.

Entropía Conjunta · H(X, Y)

🛡 NetGuard Analytics — Centro de Operaciones de Red
Ejercicio 1 Entropía conjunta en un sistema de monitoreo de red

El 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
a) Calcule la entropía conjunta H(X, Y).
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.
Fórmulas aplicadas en este ejercicio
Entropía conjunta
\[ H(X,Y) = -\sum_{x,y} p(x,y)\,\log_2 p(x,y) \]
Entropía marginal
\[ H(X) = -\sum_{x} p(x)\,\log_2 p(x) \]
Criterio de independencia
Independencia: \[ H(X,Y) = H(X) + H(Y) \]
Dependencia: \[ H(X,Y) < H(X) + H(Y) \]

¿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)).

1
Fórmula de entropía conjunta

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.

H(X, Y) = −Σ_{x,y} p(x,y) · log₂ p(x,y)

Se aplica sobre los 4 pares posibles. Los términos con p = 0 no contribuyen porque lím_{p→0} p·log₂p = 0.

2
Respuesta (a) — cálculo de H(X, Y) término por término

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.

Par (NORMAL, INTERNO): −0.50 · log₂(0.50) = −0.50 · (−1.000) = 0.5000 bits
Par (NORMAL, EXTERNO): −0.10 · log₂(0.10) = −0.10 · (−3.322) = 0.3322 bits
Par (ALERTA, INTERNO): −0.05 · log₂(0.05) = −0.05 · (−4.322) = 0.2161 bits
Par (ALERTA, EXTERNO): −0.35 · log₂(0.35) = −0.35 · (−1.515) = 0.5301 bits
H(X, Y) = 0.5000 + 0.3322 + 0.2161 + 0.5301 = 1.5784 bits

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.

3
Respuesta (b) — entropías marginales H(X) y H(Y)

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.

H(X) = −(P(NORMAL)·log₂P(NORMAL) + P(ALERTA)·log₂P(ALERTA))
= −(0.60·log₂0.60 + 0.40·log₂0.40)
= −(0.60·(−0.737) + 0.40·(−1.322))
= −(−0.4422 − 0.5288)
H(X) = 0.9710 bits
H(Y) = −(P(INTERNO)·log₂P(INTERNO) + P(EXTERNO)·log₂P(EXTERNO))
= −(0.55·log₂0.55 + 0.45·log₂0.45)
= −(0.55·(−0.862) + 0.45·(−1.152))
= −(−0.4741 − 0.5184)
H(Y) = 0.9928 bits
4
Respuesta (c) — ¿son X e Y independientes?

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).

Si fueran independientes → H(X) + H(Y) = 0.9710 + 0.9928 = 1.9637 bits
H(X, Y) real = 1.5784 bits
Diferencia = 1.9637 − 1.5784 = 0.3853 bits → X e Y NO son independientes

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.

H(X) — solo evento
0.97
0.9710 bits
H(Y) — solo origen
0.99
0.9928 bits
H(X)+H(Y) si independ.
1.96
1.9637 bits
H(X,Y) real
1.58
1.5784 bits

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.

Conclusión para NetGuard Analytics H(X,Y) = 1.5784 bits < H(X)+H(Y) = 1.9637 bits. Las variables no son independientes: el origen del tráfico y el tipo de evento están correlacionados. El tráfico EXTERNO genera alertas con mucha mayor frecuencia (p=0.35) que el tráfico INTERNO (p=0.05), lo que indica que ambas variables deben analizarse conjuntamente para una detección eficaz.

Entropía Condicional · H(Y | X)

🔐 CipherWatch S.A. — Sistema de Acceso Corporativo
Ejercicio 2 Entropía condicional en un sistema de control de acceso

CipherWatch 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
a) Calcule las distribuciones condicionales p(Y | X = ADMIN) y p(Y | X = USUARIO_NORMAL).
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).
Fórmulas aplicadas en este ejercicio
Probabilidad condicional
\[ p(y \mid x) = \frac{p(x,y)}{p(x)} \]
Entropía de Y dado un valor fijo \(X = x\)
\[ H(Y \mid X{=}x) = -\sum_{y} p(y\mid x)\,\log_2 p(y\mid x) \]
Entropía condicional total (promedio ponderado)
\[ H(Y \mid X) = \sum_{x} p(x)\; H(Y \mid X{=}x) \]
Regla de la cadena
\[ H(X,Y) = H(X) + H(Y \mid 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
1
Fórmula de entropía condicional

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.

H(Y|X) = Σ_x p(x) · H(Y | X = x)

donde H(Y | X = x) = −Σ_y p(y|x) · log₂ p(y|x) ← entropía de Y fijado X = x
y p(y|x) = p(x,y) / p(x) ← probabilidad condicional
2
Respuesta (a) — distribuciones condicionales p(Y | X = x)

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)

p(DB_CRITICA | ADMIN) = 0.40 / 0.50 = 0.80
p(NAVEGACION | ADMIN) = 0.10 / 0.50 = 0.20
Verificación: 0.80 + 0.20 = 1.00 ✓

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)

p(DB_CRITICA | NORMAL) = 0.05 / 0.50 = 0.10
p(NAVEGACION | NORMAL) = 0.45 / 0.50 = 0.90
Verificación: 0.10 + 0.90 = 1.00 ✓

Los usuarios normales casi siempre navegan (90%). Su acceso a DB_CRITICA es una excepción.

3
Entropía de Y dado cada valor de X

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 | X = ADMIN) = −(0.80·log₂0.80 + 0.20·log₂0.20)
= −(0.80·(−0.322) + 0.20·(−2.322))
= −(−0.2575 − 0.4644)
H(Y | X = ADMIN) = 0.7219 bits
H(Y | X = NORMAL) = −(0.10·log₂0.10 + 0.90·log₂0.90)
= −(0.10·(−3.322) + 0.90·(−0.152))
= −(−0.3322 − 0.1368)
H(Y | X = NORMAL) = 0.4690 bits

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.

4
Respuesta (b) — entropía condicional total H(Y | X)

Promediamos las entropías condicionales de cada grupo, ponderando por la probabilidad de ese tipo de usuario en el sistema:

H(Y|X) = p(ADMIN)·H(Y|ADMIN) + p(NORMAL)·H(Y|NORMAL)
= 0.50 · 0.7219 + 0.50 · 0.4690
= 0.3610 + 0.2345
H(Y | X) = 0.5955 bits

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.

5
Respuesta (c) — reducción de información necesaria

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:

H(Y) = −(0.45·log₂0.45 + 0.55·log₂0.55)
= −(0.45·(−1.152) + 0.55·(−0.862))
= −(−0.5184 − 0.4741)
H(Y) = 0.9928 bits
Reducción absoluta = H(Y) − H(Y|X) = 0.9928 − 0.5955 = 0.3973 bits
Reducción relativa = 0.3973 / 0.9928 = 40.0%

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).

6
Respuesta (d) — verificación de la regla de la cadena

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:

H(X, Y) = H(X) + H(Y | X)

H(X) = −(0.50·log₂0.50 + 0.50·log₂0.50) = 1.0000 bits
H(Y|X) = 0.5955 bits
H(X) + H(Y|X) = 1.5955 bits

H(X,Y) calculado directamente = 1.5955 bits
1.5955 = 1.5955 ✓ La regla de la cadena se verifica.

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.

H(Y) sin condición
0.9928
0.9928 bits
H(Y | X=ADMIN)
0.7219
0.7219 bits
H(Y | X=NORMAL)
0.4690
0.4690 bits
H(Y|X) total
0.5955
0.5955 bits
Conclusión para CipherWatch S.A. Conocer el tipo de usuario reduce en un 40% la información necesaria para describir la acción realizada. El comportamiento tiene estructura fuerte: los ADMIN acceden a DB_CRITICA con alta frecuencia; los usuarios normales casi nunca lo hacen. Si un usuario normal accede a DB_CRITICA es una anomalía estadísticamente significativa que el sistema debería marcar para auditoría.

Información Mutua · I(X ; Y)

📋 FortiLog Systems — Análisis de Logs de Autenticación
Ejercicio 3 Información mutua para detección de patrones de ataque

FortiLog 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}
a) Para cada escenario, calcule I(X ; Y) = H(X) + H(Y) − H(X, Y).
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.
Fórmulas aplicadas en este ejercicio
Información mutua — definición principal
\[ I(X\,;\,Y) = H(X) + H(Y) - H(X,Y) \]
Formas equivalentes
Desde X: \[ I(X\,;\,Y) = H(X) - H(X \mid Y) \]
Desde Y: \[ I(X\,;\,Y) = H(Y) - H(Y \mid X) \]
Propiedades clave
No negatividad: \( I(X\,;\,Y) \geq 0 \)
Simetría: \( I(X\,;\,Y) = I(Y\,;\,X) \)
Independencia: \( I(X\,;\,Y) = 0 \)
Dep. total: \( I(X\,;\,Y) = H(X) = H(Y) \)

¿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.

1
Fórmula de información mutua

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

Escenario A — Sin patrón
Escenario B — Dep. moderada
Escenario C — Ataque
🟢
Contexto — Comportamiento normal: sin correlación Los LOGIN_FAIL y LOGIN_OK ocurren con la misma distribución tanto en IPs internas como externas. No existe ningún patrón que relacione el tipo de IP con el resultado de la autenticación.
X \ YIP_INTIP_EXTP(X)
LOGIN_OK 0.300.200.50
LOGIN_FAIL0.300.200.50
P(Y)0.600.401.00

Ambas filas son proporcionales → independencia.

H(X) = −(0.50·log₂0.50 + 0.50·log₂0.50)
= −(2 × 0.50·(−1.000)) = 1.0000 bits

H(Y) = −(0.60·log₂0.60 + 0.40·log₂0.40)
= −(0.60·(−0.737) + 0.40·(−1.322))
= 0.9710 bits

H(X,Y) = −(0.30·log₂0.30·2 + 0.20·log₂0.20·2)
= 1.9710 bits
I(X;Y) = 1.0000 + 0.9710 − 1.9710 = 0.0000 bits

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).

🟡
Contexto — Correlación parcial: comportamiento sospechoso Los LOGIN_FAIL son notablemente más frecuentes desde IPs externas. Existe una tendencia estadística real, aunque no absoluta. Podría indicar intentos de acceso no autorizados desde el exterior.
X \ YIP_INTIP_EXTP(X)
LOGIN_OK 0.400.150.55
LOGIN_FAIL0.100.350.45
P(Y)0.500.501.00

Las filas ya no son proporcionales → dependencia.

H(X) = −(0.55·log₂0.55 + 0.45·log₂0.45) = 0.9928 bits
H(Y) = −(0.50·log₂0.50 + 0.50·log₂0.50) = 1.0000 bits
H(X,Y) = −(0.40·log₂0.40 + 0.15·log₂0.15
+ 0.10·log₂0.10 + 0.35·log₂0.35)
= 1.8016 bits
I(X;Y) = 0.9928 + 1.0000 − 1.8016 = 0.1912 bits

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.

🔴
Contexto — Dependencia muy alta: posible ataque activo Prácticamente todos los LOGIN_OK provienen de IPs internas y todos los LOGIN_FAIL de IPs externas. Hay un patrón casi determinístico. Respuesta de incidente inmediata.
X \ YIP_INTIP_EXTP(X)
LOGIN_OK 0.480.020.50
LOGIN_FAIL0.020.480.50
P(Y)0.500.501.00

Diagonal dominante → dependencia casi total.

H(X) = −(0.50·log₂0.50 + 0.50·log₂0.50) = 1.0000 bits
H(Y) = −(0.50·log₂0.50 + 0.50·log₂0.50) = 1.0000 bits
H(X,Y) = −(0.48·log₂0.48 + 0.02·log₂0.02
+ 0.02·log₂0.02 + 0.48·log₂0.48)
= 1.2423 bits
I(X;Y) = 1.0000 + 1.0000 − 1.2423 = 0.7577 bits

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
📌
Respuesta (c) — alerta del SOC El Escenario C requiere respuesta inmediata. Con I(X;Y) = 0.7577 bits (75.8% de H(X)), la IP de origen es casi un predictor perfecto del resultado. Esto apunta a un ataque de fuerza bruta desde IPs externas: p(FAIL | IP_EXTERNA) = 96%. La información mutua ha detectado el patrón de ataque cuantitativamente — es precisamente para esto que se usa en sistemas IDS/IPS.

Redundancia · R

💾 DataShield Corp — Optimización de Transmisión de Logs
Ejercicio 4 Redundancia y límites teóricos de compresión en transmisión de logs

DataShield 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)
a) Calcule H_max para una fuente con 4 símbolos.
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.
Fórmulas aplicadas en este ejercicio
Entropía máxima (fuente con \(n\) símbolos equiprobables)
\[ H_{\max} = \log_2 n \]
Entropía real de la fuente
\[ H(X) = -\sum_{x} p(x)\,\log_2 p(x) \]
Redundancia
\[ R = \frac{H_{\max} - H(X)}{H_{\max}} \qquad 0 \leq R \leq 1 \]
\(R = 0\): distribución uniforme — sin compresión posible
\(R = 1\): un solo símbolo siempre ocurre — totalmente predecible
Límite teórico de compresión — 1er Teorema de Shannon
\[ \bar{\ell} \;\geq\; H(X) \;\text{ bits/símbolo} \]

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).

1
Respuesta (a) — H_max para n = 4 símbolos

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.

H_max = log₂(n) = log₂(4) = 2.0000 bits

Verificación: si p = (0.25, 0.25, 0.25, 0.25):
H = −4 × (0.25 · log₂0.25) = −4 × (0.25 · (−2)) = 2.0000 bits ✓

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.

🌅 Perfil A — Turno Diurno (distribución uniforme)
R = 0.00  (0%)
NORMAL = 0.25 ADVERTENCIA = 0.25 ERROR = 0.25 CRITICO = 0.25
H(X) = −(0.25·log₂0.25 + 0.25·log₂0.25 + 0.25·log₂0.25 + 0.25·log₂0.25)
= −(4 × 0.25 · (−2.000))
= −(4 × (−0.5000)) = −(−2.0000)
H(X) = 2.0000 bits → R = (2.0000 − 2.0000) / 2.0000 = 0.0000 (0%)
H(X) = H_max: la fuente usa sus 4 símbolos con idéntica frecuencia. Cada símbolo aporta exactamente log₂(4) = 2 bits de información. No existe ningún patrón que un algoritmo de compresión pueda explotar. Asignar códigos de longitud variable (como Huffman) no reduciría el tamaño: todos los símbolos obtendrían el mismo código de 2 bits.
🌙 Perfil B — Turno Nocturno (distribución sesgada)
R = 0.34  (34%)
NORMAL = 0.70 ADVERTENCIA = 0.15 ERROR = 0.10 CRITICO = 0.05
H(X) = −(0.70·log₂0.70 + 0.15·log₂0.15 + 0.10·log₂0.10 + 0.05·log₂0.05)
= −(0.70·(−0.515) + 0.15·(−2.737) + 0.10·(−3.322) + 0.05·(−4.322))
= −(−0.3602 − 0.4105 − 0.3322 − 0.2161)
= −(−1.3190)
H(X) = 1.3190 bits → R = (2.0000 − 1.3190) / 2.0000 = 0.3405 (34.1%)
⚠️
El 70% de los eventos son NORMAL. La fuente solo produce 1.3190 bits de información por símbolo, aunque el sistema podría generar hasta 2 bits. Los 0.6810 bits restantes son redundancia — información que se repite sistemáticamente. Un algoritmo como Huffman asignaría un código corto (por ejemplo, 1 bit) a NORMAL y códigos más largos a los eventos raros. En teoría, es posible comprimir hasta un 34% del flujo de datos.
🚨 Perfil C — Durante Incidente (casi determinístico)
R = 0.69  (69%)
NORMAL = 0.02 ADVERTENCIA = 0.03 ERROR = 0.05 CRITICO = 0.90
H(X) = −(0.02·log₂0.02 + 0.03·log₂0.03 + 0.05·log₂0.05 + 0.90·log₂0.90)
= −(0.02·(−5.644) + 0.03·(−5.059) + 0.05·(−4.322) + 0.90·(−0.152))
= −(−0.1129 − 0.1518 − 0.2161 − 0.1368)
= −(−0.6175)
H(X) = 0.6175 bits → R = (2.0000 − 0.6175) / 2.0000 = 0.6912 (69.1%)
🔴
El 90% de los eventos son CRITICO. La fuente produce solo 0.6175 bits de información por símbolo — el resto es redundancia. Los datos son altamente compresibles en teoría (69.1%), porque el símbolo dominante podría codificarse con muy pocos bits. Nota operativa: durante un incidente activo, la redundancia alta también es una señal de alerta — una fuente que normalmente produce 1.3–2 bits/símbolo y cae a 0.6 bits/símbolo indica que el sistema está dominado por un solo tipo de evento, lo que por sí solo amerita atención inmediata.
d
Relación con el límite teórico de Shannon

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.

Límite inferior de compresión = H(X) bits/símbolo
Longitud de código actual = log₂(n) = H_max bits/símbolo (sin compresión)
Ahorro teórico máximo = H_max − H(X) bits/símbolo
Redundancia R = (H_max − H(X)) / H_max → fracción compresible
Perfil A: límite = 2.0000 bits/símbolo → no se puede comprimir nada
Perfil B: límite = 1.3190 bits/símbolo → el 34.1% del tráfico es compresible
Perfil C: límite = 0.6175 bits/símbolo → el 69.1% del tráfico es compresible

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
Diurno — R
 
R = 0%
Nocturno — R
34.1%
R = 34%
Incidente — R
69.1%
R = 69%

Las cuatro métricas — de un vistazo

💡 Recordatorio conceptual Todas estas métricas miden cantidades de información (bits por símbolo). Cuando se interpretan como "incertidumbre" en un contexto pedagógico es porque, antes de observar el resultado, la cantidad de información que produce la fuente coincide con la variabilidad del sistema. Pero en aplicaciones de compresión o capacidad de canal, es más preciso hablar de información promedio.
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)

Relaciones fundamentales

H(X,Y) ≤ H(X) + H(Y) ← igualdad si independencia
H(X,Y) = H(X) + H(Y|X) ← regla de la cadena
I(X;Y) = H(X) − H(X|Y)
I(X;Y) = H(Y) − H(Y|X)
H(X,Y) = H(X) + H(Y) − I(X;Y)

Casos extremos

Independencia → I(X;Y) = 0
H(X,Y) = H(X)+H(Y)
H(Y|X) = H(Y)
Dep. total → I(X;Y) = H(X) = H(Y)
H(Y|X) = 0
Distribución uniforme → R = 0
Distribución det. → R = 1