Corso
Nel mio primo corso universitario di statistica basata sulla programmazione, l'insegnante ci pose una domanda: come possiamo modellare il moto browniano di una singola particella di polline in una goccia d'acqua? Dopo diversi tentativi fuori strada, io e i miei compagni arrivammo infine alla risposta corretta: un random walk. Ho poi scoperto che questo semplice modello viene usato per rappresentare ogni sorta di fenomeno, dai movimenti degli animali alle fluttuazioni dei prezzi azionari.
In questo articolo esploreremo le basi matematiche dei random walk, esamineremo diversi tipi e discuteremo le loro applicazioni. Parte dell'interesse per il random walk sta nel fatto che è usato in tantissime discipline. Oltre al mio esempio, in fisica aiuta a descrivere il movimento delle particelle; in finanza modella le fluttuazioni dei prezzi azionari; e in biologia spiega i pattern di movimento degli animali. I random walk catturano l'aleatorietà del mondo reale, fondamentale per simulare processi stocastici.
Per chi vuole costruire basi solide nella statistica alla base della teoria del random walk, consigliamo di iniziare con il corso Introduction to Statistics in R o con il corso Introduction to Statistics in Python.
Cosa sono i random walk?
In teoria della probabilità, un random walk è un modello che descrive una sequenza di passi casuali che compongono un percorso. In altre parole, potremmo dire che un random walk è un modello matematico che descrive un cammino formato da una sequenza di passi, ognuno determinato in modo indipendente e con una certa probabilità. Questa componente stocastica rende i random walk intrinsecamente imprevedibili.
Immagina una persona che a ogni istante compie un passo in una direzione casuale. Nel tempo, il suo percorso forma una traccia irregolare e imprevedibile. Nonostante la semplicità, questo concetto ha una sorprendente profondità e versatilità, modellando vari scenari reali che coinvolgono casualità.

