lineslist, ниже, представляет собой набор линий (для некоторого химического спектра, скажем), в МГц. Я знаю, что ширина линии лазера, используемая для измерения этих линий, составляет 5 МГц. Итак, наивно, оценка плотности ядра этих линий с шириной полосы 5 должна дать мне непрерывное распределение, которое будет получено в эксперименте с использованием вышеупомянутого лазера.Путаница с полосой пропускания на kdeplot seaborn
Следующий код:
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
lineslist=np.array([-153.3048645 , -75.71982528, -12.1897835 , -73.94903264,
-178.14293936, -123.51339541, -118.11826988, -50.19812838,
-43.69282206, -34.21268228])
sns.kdeplot(lineslist, shade=True, color="r",bw=5)
plt.show()
дает
который выглядит как гауссова с шириной полосы гораздо больше, чем 5 МГц.
Я предполагаю, что по какой-то причине пропускная способность kdeplot имеет разные единицы, чем сам сюжет. Разделение между самой высокой и нижней линиями составляет ~ 170,0 МГц. Предположив, что мне нужно масштабировать пропускную способность этого фактора:
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
lineslist=np.array([-153.3048645 , -75.71982528, -12.1897835 , -73.94903264,
-178.14293936, -123.51339541, -118.11826988, -50.19812838,
-43.69282206, -34.21268228])
sns.kdeplot(lineslist, shade=True, color="r",bw=5/(np.max(lineslist)-np.min(lineslist)))
plt.show()
С линиями, которые, как представляется, имеют ожидаемую полосу пропускания 5 МГц.
Как денди, как это решение, я вытащил его из своей задницы, и мне любопытно, может ли кто-нибудь, знакомый с внутренними силами kdeplot морского судна, прокомментировать, почему это так.
Спасибо,
Samuel
Параметры полосы пропускания выбираются эвристикой, где вы можете выбрать между двумя разными. Бывают случаи, когда это терпит неудачу. Обычно для оценки этого параметра используется перекрестная валидация, что невозможно с помощью морского судна. Резюме на основе Gridsearch возможно с помощью scikit-learn, основанного на оптимизации CV можно с помощью statsmodels. – sascha
Спасибо Sascha. Насколько я понимаю, вы имеете в виду правила Скотта и Сильвермана. Другой вариант - опять же, насколько я понимаю, - явно устанавливает пропускную способность, как я уже делал. –