Генератор псевдослучайных чисел - экспоненциальное распределение - In Python - PullRequest
0 голосов
/ 02 марта 2020

Я попытался сгенерировать массив со случайными данными для университетского проекта, который должен быть экспоненциально распределен (лямбда = 8,0) и в пределах минимума от 0,1 до максимума 0,5.

Поскольку numpy .random.exponential функция не содержит опцию для вставки мин или макс, я попробовал этот подход, который использует метод инверсии, преобразовывая равномерное распределение в экспоненциальное распределение. Генератор псевдослучайных чисел - экспоненциальное распределение

Я думаю, что где-то допустил ошибку, поскольку не получаю требуемые результаты при печати описания данных. Существует три проблемы, которые, вероятно, связаны друг с другом:

  1. Среднее значение составляет 0,046372. Оно должно быть около 0,125, поскольку среднее значение экспоненциальной функции равно 1 / лямбда, как говорит Википедия (https://en.wikipedia.org/wiki/Exponential_distribution)
  2. Стандартное отклонение составляет 0,020971, что отличается от среднего значения, что не должно иметь место в экспоненциальной функции
  3. Наименьшее значение в моих данных экспоненциального распределения ниже минимального значения, которое я вставил в данные равномерного распределения.

Вот мой код :

import pandas as pd
import numpy as np
# creating a uniformed distribution within the range of 0.1 to 0.5
Pre_Run_Uniformed_Distribution = np.random.uniform(0.1, 0.5, 100000)

lambda_value = 8.0

# transforming the uniform distribution to an exponential distribution
Pre_Run_Exponential_Distribution = np.log(1-Pre_Run_Uniformed_Distribution)/(-lambda_value)

df = pd.DataFrame (index=range(100000), data={'Pre Run Exponential Distribution':
                                                Pre_Run_Exponential_Distribution,
                                              'Pre Run Uniformed Distribution' :
                                              Pre_Run_Uniformed_Distribution})

print(df.describe())

Буду очень признателен за помощь! Я не айтишник, но постараюсь понять ваши советы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...