Spiegazione concettuale di un random walk. Immagine per gentile concessione di napkin.ai.
L'idea dei random walk risale ai primi studi sulla probabilità. Uno dei primi esempi, spesso chiamato passeggiata dell'ubriaco, illustra come una persona che si muove a caso vagherà in modo irregolare invece di avanzare in modo prevedibile verso una destinazione. Questa casualità, unita all'assunzione che ogni passo sia indipendente dai precedenti, ha posto le basi per i moderni modelli di random walk.
Capire la matematica dei random walk
Per comprendere i random walk, partiamo da un caso semplice: un random walk unidimensionale (1D). Immagina una particella su una retta numerica. A ogni passo può muoversi di +1 o -1 lungo la retta. Ogni spostamento è determinato da uguale probabilità di andare a destra o a sinistra. Nel tempo, la posizione della particella forma una distribuzione di probabilità che si allarga, rappresentando la probabilità di trovarla in varie posizioni.
Questo principio può essere esteso a due o tre dimensioni. In un random walk bidimensionale (2D), la particella si muove su un piano e può compiere un passo in una delle quattro direzioni cardinali (su, giù, sinistra, destra) con uguale probabilità. Allo stesso modo, in un random walk tridimensionale (3D), la particella si muove nello spazio e può compiere un passo in una delle sei direzioni possibili (su, giù, sinistra, destra, avanti, indietro) con uguale probabilità. Questi random walk in dimensioni superiori catturano scenari ancora più complessi e realistici.
Una caratteristica distintiva dei random walk è la loro natura stocastica, cioè ogni passo dipende solo dalla posizione attuale e non da quelli precedenti. Per questo sono un tipo di processo di Markov: un concetto matematico in cui lo stato futuro dipende unicamente dallo stato presente, non dalla sequenza di eventi che lo ha preceduto. Questo movimento "senza memoria", combinato con le distribuzioni di probabilità che descrivono le posizioni potenziali, fornisce una solida base matematica per comprendere i random walk.
Possiamo analizzare un random walk usando proprietà statistiche per comprenderne il comportamento nel tempo. Ciò implica esaminare aspetti come la distanza attesa dal punto di partenza, la distribuzione di probabilità delle posizioni possibili e la probabilità di tornare all'origine. Queste analisi ci aiutano a quantificare casualità e prevedibilità, fornire insight sui pattern e fare previsioni.
Proprietà chiave dei random walk
I random walk hanno diverse proprietà importanti che ci aiutano a comprenderne il comportamento e le applicazioni. Ecco alcuni aspetti chiave da considerare:
Valore atteso e varianza
In un random walk unidimensionale, possiamo calcolare la distanza attesa (o posizione media) dal punto di partenza nel tempo. Se ogni passo ha pari probabilità di andare a sinistra o a destra, la posizione attesa dopo molti passi rimane zero, il che implica che, in media, il camminatore resta vicino al punto di partenza.
Tuttavia, la varianza della posizione, che misura l'ampiezza o dispersione delle posizioni possibili, aumenta a ogni passo. In particolare, in un random walk simmetrico, la varianza cresce linearmente con il numero di passi, rendendola un indicatore utile della distanza tipica dall'origine nel tempo.
Autocorrelazione
Mentre i random walk semplici non presentano correlazione tra i passi (ogni passo è indipendente dal precedente), alcuni tipi di random walk introducono autocorrelazione, per cui i passi passati possono influenzare quelli futuri. Per esempio, in un random walk con bias, i passi possono avere una lieve tendenza in una direzione, rendendo le posizioni più prevedibili.
L'autocorrelazione in un random walk influisce su come modelliamo e prevediamo la sua evoluzione. Questo è particolarmente rilevante in applicazioni in cui il comportamento passato influenza i passi futuri, come in alcuni modelli finanziari.
Teorema centrale del limite
Il teorema centrale del limite (CLT) ci dice che la somma di un grande numero di variabili casuali indipendenti tende a seguire una distribuzione normale (o gaussiana), indipendentemente dalla distribuzione originaria. Nel contesto dei random walk, ciò significa che all'aumentare del numero di passi, la distribuzione delle posizioni tende ad assomigliare a una distribuzione normale. Questa è una proprietà utile perché ci consente di approssimare la probabilità di trovare il camminatore a determinate distanze dal punto di partenza.
Legge dei grandi numeri
La legge dei grandi numeri (LLN) spiega che, all'aumentare del numero di prove o passi, la media dei risultati converge al valore medio vero. Per i random walk, questo significa che, mentre la posizione media resta zero, la varianza e l'intervallo delle posizioni possibili crescono in modo prevedibile con ogni passo aggiuntivo. Questo principio aiuta a colmare il divario tra pura casualità e pattern statistici prevedibili in grandi campioni.
Tipi di random walk
I random walk variano ampiamente a seconda delle regole che governano ciascun passo. Questi tipi influenzano il comportamento del cammino. Alcuni sono pensati per ambienti semplici o strutturati, mentre altri sono adatti a fenomeni più complessi e reali. Esploriamo alcuni dei tipi più comuni di random walk.
Random walk 1D, 2D e 3D
La dimensionalità di un random walk ha un ruolo fondamentale nel suo comportamento. In un random walk 1D, ogni passo è uno spostamento in avanti o indietro lungo una linea. Questo rende il cammino relativamente facile da modellare e prevedere.
Tuttavia, passando a cammini 2D (piano) e 3D (spazio), i percorsi possibili aumentano notevolmente, introducendo nuovi comportamenti. Per esempio, in un random walk 2D, la probabilità di tornare al punto di partenza resta alta, mentre in un random walk 3D questa probabilità diminuisce.
Questo cambiamento è importante in campi come fisica e chimica, dove le particelle possono diffondere in modo diverso a seconda dei vincoli dimensionali.
Random walk su reticolo
In un random walk su reticolo, il movimento è confinato a punti discreti su una griglia o reticolo. Questo tipo di cammino è comunemente usato in fisica e teoria delle reti, dove i nodi sono disposti su una griglia e il movimento può avvenire solo verso i nodi adiacenti.
Un esempio comune è un reticolo 2D, dove ogni passo consente di muoversi verso i punti adiacenti su una griglia cartesiana. Questo vincolo semplifica la modellizzazione limitando i percorsi di movimento, utile quando si simulano reti complesse o strutture molecolari.
Random walk gaussiano
In un random walk gaussiano, l'ampiezza di ogni passo è determinata da una distribuzione gaussiana (o normale). Invece di muoversi di una distanza fissa, l'ampiezza del passo varia secondo una distribuzione a campana, con la maggior parte dei passi piccoli e occasionali salti più grandi. Questo tipo di cammino è spesso usato nella modellizzazione finanziaria per tenere conto della variabilità dei cambiamenti dei prezzi degli asset.
Random walk eterogenei e con bias
I random walk eterogenei e con bias consentono variazioni nella direzione e nell'ampiezza dei passi in base a determinate probabilità. Questa flessibilità li rende più adattabili a scenari reali.
In un random walk eterogeneo, la probabilità di muoversi in una direzione può cambiare in base alla posizione o a condizioni esterne. Per esempio, animali in cerca di cibo possono preferire aree con risorse note, creando un random walk con bias. Questi cammini sono utili per studiare comportamenti che dipendono da fattori contestuali.
Random walk con drift
In un random walk con drift, c'è una tendenza costante a muoversi in una direzione. Ad esempio, i prezzi azionari possono mostrare una tendenza generale al rialzo nel tempo nonostante le fluttuazioni giornaliere. Il drift in questi cammini rappresenta una forza esterna o una tendenza che influenza il percorso. Questo tipo è spesso osservato in finanza, dove i modelli incorporano un termine di drift per rappresentare crescita o declino, fornendo un approccio più realistico per prevedere prezzi degli asset e trend di mercato.
Ciascuno di questi tipi di random walk ha uno scopo specifico e offre modi diversi per modellare un comportamento casuale ma strutturato. I vincoli dimensionali, la distribuzione dei passi e la presenza di drift o bias rendono i random walk estremamente versatili per modellazione e simulazione dei dati in vari campi.
Applicazioni reali dei random walk
I random walk non sono solo costrutti teorici; svolgono un ruolo essenziale in molte applicazioni pratiche tra le discipline. Vediamo come i random walk guidano la risoluzione di problemi reali in vari settori.
Applicazioni in data science e machine learning
Informatica
I random walk sono alla base di diversi algoritmi informatici, come il campionamento casuale, la traversata di grafi del web e la segmentazione delle immagini. Ad esempio, il PageRank di Google utilizzava random walk per classificare le pagine web in base alla loro rilevanza, simulando come un utente potrebbe navigare casualmente tra i link su internet.
Estrazione di caratteristiche
Nel machine learning, i random walk possono aiutare a estrarre feature evidenziando le relazioni tra i punti dati. Ad esempio, nell'analisi di rete, i random walk possono rivelare cluster o comunità, supportando attività come i sistemi di raccomandazione e l'analisi dei social network.
Rilevamento di anomalie
I random walk possono essere usati anche per rilevare anomalie nei dataset. Per esempio, se dei punti dati si discostano in modo significativo da un percorso tipico in un modello di random walk, questi punti potrebbero indicare eventi insoliti o errori nei dati. Il rilevamento di anomalie è particolarmente prezioso in ambiti come la cybersecurity e la rilevazione di frodi.
Simulazione di processi stocastici
I random walk simulano processi stocastici, cioè determinati casualmente, consentendo ai data scientist di modellare fenomeni reali imprevedibili. Simulando random walk, possiamo ottenere insight su sistemi in cui la previsione precisa è difficile, come i pattern meteorologici o i comportamenti dei clienti.
Previsioni di serie temporali
Nell'analisi delle serie temporali, i random walk sono alla base di alcuni modelli previsionali, inclusa l'ipotesi del random walk in finanza. Questi modelli assumono che i valori futuri in una serie temporale dipendano esclusivamente dal valore più recente, senza correlazione con i trend passati. Per saperne di più sulle previsioni di serie temporali, dai un'occhiata a ARIMA per le previsioni di serie temporali: guida completa. Inoltre, segui il nostro corso Forecasting in R con il Professor Hyndman, che collega i modelli di random walk ai metodi naive e seasonal naive.
Applicazioni in altri campi
Finanza
Uno degli usi più noti dei random walk è nella modellizzazione finanziaria, in particolare per prevedere i prezzi azionari. L'ipotesi dei mercati efficienti suggerisce che i movimenti dei prezzi azionari siano essenzialmente casuali, poiché le nuove informazioni vengono assorbite istantaneamente, rendendo i prezzi futuri imprevedibili. I random walk possono essere usati per modellare i cambiamenti dei prezzi nel tempo, illustrando come i prezzi fluttuino senza un percorso prevedibile.
Matematica
In matematica pura, i random walk forniscono soluzioni a problemi complessi. Ad esempio, sono utili per risolvere l'equazione di Laplace, analizzare le reti ed esplorare la combinatoria.
Fisica e chimica
Nelle scienze fisiche, i random walk sono cruciali per modellare i processi di diffusione, come il modo in cui le molecole si distribuiscono in un mezzo. Il moto browniano, in cui le particelle sospese in un fluido si muovono in modo imprevedibile a causa delle collisioni con le molecole circostanti, è un classico esempio che può essere simulato accuratamente tramite random walk. È proprio così che ho imparato per la prima volta cosa sono i random walk.
Biologia
I random walk sono preziosi in ecologia per studiare i pattern di movimento degli animali. Gli animali in cerca di risorse possono sembrare muoversi secondo un random walk, a volte con bias verso regioni con risorse note. Altri concetti biologici, come la diffusione di popolazioni o geni, possono spesso essere modellati con i principi del random walk, semplificando la comprensione e la previsione dei cambiamenti negli ecosistemi.
Casi particolari e varianti dei random walk
Oltre al classico random walk, diverse varianti avanzate estendono il concetto per adattarlo ad applicazioni specializzate.
Passeggiate autoevitanti
Una passeggiata autoevitante è un random walk in cui il percorso non rivisita nessuna posizione già toccata. Questa variante è particolarmente utile in campi come la chimica dei polimeri, dove può modellare come si formano le catene polimeriche senza incrociarsi. Poiché ogni passo evita i punti già visitati, le passeggiate autoevitanti sono più vincolate rispetto ai random walk tradizionali. Ciò le rende computazionalmente impegnative ma utili per comprendere percorsi non sovrapposti in spazi ristretti.
Ramificazione
Nei random walk ramificati, il percorso può dividersi in più rami, e ciascun ramo segue un random walk. Questo tipo di cammino è fondamentale per modellare processi ramificati come la divisione cellulare o la diffusione di informazioni nelle reti. Ogni "ramo" rappresenta un percorso casuale indipendente che ha origine da una fonte comune.
Passeggiate correlate
Le passeggiate correlate fanno un passo oltre, in cui la direzione di ogni passo è parzialmente influenzata da quella del passo precedente. Questa variante è utile per modellare l'inerzia in sistemi in cui i cambiamenti avvengono gradualmente piuttosto che in modo del tutto casuale. Le passeggiate correlate sono spesso applicate in finanza per simulare trend di prezzo o in ecologia del movimento per capire come gli animali si muovono ricordando in parte la direzione passata.
Passeggiate con cancellazione dei loop
Una passeggiata con cancellazione dei loop è una variante in cui i loop, ovvero i tratti in cui il percorso si incrocia, vengono rimossi mentre si formano. Ogni volta che un passo rivisita una posizione, il loop intermedio viene cancellato, lasciando un percorso snello e non ripetitivo. Le passeggiate con cancellazione dei loop sono comunemente applicate nell'analisi di reti e negli algoritmi di generazione di labirinti perché creano percorsi che evitano ridondanze.
Implementare random walk in Python
Proviamo a implementare un random walk in Python. Per iniziare, assicurati di avere Python installato (useremo Python 3.10) e le librerie necessarie disponibili. Puoi installare le librerie mancanti con pip. Ecco cosa useremo:
import numpy as np # for numerical operations and generating random steps
import matplotlib.pyplot as plt # for plotting and visualizing the random walks
Random walk 1D
Inizieremo con un semplice random walk unidimensionale, in cui ogni passo è +1 o -1, scelto casualmente.
# Parameters
n_steps = 100 # Number of steps
# Generate random steps: +1 or -1
steps = np.random.choice([-1, 1], size=n_steps)
# Calculate positions
positions = np.cumsum(steps)
# Plot the random walk
plt.figure(figsize=(10, 6))
plt.plot(positions, marker='o', linestyle='-', markersize=4)
plt.title("1D Random Walk")
plt.xlabel("Step")
plt.ylabel("Position")
plt.grid(True)
plt.show()
Questo genera un semplice random walk e visualizza l'andamento nel tempo. Ecco l'output quando eseguo il codice:

