2016-02-27 3 views
-1

если я не пошел совершенно безумным, документацию для numpy.random.exponential()numpy.random.exponential (масштаб = 1.0) возвращает число больше 1

http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.exponential.html

наводит на мысль, что установка шкалы параметр to 1.0 должен гарантировать, что вызовы функций возвращают число между 0.0 и 1.0, поскольку оно определено только для x> 0.

Я нарисовал его на вольфраме альфа, чтобы убедиться, что я не схожу с ума, и он имеет диапазон от 0 до 1.

https://www.wolframalpha.com/input/?i=graph+exp(-x)+from+-1+to+10

Я также попытался как numpy.random.exponential(), так как аргумент по умолчанию 1,0 и numpy.random.standard_exponential(), но и иногда дают мне значения больше 1.

Я чувствую, я сделал какую-то глупую ошибку в своем понимании, но не могу ее найти. Любая помощь будет принята с благодарностью.

Пример кода, который я побежал:

import numpy as np 
print np.random.exponential(scale=1.0) 

Пример Возвращаемое значение:

1.56783951494 

ответ

1

Экспоненциальный функция имеет в PDF = 1/бета * ехр (-x/бета). Вы проходите scale = beta = 1.0, поэтому у вас есть pdf = 1/1 * exp (-x/1) = exp (-x).

Это не равна нулю выше 1. В самом деле, у вас есть 63% шанс получить число между 0 и 1, и 37% вероятность получения значения выше 1 а:

>>> quad(lambda x: np.exp(-x), 0, 1) 
(0.6321205588285578, 7.017947987503856e-15) 
>>> quad(lambda x: np.exp(-x), 1, np.inf) 
(0.3678794411714423, 2.149374899076157e-11) 

Check :

>>> ns = np.random.exponential(scale=1.0, size=10**6) 
>>> (ns < 1).mean() 
0.63164799999999 

Теперь это правда, что PDFexp(-x) остается между 0 и 1, но это не значит, что все случайных чисел обращается от распределения будет находиться в диапазоне от 0 до 1.

Придумайте фильеры: вероятность любого данного исхода 1/6, но каждый числовой результат> = 1.

+0

Большое спасибо, я неправильно понял. Он не возвращает значение функции, он возвращает x. – Nyzarc

0

Я думаю, что я понял свою глупую ошибку. Он не возвращает f (x, бета), он возвращает x. Спасибо!