Appendice U — Entropia di una variabile casuale continua

Preparazione del Notebook

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats
import scipy as sc
import statistics as st

U.1 Calcolo dell’Entropia per una Distribuzione Uniforme

Il caso più semplice riguarda una distribuzione uniforme continua. Consideriamo una variabile casuale X uniformemente distribuita nell’intervallo (a, b). Per questa distribuzione:

  • L’insieme dei valori possibili per X, detto immagine di X e indicato con Im(X), è l’intervallo (a, b):

    \[ \text{Im}(X) = (a, b). \]

  • La funzione di densità di probabilità f(x) è definita come:

    \[ f(x) = \begin{cases} \frac{1}{b - a}, & \text{per } x \in (a, b) \\ 0, & \text{altrimenti} \end{cases} \]

L’entropia H(X) di una variabile casuale continua è definita come:

\[ H(X) = -\int_{\text{Im}(X)} f(x) \log_2(f(x)) \, dx. \]

Per la nostra distribuzione uniforme, possiamo calcolarla come segue. Calcoliamo prima \(h(f(x)) = -\log_2(f(x))\):

\[ \begin{align*} h(f(x)) &= -\log_2(f(x)) \\ &= -\log_2\left(\frac{1}{b - a}\right) \\ &= \log_2(b - a). \end{align*} \]

Ora possiamo scrivere l’espressione per l’entropia:

\[ H(X) = \int_a^b f(x) \cdot h(f(x)) \, dx = \int_a^b \frac{1}{b - a} \cdot \log_2(b - a) \, dx. \]

Osserviamo che all’interno dell’integrale abbiamo due termini costanti rispetto a x:

  • \(\frac{1}{b - a}\) è costante perché b e a sono i limiti dell’intervallo.
  • \(\log_2(b - a)\) è anche costante per lo stesso motivo.

Grazie alla proprietà delle costanti negli integrali, possiamo estrarre questi termini costanti dall’integrale:

\[ H(X) = \frac{1}{b - a} \cdot \log_2(b - a) \cdot \int_a^b \, dx. \]

Calcoliamo l’integrale rimanente:

\[ \int_a^b \, dx = [x]_a^b = b - a. \]

Sostituiamo questo risultato nell’equazione:

\[ H(X) = \frac{1}{b - a} \cdot \log_2(b - a) \cdot (b - a). \]

I termini \((b - a)\) si annullano:

\[ H(X) = \log_2(b - a) \cdot \frac{(b - a)}{(b - a)} = \log_2(b - a) \cdot 1 = \log_2(b - a). \]

In conclusione, l’entropia di una variabile casuale X uniformemente distribuita nell’intervallo (a, b) è:

\[ H(X) = \log_2(b - a). \]

Questa formula mostra che l’entropia di una distribuzione uniforme:

  1. Dipende solo dall’ampiezza dell’intervallo (b - a) e non dalla sua posizione specifica sull’asse reale.
  2. È espressa in bit, dato l’uso del logaritmo in base 2.
  3. Aumenta al crescere dell’ampiezza dell’intervallo, riflettendo una maggiore incertezza sulla posizione esatta della variabile casuale all’interno di un intervallo più ampio.

Ad esempio, calcoliamo l’entropia di una distribuzione uniforme di supporto [-4, 4].

# Definisco i limiti dell'intervallo
a = -4
b = 4

# Calcolo l'entropia
entropy_uniform = np.log2(b - a)
print(entropy_uniform)
3.0

U.2 Calcolo dell’Entropia per una Distribuzione Gaussiana Standardizzata

Calcoliamo ora l’entropia di una gaussiana standardizzata. Cominciamo dalla funzione di densità di probabilità per una variabile casuale gaussiana con media \(\mu\) e varianza \(\sigma^2\):

\[ f(x) = \frac{1}{\sqrt{2\pi \sigma^2}} \exp\left(-\frac{(x - \mu)^2}{2\sigma^2}\right). \]

Per una gaussiana standardizzata, ovvero una distribuzione normale con \(\mu = 0\) e \(\sigma^2 = 1\), la funzione di densità diventa:

\[ f(x) = \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{x^2}{2}\right). \]

L’entropia per una variabile casuale continua \(X\) con densità \(f(x)\) è data da:

