Я попытался сгенерировать массив со случайными данными для университетского проекта, который должен быть экспоненциально распределен (лямбда = 8,0) и в пределах минимума от 0,1 до максимума 0,5.
Поскольку numpy .random.exponential функция не содержит опцию для вставки мин или макс, я попробовал этот подход, который использует метод инверсии, преобразовывая равномерное распределение в экспоненциальное распределение. Генератор псевдослучайных чисел - экспоненциальное распределение
Я думаю, что где-то допустил ошибку, поскольку не получаю требуемые результаты при печати описания данных. Существует три проблемы, которые, вероятно, связаны друг с другом:
- Среднее значение составляет 0,046372. Оно должно быть около 0,125, поскольку среднее значение экспоненциальной функции равно 1 / лямбда, как говорит Википедия (https://en.wikipedia.org/wiki/Exponential_distribution)
- Стандартное отклонение составляет 0,020971, что отличается от среднего значения, что не должно иметь место в экспоненциальной функции
- Наименьшее значение в моих данных экспоненциального распределения ниже минимального значения, которое я вставил в данные равномерного распределения.
Вот мой код :
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())
Буду очень признателен за помощь! Я не айтишник, но постараюсь понять ваши советы!