Как мне оценить 80% кумулятивного распределения в scipy, numpy и / или Python? - PullRequest
0 голосов
/ 04 марта 2020

Seaborn имеет функцию kdeplot , где, если вы передадите cumulative=True, будет получено кумулятивное распределение данных. Мне нужно аннотировать или выяснить значение на оси абсцисс, при котором совокупное распределение составляет 80%, а затем нарисовать вертикальную линию от этого значения.

Есть ли метод в numpy, scipy или в другом месте в Python что может вычислить это значение?

1 Ответ

1 голос
/ 04 марта 2020

Если у вас уже есть cdf, вы можете сделать следующее. Я не уверен, как ваши данные отформатированы, но предполагая, что у вас есть два массива, один из значений x и один из значений y, вы можете искать индекс значения y чуть выше 0,8. Соответствующее значение x будет тем, что вы ищете. Быстрый способ сделать это, поскольку ваши значения y уже должны быть отсортированы, это:

import bisect
index = bisect.bisect_right(y_vals, 0.8) - 1

Это подход ближайшего соседа. Если вы хотите немного более точное значение x, вы можете линейно интерполировать между index и index-1.

...