Ancora sugli estremi del codominio di una pdf
Buona sera a tutti. Vorrei proporre qualche idea per qanto riguarda la questione degli estremi del codominio della pdf.
1: Estremo inferiore. Per definizione, una pdf è una funzione da R in R, non negativa e normalizzata (come sottolineava Enzo). Dunque, è necessario che l'estremo inferiore del codominio sia zero: infatti, se l'inf fosse negativo questa sarebbe una contraddizione della non negatività della funzione, e se fosse positivo renderebbe impossibile la convergenza dell'integrale su tutto il dominio (cioè R) a un valore finito. Questo dovrebbe tranquillizzarci..
2: Estremo superiore. Ho provato, seguendo le indicazioni nei link, a scrivere una funzione che calcoli il massimo della pdf. La cosa che ho preparato (qua sotto trovate il codice) si ferma quando trova un massimo relativo, ed è quindi adatta a funzioni con un solo massimo (o che assumano lo stesso valore su ogni max relativo). Ho provato a implementarla nel codice di Pietro, e funziona, nonostante sia un po' rozza e non proprio un capolavoro di eleganza. Spero che i commenti siano sufficienti a renderla comprensibile.
4 commenti:
Commento sul punto 1.
1a) Un'obiezione all'argomento di Eugenio sul fatto che l'estremo inferiore debba essere non-positivo, è che noi stiamo consideranzo distribuzioni definite non su tutto R, ma su un suo intervallo limitato. (Domanda: vi viene in mente una soluzione semplice al problema di generare una distribuzione definita davvero su tutto R, usando il generatore rand() che è a valori in un intervallo limitato?)
1b) Ora, accingendomi a scrivere questo commento, avevo in mente un'obiezione anche sul fatto che l'estremo inferiore debba essere non-negativo, ma nello scriverla mi sono accorto che era un'obiezione sbagliata. Era proprio avendo in mente questa (sbagliata) obiezione che avevo chiesto "perchè ci stiamo inpuntando tanto sulla positività della distribuzione di probabilità e non parliamo della sua normalizzazione?" Lo chiedevo perchè nella mia testa erano pronte (ingannevolmente!) le due risposte seguenti.
I) La normalizzazione non è importante perchè quel che conta è la proporzionalità con la distribuzione di probabilità, ovvero è sempre possibile riassorbire una qualsiasi costante moltiplicativa nel fattore di normalizzazione.
II) Allo stesso modo (e qui - argh! - stava il mio errore!!!) la positività non conta perchè è sempre possibile mettere in conto una costante additiva che riporti la funzione sopra lo zero.
Come accade sempre (leggi: lezione di vita!) mi sono accorto dell'errore cercando di spiegare il mio ragionamento. Il punto è che sì, posso anche traslare la funzione fino a farla stare tutta sopra lo zero, ma la domanda a quel punto diventa: quanto la faccio salire sopra lo zero? E il punto è che ora la risposta non è ininfluente come lo era la scelta della costante moltiplicativa! Scegliere di traslare la funzione fino a far coincidere il suo minimo con lo zero, significa assegnare una probabilità nulla a quel minimo; farla salire un po' di più significa dare una probabilità finita (non-nulla) anche a quel valore minimo. E la cosa è radicalmente diversa!
Riassumendo: la normalizzazione è davvero una questione "convenzionale", mentre la non-negatività è una proprietà che dobbiamo effettivamente richiedere! (Ma, per riassumere anche il punto 1a, non è necessario che il minimo della funzione sia effettivamente zero, come succede, ad esempio, proprio per la distribuzione "più semplice", quella piatta, o uniforme.)
Propongo una risposta alla domanda posta nel punto 1a): "Come generare una funzione definita su tutto R se rand() è a valori in un intervallo limitato?"
Un'idea possibile è generare una funzione in un intervallo limitato per es. (-1,1), definire una f(x) biunivoca f: (-1,1) -> R e applicare la f(x) al numero casuale generato per ottenere così un numero casuale in R.
La cosa è possibile per esempio prendendo
f(x) = x/(1-|x|)
L'idea è la stessa che si utilizza nella dimostrazione del teorema di Cantor potenza del continuo.
A onore del vero la fz. biunivoca l'ho trovata andando a riprendere il buon vecchio libro di Analisi I.
P.s.: Questo era il mio primo post... spero sia qualcosa di sensato e di essere riuscito a pubblicarlo come si deve.
Caro Cristian, questo era un commento degno di nota. Perché non scrivi un codice e ce lo proponi. Ora sei un autore e puoi permetterti come tutti gli altri di postare in prima pagina. Ti consiglio di farlo appena puoi, in modo da fare di questo blog un blog plurale(visto che in pochi si interessano di fare posting) e soprattutto di proporre buoni codici(come fa Eugenio).Poi lasciare il blog solo in mano a persone poco raccomandabili come me, non mi sembra carino :-(
Ti ricordo che:Enzo e Pietro ci hanno dotati di un gruppo google; vedi il relativo collegamento in uno dei post, ti registri e (accedendo alla versione beta[piccola scritta che puoi trovare facilmente]) puoi salvare il tuo codice nello spazio web concesso al gruppo, poi prima di pubblicare il tuo post selezioni una parola e clicchi sul collegamento ipertestuale.Come URL ci metti l'indirizzo che avrai precedentemente copiato dalla barra aprendo il file già caricato nello spazio del gruppo lab-info.Spero che si sia capito cosa intendo.Così evitiamo di "stirare" il blog con ogni intervento(magari scrivendo il codice di seguito alle sue righe di introduzione).
Notte.
P.s.Permettetemi di dire che stasera Guccini è stato grande. Scusate, ma dovevo.
La risposta di cristian++ era quella che mi aspettavo (io avevo in mente funzioni come la tangente, o l'arcotangente iperbolica...).
Aggiungo solo che se la domanda fosse stata "generare una PARTICOLARE distribuzione, definita su tutto R", il problema sarebbe stato molto più delicato. Siccome, infatti, la trasformazione non può evidentemente essere lineare, non viene preservata l'uniformità della distribuzione di rand(), per cui il metodo di reiezione, che avevamo detto poteva essere usato per qualsiasi distribuzione, non può in realtà essere "semplicemente innestato" in questo caso...
Mi sembra anche una buona idea quella di rock, di uploadare file di codici nel google-groups, così da lasciare al blog solo i commenti e le discussioni, visto che il suo "layout" non è adatto a lungh(e porzioni d)i codici...
Posta un commento