Il corso sarà di 40 ore, con inizio il 18 gennaio 2011.
Programma
Orario
Martedi-Giovedi, 15:00-17:00, Aula Rasetti.
Una raccomandazione (anzi, 5)
da trasmettere ai futuri studenti:
Five Frequently Fatal Freshman Physics Fantasies
Note, appunti, addendum, etc
- Mela di Newton:
- Punto della situazione a fine di gennaio:
- Come programma siamo circa alla quarta-quinta lezione
del 24° ciclo,
+ mini-intro al linguaggio R,
lingua franca del corso.
- Le lezioni riprenderanno martedì 8 febbraio.
- Compitino per le 'vacanze' (1-9 febbraio),
oltre a installare e provare R,
più ripassi vari:
- Tenente Colombo Vs New Scientist:
- 15 febbraio:
- 18 febbraio:
- A proposito dei tanti significati di 'statistica',
vedi “C'è statistica e statistica”
- Generatore di corde casuali:
- scheletro di programma (che per il momento non
genera corde , ma semplicemente segmenti a caso), con
grafica:
corde_casuali.R;
→ scrivere un programma che faccia 'quel mestiere' (in R
o in qualsiasi altro linguaggio di programmazione, o per
lo meno buttar giù il diagramma di flusso che tale
programma dovrebbe seguire);
- chi fa il programma è invitato ad inviarmelo.
- Sequenze casuali di testa/croce (in realtà di 1/0):
- file con 10 sequenze: 10sequenze.R
[il file è stato generato con il comando dump(c('s'), "10sequenze.dat"), eseguito dopo che la matrice s era stata riempita con le sequenze]
- script per leggerlo e dare una rapida occhiata alle sequenze:
leggi_sequenze.R
(da eseguire con source("leggi_sequenze.R"))
- la questione è (diretta soprattutto agli esperti
di fenomeni stocastici):
cosa si può dire della randomicità (randomness)
delle sequenze?
- 24 febbraio:
- Sul cosiddetto paradosso di Bertrand:
- Un esercizietto istruttivo sulle trasformazioni di variabili
(codice in R):
- x = rnorm(10000, 5, 2)
- Fx = pnorm(x, 5, 2)
- hist(Fx, nc=100)
→ provare con diversi parametri e diverse distribuzioni:
perché Fx ha quel comportamento?
- Punto della situazione a fine febbraio:
- 10 lezioni svolte;
- come programma siamo circa al passo con gli anni precedenti;
in particolare, con riferimento al
22mo ciclo
dobbiamo completare alcuni argomenti della decima lezione,
ma in compenso stiamo già usando R, che 22mo ciclo
era stato introdotto nella 11a
lezione;
- probabilmente ci sarà un cambiamento nel format dell'esame
e si spera di fornire informazioni più dettagliate
nella prossima lezione.
- 4 marzo:
- Come programma siamo a cavallo fra le lezioni 12 e 13 del
22.mo Ciclo.
- Esercizi su normale bivariata:
- partendo dalla formula di f(x,y) della normale bivariata,
integrare su y
(con `trucchi' di complementazione dell'esponenziale)
per dimostrare che f(x) è normale con i
parametri `giusti'.
- ancora sulla distribuzione condizionata,
f(x|yc) [chi non era a lezione
provi a riottenerla a partire da f(x,y)]:
cosa succede se yc è incerta,
con incertezza descritta da una normale di valore atteso
yc e incertezza standard
σc?
→ f(x|yc,σc).
- Sulle misure del foglio A4 [a = 29.73±0.03 cm,
b = 21.41±0.04 cm, ρ(a,b)=0]:
- propagazione {a,b} → {p,A,d}
(perimetro, area e diagonale), con trasformazione della matrice
di covarianza;
- confrontare con propagazione mediante Monte Carlo;
- cosa succede se assumiamo d=36.616 cm esatti?
- Problema delle sei (→n) scatole e teorema di Bayes:
- bozza di programma di analisi: n_boxes.R;
- provare a renderlo più `professionale';
- provare ad aggiungere la simulazione.
- Tenente Colombo: è ora di cominciare a dare un'occhiata
all'articolo, in particolare
- appendici A, B, D, H (note 60 e 61!) e J.
- 8 marzo:
- Ancora sulle normali variate condizionate:
- 10 marzo (problemi con i trasporti →
lezione diversa da quella in programma):
- Soluzione problema delle tre scatole con i due anelli.
- Soluzione del problema della misura degli angoli di un triangolo
condizionati dalla loro somma:
tr_cond.R:
- Esercizi sull'inferenza del parametro
p di processi di Bernoulli indipendenti tutti caratterizzati
dallo stesso p incognito:
- dati (simulati) di 100 estrazioni
(gli `1' rappresentano dei `successi'
e gli `0' degli `insuccessi): dati_estrazioni_bernoulli.R;
- analisi suggerite:
- inferire p dai `dati' [ovvero valutare f(p|dati)
a partire da una `prior piatta' (f0(p)=1)
e calcolare quindi E(p) e σ(p)] dalla sequenza
`osservata' (ovvero applicando il teorema di Bayes
in modo sequenziale sulle 100 osservazioni);
- inferire p dalla sola conoscenza del numero
di successi (16) nelle 100 prove;
- assumiamo infine che l'esperimento sia pianificato
al contrario, nel senso che lo sperimentatore
abbia prefissato il numero di successi (16) e si sia
fermato al momento in cui tale numero è stato
raggiunto (ovvero alla 100ma prova):
inferire ancora una volta p modellizzando una
distribuzione di Pascal (tentativo al quale si
verifica il k-mo successo) come likelihood.
(A lezione è stata vista la soluzione
numerica mediante OpenBUGS - vedi seguito.)
- 15 marzo:
Introduzione a WingBUGS/OpenBUGS:
- Per chi usa Linux (e Mac?):
- installare Wine
(per chi usa Ubuntu, Debian e loro dialetti:
“sudo apt-get install wine”(*))
[sebbene la funzionalità
di base di OpenBUGS sia ben emulata, ci possono essere
dei problemi nell'Help, nei Manuals e negli Examples
(e forse altro) usando le ultime versioni di Wine.
In tal caso, a meno che di non essere legati a qualche
altro software da emulare, conviene, mediante Synaptics,
di rimuovere la nuova versione e installare la vecchia.
Ad esempio, sul portatile che uso a lezione ho Wine 1.0
e non ho problemi.
Addendum: sul computer in ufficio ho installato,
mediante Synaptic, Wine 1.0 e ora OpenBUGS funziona al
meglio (fra l'altro, Synaptic ha mantenuto altri
programmi precedentemente installati sotto Wine: insomma
non vedo inconvenienti a passare da 1.2.2 a 1.0.1,
almeno per gli usi che ne faccio).
(*)Quindi, a questo punto,
il comando suggerito per l'installazione
è “sudo apt-get install wine1.0”]
- scaricare la versione Windows senza setup,
ad esempio la 3.0.3 da qui
- creare una directory, ad esempio 'OpenBUGS'
e metterci dentro il file .zip
(ad esempio OpenBUGS-3.0.3.zip),
quindi, dall'interno di tale directory:
- unzip OpenBUGS-3.0.3.zip
- chmod +x winbugs.exe
- Creare all'interno un'altra directory,
ad es. Esempi,
dove metterci gli esempi che abbiamo visto a lezione;
- Entrare in Esempi ed eseguire OpenBugs
mediante il comando ../winbugs.exe.
- Primi esempi:
- simple_mc.txt: semplici
generatori, senza alcuna inferenza, tanto per prendere
confidenza con alcune distribuzioni;
- inf_p_pred.txt:
inferenza sul parametro p di processi di Bernoulli
analoghi e indipendenti dalla conoscenza di una sequenza
osservata (le 100 estrazioni della lezione precedente);
previsione (probabilistica) del numero di successi
in altre 10 prove eseguite nelle identiche
condizioni (→ distribuzione predittiva);
- inf_n.txt: inferenza del numero
di prove sapendo che si sono verificati 16 successi
e sotto l'ipotesi che p dei processi
di Bernoulli valeva 0.2;
- inf_n_flat.txt: come
esempio 3, ma con altro modo per assegnare una prior 'piatta'
a n (nota: in questo caso bisogna caricare
anche il valore
iniziale di u cliccando su load inits, dopo
aver 'illuminato' la list contenente u).
- Qualche variazione sul tema:
- provare a giocare con la prior su p nell'esempio
nr. 2, ad esempio:
- assumere di essere vagamente confidenti che p
debba essere intorno a 0.2, ove 'vagamente'
sta a significare che non si è fortemente sorpresi
se p poi risultasse intorno a
0.15 o 0.25, o addirittura intorno a
0.10 o 0.30;
- assumere di essere fortemente confidenti che p
debba essere intorno a 0.2, ove 'fortemente'
sta a significare che non si è 'molto' sorpresi
se p si discostasse da 0.2 di ±0.02.
(In entrambi i casi usare una prior beta con parametri
appropriati in modo da modellizzare le nostre
credenze iniziali.)
- Trasformare l'esempio nr. 2, usando, invece dell'informazione
sull'intera sequenza, la sola conoscenza di 16
successi in 100 tentativi.
- Aggiungere l'inferenza su numero di
prove (n1) di un nuovo esperimento
nel quale p è inferito dalle informazioni
dell'esperimento precedente, sapendo inoltre che
nel nuovo esperimento sono stati registrati 20 successi.
- Infine, valutare il numero di successi in un terzo
nuovo esperimento nel quale vengono effettuate n1
ciascuna di probabilità p, con entrambi i parametri
incerti in quanto valutati dagli 'esperimenti' precedenti.
- Esercizi sui processi di Poisson:
- inferire λ sapendo che sono stati
registrati 100 conteggi in un certo tempo T;
[come prior sia per λ che per r
si raccomanda una esponenziale 'molto piatta',
ad es. dexp(0.00001).]
- valutare quindi il numero di
conteggi che ci si aspetta di osservare
se effettuano altre misure nello stesso intervallo
di tempo T, assumendo che l'intensità del
processo di Poisson si mantiene costante.
- Assumendo inoltre che T valga 10 secondi,
valutare l'intensità r del processo
di Poisson, da cui fare una previsione dell'istante
al quale si verifica il primo conteggio
se si riattiva l'apparato (assumendo sempre
intensità costante).
- risolvere nuovamente il nr 1, ma
- assumendo che T sia uguale a 10 secondi;
- immaginando che l'esperimento non sia stato
effettuato a tempo fisso, ma, al contrario,
siano stati prefissati 100 conteggi e che
il centesimo conteggio si sia verificato esattamente
dopo 10 secondi dall'inizio delle misure.
- Altri interessanti esercizi
sui processi di Poisson:
- dati sperimentali:
vengono eseguite 5 misure di conteggio, di durata
rispettivamente 30, 50, 60, 80 e 100 secondi
e registrando, rispettivamente,
5, 8, 10, 17 e 17 conteggi.
- inferire l'intensità del processo di Poisson r
in base a questi dati e usando una pior 'non informativa'
[ad es r ~ dexp(0.00001)];
- ripetere l'inferenza, basandosi questa volta sull'informazione
combinata di 57 conteggi ottenuti in 320 secondi
(e stessa prior);
- inferire per la terza volta r usando i
tempi ai quali sono avvenuti i 57 conteggi, riportati
in tempi_conteggi.txt.
- Da WingBUGS/OpenBUGS a
JAGS:
- WinBUGS/OpenBUGS sarà pure carino da vedere, ma dopo
un po' il 'finestrume' diventa pesante (anche se
si possono utilizzare degli script) ed inoltre,
come visto, ci sono problemi di portabilità.
- → installare JAGS;
- dopo JAGS installare il pacchetto di R rjags;
- Esempi discussi a lezione:
vedi qui
- 31 Marzo:
- Punto della situazione: con la lezione di oggi,
siamo circa alla nr 20
del 22° ciclo:
→ fare riferimento a quella pagina web per dettagli e
riferimenti bibliografici.
- Sono stati aggiunti altri esempi nella
pagina di JAGS.
- Nella prossima lezione di giovedì 7 aprile
(martedì 5 aprile non ci sarà lezione,
causa sovrapposizione con esercitazioni di lab di circuiti)
cercherò di chiudere il corso e quindi la lezione sarà
più di tipo `seminariale'. Si raccomanda quindi di
dare un'occhiata preventiva al materiale bibliografico
più vicino ai propri interessi (in particolare chi è
interessato a "fit industriali" con metodi matriciali
può guardare le slide di Blobel; chi è interessato
a MCMC può cominciare a leggersi il report di Andrieu et al.).
- Infine, giovedì 14 ci sarà una
lezione speciale, dedicata
a BAT, tenuta da
Massimo Corradi, in collaborazione con Enrico Franco.
Anche in questo caso, eventuali interessati a suo possibile
uso nel lavoro di dottorato
sono invitati a dare un'occhiata in anticipo al toolkit,
installandolo se possibile.
- 14 aprile: presentazione di BAT, di Massimo Corradi:
Esami
Si svolgerà in due prove:
- prova scritta sulle basi del linguaggio probabilistico
con applicazioni alle incertezza di misura:
- Prova seminariale su argomento a scelta
e preventivamente approvato.
Esami
Back to G.D'Agostini - Teaching
Back to G.D'Agostini Home Page