У меня есть набор данных о прибытии за короткий 24-часовой период, когда интервалы между прибытиями, по-видимому, моделируют экспоненциальное распределение.Моя цель состоит в том, чтобы приспособить это к экспоненциальному распределению, чтобы я мог использовать его в качестве генератора для моделирования прибытий на периоды, превышающие начальное 24-часовое окно.
Sample:
248.69
250.01
287.73
302.17
318.03
357.66
389.87
392.82
395.99
406.47
446.29
466.47
475.52
487.2
496.85
500.02
522.95
547.09
582.78
593.67
612.46
680.63
745.35
Что приводит к
Difference:
1.32
37.72
14.44
15.86
39.63
32.21
2.95
3.17
10.48
39.82
20.18
9.05
11.68
9.65
3.17
22.93
24.14
35.69
10.89
18.79
68.17
64.72
Построение всего набора разностных данных на гистограмме дает следующее: https://i.imgur.com/kJnNrFM.png
В идеале я мог бы получить некоторые переменные, где я могу подключить их к функции, подобной expovariate для переменных модели, например:
def arrivals(lambda):
return random.expovariate(lambda)
Я нашел предложение для следующей функции, но не знаю, как использовать печатные переменные:
0,023493173851297056 [[65.70015487]]
from math import exp
from scipy.optimize import curve_fit
import numpy as np
def model(x, p):
return p*np.exp(-p*x)
def expfit(df):
X = df.index.values.reshape(-1,1).flatten().tolist()
Y = df.values.flatten().tolist()
popt, pcov = curve_fit(model, X, Y)
print (popt[0])
print (pcov)
arrivals = pd.read_csv("arrivals.csv")
expfit(arrivals.dropna().diff().dropna().to_frame())
Заранее спасибо!