\[ H(X) = - \int_{-\infty}^{+\infty} f(x) \log_2(f(x)) \, dx. \]

Inseriamo la densità della distribuzione normale standardizzata:

\[ H(X) = - \int_{-\infty}^{+\infty} \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{x^2}{2}\right) \log_2\left(\frac{1}{\sqrt{2\pi}} \exp\left(-\frac{x^2}{2}\right)\right) dx. \]

Separiamo il logaritmo dei prodotti in due parti:

\[ \log_2\left(\frac{1}{\sqrt{2\pi}} \exp\left(-\frac{x^2}{2}\right)\right) = \log_2\left(\frac{1}{\sqrt{2\pi}}\right) + \log_2\left(\exp\left(-\frac{x^2}{2}\right)\right). \]

Sappiamo che \(\log_2\left(\exp(x)\right) = \frac{x}{\ln(2)}\), quindi possiamo riscrivere il logaritmo della seconda parte:

\[ \log_2\left(\exp\left(-\frac{x^2}{2}\right)\right) = -\frac{x^2}{2} \log_2(e). \]

Ora possiamo riscrivere l’entropia come somma di due termini:

\[ H(X) = - \int_{-\infty}^{+\infty} \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{x^2}{2}\right) \left[ \log_2\left(\frac{1}{\sqrt{2\pi}}\right) + \left(-\frac{x^2}{2} \log_2(e)\right) \right] dx. \]

Il primo termine del logaritmo è costante rispetto a \(x\), quindi possiamo separarlo dall’integrale:

\[ H(X) = - \log_2\left(\frac{1}{\sqrt{2\pi}}\right) \int_{-\infty}^{+\infty} \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{x^2}{2}\right) dx. \]

L’integrale è semplicemente \(1\) (poiché la funzione densità di probabilità di una gaussiana standardizzata è normalizzata), quindi abbiamo:

\[ H(X) = - \log_2\left(\frac{1}{\sqrt{2\pi}}\right). \]

Semplifichiamo:

\[ \log_2\left(\frac{1}{\sqrt{2\pi}}\right) = -\frac{1}{2} \log_2(2\pi). \]

Quindi il primo termine contribuisce con:

\[ H(X) = \frac{1}{2} \log_2(2\pi). \]

Ora consideriamo il secondo termine dell’integrale:

\[ - \log_2(e) \int_{-\infty}^{+\infty} \frac{x^2}{2\sqrt{2\pi}} \exp\left(-\frac{x^2}{2}\right) dx. \]

Questo è l’integrale della varianza della distribuzione normale, che sappiamo valere \(\sigma^2 = 1\). Pertanto, l’integrale diventa:

\[ \frac{1}{2} \log_2(e). \]

Ora sommiamo i due contributi:

\[ H(X) = \frac{1}{2} \log_2(2\pi) + \frac{1}{2} \log_2(e). \]

Sappiamo che \(\log_2(e) \approx 1.4427\), quindi l’entropia complessiva è:

\[ H(X) = \frac{1}{2} \log_2(2\pi e) \approx 2.05. \]

L’entropia di una variabile casuale con distribuzione gaussiana standard è dunque circa 2.05 bit.

Per verificare il risultato, calcoliamo l’entropia della gaussiana standard usando le funzioni di scipy.

entropy_gaussian = stats.norm.entropy()

# Convertiamo l'entropia in bit (dato che scipy la fornisce in nats)
entropy_gaussian_bits = entropy_gaussian / np.log(2)

entropy_gaussian_bits
2.047095585180641

Confrontiamo il risultato ottenuto per la distribuzione gaussiana standardizzata con il caso precedente della distribuzione uniforme sull’intervallo \([-4, 4]\). Sebbene gran parte della massa della distribuzione gaussiana sia concentrata all’interno dello stesso intervallo, l’entropia della gaussiana risulta inferiore rispetto a quella della distribuzione uniforme. Questo è coerente con le nostre aspettative, poiché la distribuzione uniforme ha una maggiore incertezza: ogni valore all’interno dell’intervallo ha la stessa probabilità di verificarsi, mentre nella distribuzione gaussiana la probabilità si concentra attorno alla media, riducendo l’incertezza complessiva.