Ricorda: stiamo eseguendo un modello stocastico. Questo significa che ogni volta che lo eseguiamo, l'output avrà un aspetto un po' diverso.
Random walk 2D
Ora estendiamo il random walk a due dimensioni. A ogni passo, la direzione sarà scelta casualmente.
# Parameters
n_steps = 500
# Generate random steps in x and y directions
x_steps = np.random.choice([-1, 1], size=n_steps)
y_steps = np.random.choice([-1, 1], size=n_steps)
# Calculate positions
x_positions = np.cumsum(x_steps)
y_positions = np.cumsum(y_steps)
# Plot the 2D random walk
plt.figure(figsize=(8, 8))
plt.plot(x_positions, y_positions, marker='o', linestyle='-', markersize=2, label='Random Walk')
plt.plot(x_positions[0], y_positions[0], 'ro', markersize=8, label='Start') # Red dot for start
plt.plot(x_positions[-1], y_positions[-1], 'ko', markersize=8, label='End') # Black dot for end
plt.title("2D Random Walk")
plt.xlabel("X Position")
plt.ylabel("Y Position")
plt.grid(True)
plt.axis('equal') # Ensures equal scaling for both axes
plt.legend()
plt.show()
Questo codice crea un percorso visivamente coinvolgente in due dimensioni.

