Подгонка логарифмического распределения для двух заданных значений процентиля - PullRequest
0 голосов
/ 19 февраля 2020

Предполагая, что X является логарифмически нормальным распределением, возможно ли определить его 0-й процентиль и 100-й процентиль (или приближение 99,999), если даны значения 5-го и 95-го процентиля?

Как я могу запрограммировать это в scipy, чтобы получить низкое и высокое значение? Я думал, что концептуально шаги должны быть 1.) Подберите логарифмически нормальную кривую (определить среднее значение и дисперсию) из 5-го процентиля = 10 и 95-го процентиля = 100 2.) Определите значение на низком и высоком (например, 99,999%)

1 Ответ

1 голос
/ 19 февраля 2020

Lognormal означает, что естественный журнал вашего распределения нормальный. Итак, перемещаясь между ними, вы можете достичь своей цели:

import numpy as np
normal_at_5th_percentile = np.log(10)
normal_at_95th_percentile = np.log(100)

# params of related normal distribution
μ = (normal_at_5th_percentile + normal_at_95th_percentile)/2
σ = (normal_at_95th_percentile - μ) / 2

from scipy import stats
# 0.00001 and 0.99999 percentiles of lognormal distribution derived from normal
np.exp(stats.norm.ppf(.00001, loc=μ, scale=σ)), np.exp(stats.norm.ppf(.99999, loc=μ, scale=σ))
(2.715046684206284, 368.31779203565526)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...