Python - извлечение из нормального распределения с асимметричными барами ошибок - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь написать код для случайного извлечения значения из нормального распределения с асимметричными барами ошибок.В основном я пытаюсь использовать эквивалент np.random.normal, но я могу определить верхнюю и нижнюю сигмы, которые не равны.Я не хочу использовать scipy.stats.skewnorm, потому что я не знаю, насколько искажен мой дистрибутив с точки зрения одного параметра, я знаю только столбцы + и - ошибок.Как бы я это сделал?

Спасибо за помощь добрым людям из stackoverflow!

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

@ ItsAMe, я не могу поместить графики в свои комментарии, поэтому пишу это как ответ.Хотя ответ @RobertDodier технически верен, вы должны понимать, какой тип распределения вы получаете.

Ниже я построил два гауссовых объединения в 0, но с разными сигмами (полосы ошибок, сигмы = 2 и 0,7).Может быть, это то, что вы действительно хотите, но для меня трудно представить, какой процесс будет производиться или требовать моделирования с таким странным распределением.Это что-то подобное действительно существует в природе или в некоторых моделях?

enter image description here

0 голосов
/ 27 октября 2018

Простая эвристика - это выборка из плотности, которая подобна N (среднее значение, сигма1) до среднего значения и подобна N (среднее значение, сигма2) сверх среднего значения.Сначала выберите равномерную переменную [0, 1] и, если она меньше 1/2, выберите первую, в противном случае выберите вторую.Затем выборка из выбранного нормального распределения.Это даст вам число, которое находится не с той стороны наполовину - когда это произойдет, просто вместо этого верните среднее значение минус (выборка - среднее) (или среднее плюс (среднее - выборка) соответственно);которые дают вам образец с другой стороны от среднего.

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