Пытаюсь оценить доверительный интервал для образца распределения ударного давления промывочного бака.
размер выборки составляет около 100, и для анализа используется обобщенное распределение Парето (gpd).
я сделал следующее:
- повторная выборка с заменой из выборки
- оценка параметров для gpd
- получить процентиль для заданного доверительного интервала
реализованный код Python приведен ниже:
import numpy as np
from scipy.stats import genpareto
ci = 0.95
lower = list()
upper = list()
params = list()
for i in range(number_of_resample):
# draw with replacement and sort
sample = sorted(np.random.choice(data_series, size=len(data_series), replace=True), reverse=True)
# list of tuple (shape, loc, scale)
params.append(genpareto.fit(sample))
for i, epf in enumerate(epf_series):
for j, param_tuple in enumerate(params):
# store evaluations at the given excessive probability from the resampled distribution
dist.append(
genpareto.ppf(1-epf, param_tuple[0], loc=param_tuple[1], scale=param_tuple[2]
)
)
p = ((1-ci)/2)*100
lower.append(np.percentile(dist, p))
p = ((ci + ((1-ci)/2))*100
upper.append(np.percentile(dist, p))
Я не уверен, что приведенный выше код является правильной реализацией процентиля начальной загрузки для доверительного интервала Кроме того, не уверен насчет использования genpareto.fit в этом случае, потому что gpd - это двухпараметрическое распределение, а genpareto.fit возвращает три параметра.
Любые комментарии и советы приветствуются.