2014-05-16 12 views
5

Jeśli chcę zestaw danych ze średnią 10 i standardowe odchylenie 5, jako przykład. Mogę go obliczyć z rozkładu normalnego przy użyciu tej formuły:Jak utworzyć losową liczbę po logormalnej dystrybucji w programie excel?

NORMINV(RAND(), Mean, Stdev) 
NORMINV(RAND(), 10, 5) 

To daje mi liczby z zakresu od -5 do mniej więcej do 25 z podziału częstotliwości, który wygląda zupełnie normalne w przypadku większości wartości centerred wokół średniej.

W jaki sposób mogę uzyskać podobny zestaw liczb, ale mam je podążać za rozkładem logarytmicznym, w którym istnieje większe prawdopodobieństwo większych liczb i prawdopodobieństwo zejścia poniżej zera?

Chciałbym to zrobić za pomocą programu Excel bez dodatków.

Próbowałem:

LOGINV(RAND(), Mean, Stdev) 
LOGINV(RAND(), 10, 5) 

.. ale to daje mi bardzo dużych liczb (do potęgi 20, etc), które wyglądają znaczenia.

Odpowiedz

6

Lognormal to e^N (m, s). Tak więc odpowiedź, przy użyciu twojego konstruktu na normalny, byłaby

=EXP(NORMINV(RAND(),Mean,Stdev)) 
Jednak da to bardzo duże wartości. Kolejnym krokiem jest skalowanie średniej i odchylenia standardowego. W pseudokod,

scaled mean = ln(m^2/sqrt(m^2 + s^2)) 
scaled sd = sqrt(ln((m^2 + s^2)/m^2)) 
+0

Próbuję uruchomić symulację Monte Carlo, która pobiera liczbę z wygenerowanej przez Excela dystrybucji lognormalnej. Rozumiem pierwsze równanie, ale zastanawiam się, dlaczego skaluje się średnią i standardową wersję. Dziękuję Ci. –

+2

Odpowiedziałem na moje pytanie. Ten post z blogu SAS wyjaśnia to. http://blogs.sas.com/content/iml/2014/06/04/simulate-lognormal-data-with-specified-mean-and-variance.html –