Sto facendo qualche esperimento numerico che consiste nel campionare una distribuzione lognormale e provo a stimare i momenti con due metodi:
- Guardando la media campionaria di
- Stimare e usando i mezzi di esempio per , e quindi usando il fatto che per una distribuzione lognormale, abbiamo .
La domanda è :
Trovo sperimentalmente che il secondo metodo funziona molto meglio del primo, quando tengo fisso il numero di campioni e aumento di qualche fattore T. C'è qualche semplice spiegazione per questo fatto?
Allego una figura in cui l'asse x è T, mentre l'asse y sono i valori di confrontando i valori reali di (linea arancione), ai valori stimati. metodo 1 - punti blu, metodo 2 - punti verdi. l'asse y è in scala logaritmicaE [ X 2 ] = exp ( 2 μ + 2 σ 2 )
MODIFICARE:
Di seguito è riportato un codice Mathematica minimo per produrre i risultati per una T, con l'output:
ClearAll[n,numIterations,sigma,mu,totalTime,data,rmomentFromMuSigma,rmomentSample,rmomentSample]
(* Define variables *)
n=2; numIterations = 10^4; sigma = 0.5; mu=0.1; totalTime = 200;
(* Create log normal data*)
data=RandomVariate[LogNormalDistribution[mu*totalTime,sigma*Sqrt[totalTime]],numIterations];
(* the moment by theory:*)
rmomentTheory = Exp[(n*mu+(n*sigma)^2/2)*totalTime];
(*Calculate directly: *)
rmomentSample = Mean[data^n];
(*Calculate through estimated mu and sigma *)
muNumerical = Mean[Log[data]]; (*numerical \[Mu] (gaussian mean) *)
sigmaSqrNumerical = Mean[Log[data]^2]-(muNumerical)^2; (* numerical gaussian variance *)
rmomentFromMuSigma = Exp[ muNumerical*n + (n ^2sigmaSqrNumerical)/2];
(*output*)
Log@{rmomentTheory, rmomentSample,rmomentFromMuSigma}
Produzione:
(*Log of {analytic, sample mean of r^2, using mu and sigma} *)
{140., 91.8953, 137.519}
sopra, il secondo risultato è la media campionaria di , che è al di sotto degli altri due risultati