Точка пересечения гистограмм - Python - PullRequest
0 голосов
/ 26 мая 2020

У меня есть две гистограммы, созданные с помощью

plt.figure(figsize=(30,10))

sns.set()
sns.distplot(A, hist=True, kde=True, bins=50, color = 'darkgrey', hist_kws={'edgecolor':'white'}, kde_kws={'linewidth': 3})
sns.distplot(B, hist=True, kde=True, bins=50, color = 'lightgreen', hist_kws={'edgecolor':'white'}, kde_kws={'linewidth': 3})

plt.xlabel("X")
plt.ylabel("Frequency")
plt.title("A vs B")

Теперь мне нужно найти координаты точки пересечения между двумя гистограммами, есть идеи, как я могу это сделать?

гистограммы

1 Ответ

0 голосов
/ 26 мая 2020

Гистограммы на самом деле не имеют "пересечений" как таковых, потому что они представляют собой дискретные распределения. Однако вы можете аппроксимировать каждую гистограмму с помощью непрерывного распределения вероятностей (хотя для этого вам потребуется знать тип распределения данных, например, нормальный, логнормальный). С помощью функций непрерывного распределения вероятностей (PDF) вы могли бы затем установить эти PDF-файлы равными друг другу и найти пересечение.

Дискретный аналог должен идентифицировать интервал или интервалы, в которых пересекаются два распределения (т. Е. Гистограмма A больше, чем гистограмма B в интервале 10-20, и меньше, чем гистограмма B в интервале 20-30, поэтому «фактические» непрерывные PDF-файлы пересекаются где-то в диапазоне 10-30. Затем вы можете использовать некоторую форму интерполяции для оценки точного пересечения. Самой простой, но не обязательно самой точной стратегией интерполяции будет линейная интерполяция.

...