Problema con distribuzione Beta
Ciao a tutti, sono nuovo del forum e vi scrivo perchè ho bisogno del vostro aiuto.
Sto implementando un algoritmo per modellare un processo fisico utilizzando il metodo Monte Carlo per il quale, per le diverse variabili, sono assegnate le varie distribuzioni di probabilità attraverso le quali generare i numeri casuali da impiegare ad ogni iterazione del metodo.
Per alcune di queste variabili la distribuzione di probabilità prevista è la beta per la quale viene assegnato il valore medio e lo scarto quadratico oltre che il limite inferiore e superiore.
Il mio problema è che non riesco a generare dei numeri casuali "congruenti" con la distribuzione data. Vi spiego come procedo. Data la media e lo scarto quadratico, attraverso le formule qui riportate a circa metà pagina (https://it.wikipedia.org/wiki/Distribuzione_Beta) ricavo i parametri \( \alpha \) e \( \beta\) da usare per la generazione dei numeri casuali di cui ho bisogno.
Il problema è che data una media di 8,9 ed uno scarto quadratico di 5,6 il parametro \( \alpha \) assume un valore negativo!
Non riesco a capire dove sbaglio, spero nell'aiuto da parte da qualcuno di voi.
Grazie
Saluti
Sto implementando un algoritmo per modellare un processo fisico utilizzando il metodo Monte Carlo per il quale, per le diverse variabili, sono assegnate le varie distribuzioni di probabilità attraverso le quali generare i numeri casuali da impiegare ad ogni iterazione del metodo.
Per alcune di queste variabili la distribuzione di probabilità prevista è la beta per la quale viene assegnato il valore medio e lo scarto quadratico oltre che il limite inferiore e superiore.
Il mio problema è che non riesco a generare dei numeri casuali "congruenti" con la distribuzione data. Vi spiego come procedo. Data la media e lo scarto quadratico, attraverso le formule qui riportate a circa metà pagina (https://it.wikipedia.org/wiki/Distribuzione_Beta) ricavo i parametri \( \alpha \) e \( \beta\) da usare per la generazione dei numeri casuali di cui ho bisogno.
Il problema è che data una media di 8,9 ed uno scarto quadratico di 5,6 il parametro \( \alpha \) assume un valore negativo!
Non riesco a capire dove sbaglio, spero nell'aiuto da parte da qualcuno di voi.
Grazie
Saluti
Risposte
Che formule usi ? Queste ?
$$\displaystyle \alpha =E[X]\left({\frac {E[X](1-E[X])}{{\text{Var}}(X)}}-1\right)$$
$$\displaystyle \beta =(1-E[X])\left({\frac {E[X](1-E[X])}{{\text{Var}}(X)}}-1\right)$$
Cosa significa che la media e' 8,9 quando i valori della variabile vanno da 0 a 1 ?
L'hai normalizzata ?
$$\displaystyle \alpha =E[X]\left({\frac {E[X](1-E[X])}{{\text{Var}}(X)}}-1\right)$$
$$\displaystyle \beta =(1-E[X])\left({\frac {E[X](1-E[X])}{{\text{Var}}(X)}}-1\right)$$
Cosa significa che la media e' 8,9 quando i valori della variabile vanno da 0 a 1 ?
L'hai normalizzata ?
Hai \(X \sim \textrm{Beta}(\alpha, \beta)\). Sappiamo che \(\mu = \mathrm{E}[X] = \alpha/(\alpha + \beta) = \alpha/\nu\) dove ho definito \(\nu = \alpha + \beta\). Siccome \(\alpha > 0\) e \(\beta > 0,\) dovviamo avere \(0 < \alpha, \beta < \nu = \alpha + \beta\) e quindi \(0 < \mu = \alpha/\nu < 1\). La media non può essere maggiore di \(1\) come nel tuo caso. A questo punto potremmo calcolare \(\alpha\) e \(\beta\) a partire da \(\mu\) e \(\nu\) usando le formule
\[ \alpha = \mu\nu \quad \text{e} \quad \beta = (1 - \mu)\nu. \]
La varianza è data dalla formula
\[ \mathrm{var}[X] = \sigma^2 = \frac{\alpha\beta}{(\alpha + \beta)^2(\alpha + \beta + 1)} = \frac{(\mu\nu)((1 - \mu)\nu)}{\nu^2(\nu + 1)} = \frac{\mu(1 - \mu)}{(\nu + 1)}. \]
Risolvendo per \(\nu\) otteniamo
\[ \nu = \frac{\mu(1 - \mu)}{\sigma^2} - 1. \]
Siccome \(\nu > 0,\) dobbiamo avere \(\sigma^2 < \mu\,(1 - \mu).\) Questa condizione è ovviamente falsa quando \(\mu > 1\) come nel tuo caso, ma è un'altra condizione che vale la pena di verificare. Sostituendo nelle formule per i due parametri otteniamo quindi le formule su Wikipedia:
\[
\begin{align*}
\alpha &= \mathrm{E}[X]\left(\frac{\mathrm{E}[X](1 - \mathrm{E}[X])}{\mathrm{var}[X]} - 1\right), \\
\beta &= (1 - \mathrm{E}[X])\left(\frac{\mathrm{E}[X](1 - \mathrm{E}[X])}{\mathrm{var}[X]} - 1\right).
\end{align*}
\]
\[ \alpha = \mu\nu \quad \text{e} \quad \beta = (1 - \mu)\nu. \]
La varianza è data dalla formula
\[ \mathrm{var}[X] = \sigma^2 = \frac{\alpha\beta}{(\alpha + \beta)^2(\alpha + \beta + 1)} = \frac{(\mu\nu)((1 - \mu)\nu)}{\nu^2(\nu + 1)} = \frac{\mu(1 - \mu)}{(\nu + 1)}. \]
Risolvendo per \(\nu\) otteniamo
\[ \nu = \frac{\mu(1 - \mu)}{\sigma^2} - 1. \]
Siccome \(\nu > 0,\) dobbiamo avere \(\sigma^2 < \mu\,(1 - \mu).\) Questa condizione è ovviamente falsa quando \(\mu > 1\) come nel tuo caso, ma è un'altra condizione che vale la pena di verificare. Sostituendo nelle formule per i due parametri otteniamo quindi le formule su Wikipedia:
\[
\begin{align*}
\alpha &= \mathrm{E}[X]\left(\frac{\mathrm{E}[X](1 - \mathrm{E}[X])}{\mathrm{var}[X]} - 1\right), \\
\beta &= (1 - \mathrm{E}[X])\left(\frac{\mathrm{E}[X](1 - \mathrm{E}[X])}{\mathrm{var}[X]} - 1\right).
\end{align*}
\]
Da dove vengono la media e lo scarto quadratico? Sono stati calcolati a partire dai campioni che dovrebbero seguire una distribuzione beta? In che modo sono stati generati?
Buongiorno e grazie a tutti per le vostre risposte!
Si esatto, le formule che ho usato sono quelle che tu hai riportato ed è corretta anche la tua osservazione circa il valore della media che è fuori dall'intervallo 0-1. Non ci avevo pensato.
Mi sono dimenticato di precisare che l'intervallo in cui dovrebbe variare il numero casuale generato dovrebbe essere compreso tra 0 e 50.
Per normalizzare, intendi una cosa del genere?
\[ x = \dfrac{y-a}{b-a} \]
dove \( y \) è il valore della media (8,9) ed \( x \) sarebbe l'equivalente normalizzato? In caso affermativo la stessa formula varrebbe anche per lo scarto quadratico e quindi calcolare poi \( \alpha \) e \( \beta \)?
@apatriarca: grazie per la spiegazione!
Come spiegavo nel post di apertura, sto modellando un processo fisico in cui sono coinvolti diversi parametri che concorrono nella definizione di un valore. Il modello è riportato nel bollettino FIB 34 ed è ovviamente frutto di diverse ricerche scientifiche durate diversi anni. Lo stesso documento riporta per ogni variabile la legge di distribuzione di probabilità: per alcune variabili è una normale, per altre una beta. Oltre al tipo di distribuzione il documento suggerisce i valori medi, gli scarti ed i valori limite (minimo e massimo) che la variabile può assumere. Questi limiti derivato da considerazioni fisiche legate al fenomeno modellato oltre che a valori ricavati sperimentalmente. A riguardo ho alcuni dubbi anche sulla distribuzione normale, ma chiederò lumi in un secondo momento.
Ciao e grazie
"Quinzio":
Che formule usi ? Queste ?
\[ \displaystyle \alpha =E[X]\left({\frac {E[X](1-E[X])}{{\text{Var}}(X)}}-1\right) \]
\[ \displaystyle \beta =(1-E[X])\left({\frac {E[X](1-E[X])}{{\text{Var}}(X)}}-1\right) \]
Cosa significa che la media e' 8,9 quando i valori della variabile vanno da 0 a 1 ?
L'hai normalizzata ?
Si esatto, le formule che ho usato sono quelle che tu hai riportato ed è corretta anche la tua osservazione circa il valore della media che è fuori dall'intervallo 0-1. Non ci avevo pensato.
Mi sono dimenticato di precisare che l'intervallo in cui dovrebbe variare il numero casuale generato dovrebbe essere compreso tra 0 e 50.
Per normalizzare, intendi una cosa del genere?
\[ x = \dfrac{y-a}{b-a} \]
dove \( y \) è il valore della media (8,9) ed \( x \) sarebbe l'equivalente normalizzato? In caso affermativo la stessa formula varrebbe anche per lo scarto quadratico e quindi calcolare poi \( \alpha \) e \( \beta \)?
@apatriarca: grazie per la spiegazione!
"apatriarca":
Da dove vengono la media e lo scarto quadratico? Sono stati calcolati a partire dai campioni che dovrebbero seguire una distribuzione beta? In che modo sono stati generati?
Come spiegavo nel post di apertura, sto modellando un processo fisico in cui sono coinvolti diversi parametri che concorrono nella definizione di un valore. Il modello è riportato nel bollettino FIB 34 ed è ovviamente frutto di diverse ricerche scientifiche durate diversi anni. Lo stesso documento riporta per ogni variabile la legge di distribuzione di probabilità: per alcune variabili è una normale, per altre una beta. Oltre al tipo di distribuzione il documento suggerisce i valori medi, gli scarti ed i valori limite (minimo e massimo) che la variabile può assumere. Questi limiti derivato da considerazioni fisiche legate al fenomeno modellato oltre che a valori ricavati sperimentalmente. A riguardo ho alcuni dubbi anche sulla distribuzione normale, ma chiederò lumi in un secondo momento.
Ciao e grazie
"Shark85":
Si esatto, le formule che ho usato sono quelle che tu hai riportato ed è corretta anche la tua osservazione circa il valore della media che è fuori dall'intervallo 0-1. Non ci avevo pensato.
Mi sono dimenticato di precisare che l'intervallo in cui dovrebbe variare il numero casuale generato dovrebbe essere compreso tra 0 e 50.
Per normalizzare, intendi una cosa del genere?
\[ x = \dfrac{y-a}{b-a} \]
dove \( y \) è il valore della media (8,9) ed \( x \) sarebbe l'equivalente normalizzato?
Si.
Dovresti conoscere i valori $b$ e $a$.
E $x$ e' il valore normalizzato.
In caso affermativo la stessa formula varrebbe anche per lo scarto quadratico e quindi calcolare poi \( \alpha \) e \( \beta \)?
Per lo scarto quadratico medio e' diverso.
La formula dello scarto q.m.
$$\displaystyle \sigma _{X}^{2}=\mathbb {E} {\Big [}{\big (}X-\mathbb {E} [X]{\big )}^{2}{\Big ]}$$
e
$X = (Y-a)/(b-a)$
$$\displaystyle \sigma _{X}^{2}=\mathbb {E} \left [\left (\frac{Y-a}{b-a} -\mathbb {E} \left[\frac{Y-a}{b-a}\right]\right )^{2}\right ]$$
$$\displaystyle \sigma _{X}^{2}=\mathbb {E} \left [\left (\frac{Y-E[Y]}{b-a} \right )^{2}\right ]$$
$$\displaystyle \sigma _{X}^{2}= \left(\frac{1}{b-a}\right)^2 \mathbb {E} \left [\left (Y-E[Y] \right )^{2}\right ]$$
$$\displaystyle \sigma _{X}^{2}= \left(\frac{1}{b-a}\right)^2 \sigma _{Y}^{2}$$
Adesso che hai la media e la varianza (scarto q.m.) normalizzate puoi calcolare $\alpha$ e $\beta$.
@Quinzio grazie mille! Ora è tutto chiaro, non mi resta che si sistemare i calcoli.
Approfitto della vostra disponibilità per un'altra domanda sempre relativa al modello che sto usando. Per un altro parametro è prevista una distribuzione normale di cui è data media e scarto q.m. A partire da questi dati devo generare numeri casuali che però devono essere compresi tra un valore minimo ed uno massimo. In prima battuta ho pensato di operare in questo modo: genero il numero causale estratto dalla distribuzione normale data; verifico se è compreso nell'intervallo ammissibile; se la condizione è vera tengo il numero altrimenti lo scarto e ne genero un altro prima di procedere con il resto della simulazione.
Questo modo di procedere è corretto o esiste un'alternativa per generare direttamente numeri causa nell'intervallo desiderato da una distribuzione normale?
Ciao e grazie!
Approfitto della vostra disponibilità per un'altra domanda sempre relativa al modello che sto usando. Per un altro parametro è prevista una distribuzione normale di cui è data media e scarto q.m. A partire da questi dati devo generare numeri casuali che però devono essere compresi tra un valore minimo ed uno massimo. In prima battuta ho pensato di operare in questo modo: genero il numero causale estratto dalla distribuzione normale data; verifico se è compreso nell'intervallo ammissibile; se la condizione è vera tengo il numero altrimenti lo scarto e ne genero un altro prima di procedere con il resto della simulazione.
Questo modo di procedere è corretto o esiste un'alternativa per generare direttamente numeri causa nell'intervallo desiderato da una distribuzione normale?
Ciao e grazie!
Se l'intervallo ammissibile "rimuove" solo parti della curva normale che hanno una bassa probabilità, allora il tuo metodo è abbastanza ottimale perché la probabilità di ottenere valori fuori da questo intervallo è basso. Ovviamente il discorso cambia se devi eliminare un grosso numero di campioni. Tuttavia non sono un esperto e non saprei quanto sia facile farlo.