domenica, dicembre 14, 2008

MCCN VIII

Giovedì abbiamo trattato il problema delle correlazioni fra variabili casuali - come al solito, la dispensa è qui.

Una famiglia di variabili casuali è detta indipendente se la distribuzione di probabilità si lascia fattorizzare nel prodotto delle probabilità marginali. Evidentemente, se X eY sono indipendenti, allora EXY=EXEY. In questo caso, si dice che X e Y non sono correlate.

Un errore che avviene molto spesso è quello di confondere correlazione e causalità. Cioè, dall'osservazione di una correlazione non nulla fra due variabili si deduce che una relazione causale fra le due variabili è presente. In realtà, ci sono vari effetti che possono indurre correlazioni.

1) Causalità diretta: ovviamente se X è la causa di Y, allora X e Y saranno correlate. In termini matematici: se Y=f(X), allora le due variabili non sono indipendenti; in genere, dunque, la covarianza delle due variabili, che è una possibile misura della loro correlazione, sarà non nulla.

2) Causalità comune: se X e Y sono due effetti della stessa causa, allora X e Y saranno correlate, in genere. Cioè, se Z è una variabile casuale, e f e g sono due funzioni non invertibili tali che X=f(Z) e Y=g(Z), allora, in generale, X e Y saranno correlate.

3) Dinamiche di reti: supponiamo adesso che X e Y siano immerse in una rete di interazioni. Allora, anche se X e Y non sono causalmente collegate, ne' hanno un input comune, di solito saranno correlate.

Qui trovate un breve script in python che mostra come 1) e 2) sono due effetti di dimensioni comparabili. Vengono create tre reti neurali elementari con delle dinamiche neuronali molto semplici. Ogni neurone può essere attivo o meno; se è attivo, ha una certa probabilità di emettere un potenziale d'azione che può cambiare il livello di attività degli altri neuroni.

La prima rete neurale è formata da un neurone di input e uno di output. Viene misurata il coefficiente di correlazione fra l'input e l'output.
La seconda rete (di controllo) è formata da due copie di reti I/O. Viene misurata il coefficiente di correlazione fra i due output.
La terza rete è formata da un input collegato a due diversi neuroni di output. Viene misurata il coefficiente di correlazione fra i due output.

Si può osservare che nel secondo caso il coefficiente di correlazione è 0 come atteso. Nel primo caso è tipicamente di un ordine di grandezza superiore al terzo caso; dato che però, a seconda dei parametri, le grandezza in gioco variano di più di un ordine di grandezza, non è possibile distinguere 1) da 3) a priori.

PS: ovviamente consiglio di installare python. Se l'avete fatto, per far funzionare lo script copiate il file in una cartella, entrate nella cartella e digitate in una console

'run mininetwork.py'

Dopo qualche secondo appariranno i risultati della simulazione. Se dovesse impiegare troppo tempo, aprite il file dello script e diminuite il numero degli steps della simulazione, si spiega da solo come farlo.

Nessun commento: