Je fais une expérience numérique qui consiste à échantillonner une distribution log-normale , et à essayer d'estimer les moments par deux méthodes:E [ X n ]
- En regardant la moyenne de l'échantillon de
- Estimer et en utilisant les moyennes d'échantillonnage pour , puis en utilisant le fait que pour une distribution log-normale, nous avons .σ 2 log ( X ) , log 2 ( X ) E [ X n ] = exp ( n μ + ( n σ ) 2 / 2 )
La question est :
Je trouve expérimentalement que la deuxième méthode fonctionne bien mieux que la première, quand je garde le nombre d'échantillons fixe et augmente d'un facteur T. Y a-t-il une explication simple à ce fait?
J'attache une figure dans laquelle l'axe x est T, tandis que l'axe y sont les valeurs de comparant les vraies valeurs de (ligne orange), aux valeurs estimées. méthode 1 - points bleus, méthode 2 - points verts. l'axe des y est à l'échelle logarithmiqueE [ X 2 ] = exp ( 2 μ + 2 σ 2 )
MODIFIER:
Ci-dessous est un code Mathematica minimal pour produire les résultats pour un T, avec la sortie:
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}
Sortie:
(*Log of {analytic, sample mean of r^2, using mu and sigma} *)
{140., 91.8953, 137.519}
ci-dessus, le deuxième résultat est la moyenne de l'échantillon de , qui est inférieure aux deux autres résultats