Ho un gruppo di 3.000.000 di elementi interi con valori casuali compresi da 0 a 100 con frequenza uniforme. Ho necessita di aumentare o diminuire la loro media con qualsiasi procedimento.

Dal momento che la domanda del lettore non era formulata in
modo del tutto chiaro, abbiamo deciso di riportare di seguito le risposte di
Carlo Consoli e di Gino Favero, che hanno seguito due interpretazioni
diverse.


La domanda definisce una successione {A1,
…, An} di variabili aleatorie (valori casuali)
appartenenti con distribuzione uniforme all’intervallo [0, m]
intervallo dei naturali. Nel caso specifico,
n = 3 * 106 e m = 100.

      La distribuzione dei
valori delle variabili aleatorie di questi elementi è praticamente
casuale, ovvero ciascun valore j = 0, …, 100
occorre tra le variabili aleatorie in modo quasi uniforme. Indicando con
fj la frequenza con cui occorre il valore j nella
successione di variabili aleatorie, si ottiene:



con |d| << n (molto minore di
n in valore assoluto) che varia nell’intervallo dei naturali
[-103, 103]. Si osservi che il numero di valori
ammessi è m + 1, ovvero 101 nel caso specifico. Le
variabili aleatorie variano infatti tra 0 (compreso) e 100. La media
è 50, e qui ne diamo dimostrazione formale. La media, che indichiamo
con a, si ottiene sommando i valori possibili delle variabili
aleatorie per la frequenza della loro occorrenza, e dividendo il tutto per il
numero di occorrenze totali, cioè,


.

Infatti, il termine d / n, essendo
|d| << n, è trascurabile e può
essere ignorato (per questo l’ultimo termine è riportato con il segno
di “circa uguale”). Ricordando che la somma dei primi m numeri
naturali è uguale a m(m + 1) / 2,
fattorizzando la sommatoria per il termine costante
1 / (m + 1) si ottiene:


,

nel caso specifico, m / 2 = 50.
Con un breve calcolo, si dimostra che l’errore e di approssimazione
massimo in valore assoluto che si commette è dato da:


,

errore pari a circa 1.68: la media, quindi varia tra 48.32 e
51.68.

      Nello specifico, non
è possibile variare la somma totale delle variabili aleatorie, infatti
aumentando una delle variabili, si deve diminuire della stessa
quantità una delle altre. Questo vuol dire che la sommatoria delle
variabili aleatorie deve essere costante
(diciamo K). È
proprio questo il vincolo che le rende irrisolvibile il problema: infatti la
sommatoria delle variabili concorre al calcolo della media, secondo la
definizione classica e più immediata di media aritmetica:


.

In effetti il risultato è controintuitivo
perché, a rigor di logica, potendo aumentare le variabili aleatorie
prossime al 100 e diminuire quelle a valori minori, la media dovrebbe
aumentare. Così non è. Infatti, aumentando una variabile a
valori “alti” e diminuendo un’altra a valori “bassi”, il “baricentro”
complessivo (cioè la media) non cambia. È come voler cambiare
il fulcro della leva spostando contemporaneamente i due pesi ulteriormente
agli estremi.

CC


Dalla domanda, sembra di capire che il lettore si sta
confrontando con un campione casuale (A1, …,
An) di n = 3000000 di variabili casuale
discrete, indipendenti e identicamente distribuite a valori nell’intervallo
intero [0,100], valori che vengono assunti con uguale probabilità
1/101. Questa interpretazione sembra concordare con i dati del problema:
tale ipotesi statistica si accorda infatti nolto bene con le frequenze
campionarie riportate dal lettore.

      Volendo aumentare la
media, sembra di capire che il lettore provi a modificare i valori assunti da
alcune di queste variabili aleatorie secondo una strategia “a priori”,
cioè, basata sulla posizione delle variabili casuali nella
successione e non sul loro valore. Sembra anche di capire che una
formulazione matematica concisa per quello che il lettore riporta come
“sommare un valore a un elemento” Ai secondo il vincolo che
“se a 100 aggiungo 1 diventa 0, se a 100 aggiungo 2 diventa 1” sia la
seguente: dopo aver aggiunto a al valore ai assunto
dalla variabile aleatoria Ai se ne prende il resto della
divisione per 101, che in matematica si indica con il simbolo “mod”. Anche
questo concorda con quanto riferito dal lettore, perché per esempio si
ha
(100 + 1) mod 101 = 101 mod 101 = 0
e
(100 + 2) mod 101 = 102 mod 101 = 1.
Il lettore si chiede quindi perché questi suoi tentativi non abbiano
avuto alcun effetto dal punto di vista della media risultante.

      Ricordiamo che il