Questo tipo di random walk bidimensionale può essere adattato per applicazioni come il moto delle particelle o la modellazione spaziale.
Random walk con bias
Infine, vediamo un esempio leggermente più complesso: un random walk con bias. Per introdurre un bias, possiamo regolare le probabilità di ciascuna direzione di passo. Ad esempio, possiamo rendere più probabili i passi verso l'alto.
# Parameters
n_steps = 100
bias = 0.7 # Probability of stepping +1
# Generate biased random steps in x and y directions
x_steps = np.random.choice([-1, 1], size=n_steps, p=[1-bias, bias])
y_steps = np.random.choice([-1, 1], size=n_steps, p=[1-bias, bias])
# Calculate positions
x_positions = np.cumsum(x_steps)
y_positions = np.cumsum(y_steps)
# Plot the biased 2D random walk
plt.figure(figsize=(8, 8))
plt.plot(x_positions, y_positions, marker='o', linestyle='-', markersize=2, label='Random Walk')
plt.plot(x_positions[0], y_positions[0], 'ro', markersize=8, label='Start') # Red dot for start
plt.plot(x_positions[-1], y_positions[-1], 'ko', markersize=8, label='End') # Black dot for end
plt.title("Biased 2D Random Walk")
plt.xlabel("X Position")
plt.ylabel("Y Position")
plt.grid(True)
plt.axis('equal') # Ensures equal scaling for both axes
plt.legend()
plt.show()
Modificando il bias, puoi osservare come il cammino tenda a favorire una direzione particolare, simulando scenari reali come il drift dei prezzi azionari o i pattern di migrazione animale.

Se cambiamo il parametro di bias a 0,55, possiamo vedere una differenza netta nel comportamento del modello. Pur mantenendo una preferenza per andare verso l'alto, il bias è meno forte, portando a più loop e deviazioni.

Conclusione
I random walk sono uno strumento di modellazione prezioso per i data scientist, applicabile in campi che vanno dalla fisica alla finanza e oltre. La loro capacità di modellare processi stocastici complessi li rende indispensabili in molti scenari reali.
Vuoi approfondire? Scopri la suite di corsi di probabilità e statistica di DataCamp. Troverai un sacco di ottimi corsi sia in Python che in R. Se ti interessa contenuto più avanzato, dai un'occhiata al corso di DataCamp su Statistical Simulation in Python e al tutorial Introduction to Machine Learning. Oppure, se sei pronto a mettere alla prova le tue conoscenze, cimentati con questi rompicapi di probabilità.
Sono un PhD con 13 anni di esperienza nel lavoro con i dati in un contesto di ricerca biologica. Creo software in diversi linguaggi di programmazione, tra cui Python, MATLAB e R. Sono appassionato di condividere con il mondo il mio amore per l’apprendimento.
FAQ sui random walk
Cos'è un random walk?
Un random walk è un modello matematico che descrive un percorso costituito da una successione di passi casuali.
Quali sono alcune applicazioni dei random walk?
I random walk sono usati in diversi ambiti: dal modellare il moto delle particelle, al simulare i movimenti dei prezzi azionari, fino a comprendere i pattern di movimento degli animali.
Qual è la differenza tra un random walk semplice e uno con bias?
In un random walk semplice, ogni passo ha la stessa probabilità di essere in qualsiasi direzione. In un random walk con bias, le probabilità di compiere passi in certe direzioni sono diseguali, introducendo una preferenza o "bias" verso direzioni particolari.
Come si applicano i random walk alla modellizzazione finanziaria?
I random walk vengono usati per simulare e prevedere i prezzi azionari e i trend di mercato grazie alla loro capacità di modellare l'incertezza e la volatilità intrinseche.
Un random walk è lo stesso di un processo di Markov?
Un random walk è un tipo specifico di processo di Markov in cui il passo successivo dipende solo dalla posizione corrente.