valore atteso, o speranza matematica, EX di una
variabile casuale X che assume soltanto un numero finito di valori
x1, …, xk è definita come la
somma dei valori assunti moltiplicati ciascuno per la probabilità di
venire assunto: in simboli,
EX = p1x1 + … + pkxk,
dove
pj := P{X = xj}.
In ipotesi soddisfatte dalle variabili aleatorie in questione è
verificato un risultato fondamentale del calcolo delle probabilità, la
legge dei grandi numeri, la quale afferma che la media
(A1 + … + An) / n
di n variabili aleatorie indipendenti e identicamente distribuite
(A1, …, An) tende, per n che
tende all’infinito, al valore atteso EA1 della variabile
aleatoria A1 (che viene scelta per comodità di
notazione: in realtà, dato che tutte le Ai hanno le
stesse distribuzioni, tutti i loro valori attesi sono uguali tra loro e al
valore atteso di A1). Una variante di questa legge dice
inoltre che, per n tendente all’infinito, si ha l’ulteriore
convergenza delle frequenze campionarie fj (definite come
il rapporto tra il numero di volte in cui è stato assunto il valore
j = 1, …, k e il numero totale n
di valori) verso la probabilità pj. Per stimare la
velocità di questa convergenza si può usare un altro risultato
molto forte del calcolo delle probabilità, il teorema del limite
centrale
, sul quale forse non vale la pena di soffermarsi troppo: quello
che importa è che, nel caso in questione, tale teorema ci assicura che
con tre milioni di campioni si ha il 99.99% di probabilità di ottenere
una media compresa tra 49.98 e 50.02 (cioè, con uno scarto dalla media
“teorica” minore dello 0.04%), e la stessa probabilità del 99.99% di
ottenere frequenze campionarie che si scostano da quella “teorica”
(1 / 101) di meno del 2.5%.

      Questa lunga premessa
serve a giustificare il fatto che, invece di ragionare sulla media
campionaria di tutti i tre milioni di dati, si può considerare il
valore atteso di uno di essi e osservare l’effetto che le trasformazioni
suggerite dal lettore hanno su una singola variabile aleatoria. È
allora chiaro perché le trasformazioni operate dal lettore non hanno
alcun effetto sulla media: se la variabile Ai ha
distribuzione uniforme nell’insieme
{0, 1, …, 100} e
a è un qualsiasi numero intero, allora anche la variabile

(Ai + a) mod 101 ha
distribuzione uniforme nello stesso insieme.
Per dimostrare questo
risultato, basta osservare che la funzione
f : x –> (x + a) mod 101
è una funzione biiettiva dell’insieme {0, 1, …, 100}
in sé e quindi opera semplicemente un “rimescolamento” dei valori,
senza cambiare la probabilità con cui ciascuno di essi viene assunto.
Le trasformazioni operate dal lettore trasformano allora il campione casuale
in un altro campione casuale avente esattamente la stessa distribuzione e,
quindi, la stessa media e gli stessi comportamenti aleatori.

      Le cose cambiano
leggermente se possiamo cambiare l’insieme di arrivo delle variabili
aleatorie Ai prendendo a reale e non intero. Se,
per esempio, a = 0.5, allora la variabile aleatoria
(Ai+ 1) mod 101 assume con
probabilità 1 / 101 tutti i valori nell’insieme
{1.5, 2.5, …, 99.5} e, inoltre, il valore 0.5 con
probabilità 2 / 101 (tale valore, infatti, proviene da due
distinti valori di Ai: lo 0 e il 100, ciascuno dei quali
viene assunto con probabilità 1 / 101). Il suo valore
atteso è pertanto


(2 / 101)*0.5 + (1/101)(1.5 + 2.5 + … + 99.5) = 50005 / 1010 ~ 49.51:

questa trasformazione ottiene cioè il risultato di
diminuire il valore atteso. Questo ci suggerisce allora di operare
una trasformazione in un certo senso “opposta”: togliendo infatti lo
stesso valore 0.5 alla variabile aleatoria Ai si ottiene
una nuova variabile aleatoria che assume tutti i valori nell’insieme
{0.5, 2.5, …, 98.5} con probabilità 1 / 101
e il valore 99.5 con probabilità 2 / 101 e il cui valore
atteso è quindi (con calcoli analoghi ai precedenti)
50995 / 1010 ~ 50.49. Si può migliorare
leggermente questo risultato togliendo un numero più vicino a zero:
per esempio, con a = 0.01 si ottiene un valore atteso di
514899 / 10100 ~ 50.98.

      Va osservato a questo
punto che una trasformazione di questo tipo non può dare risultati
migliori di questo. Se si vuole ottenere una variazione più
consistente della media, è allora necessario operare altri tipi di
trasformazioni: per esempio, si può dimostrare che la trasformazione
f : x –> x4 mod 101
porta la media a 56 e che la trasformazione
f : x –> 50 + int(x / 2 + 1)
porta la media a 75. Si potrebbero senz’altro cercare altre trasformazioni,
ma bisognerebbe conoscere con più precisione i vincoli ai quali il
lettore deve obbedire.

      Notiamo infine che
modificare soltanto un sottoinsieme delle variabili casuali che compongono il
campione ha semplicemente l’effetto di “diluire” l’eventuale modifica del
valore atteso: in sostanza, se la trasformazione che scegliamo porta il
valore atteso da 50 a 60 (cioè lo modifica di 10), la media
campionaria sarà vicina a 60 se modifichiamo tutto il campione, vicina
a 55 (50 + 10 / 2) se modifichiamo metà delle
variabili aleatorie che lo compongono (esempio, applicando la trasformazione
una variabile sì e una no), vicina a 53.33 se modifichiamo un terzo
delle variabili aleatorie che lo compongono, e così via.