Есть ли способ построить кривую KDE с помощью Python, где пропускная способность определяется асимметричными доверительнPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ построить кривую KDE с помощью Python, где пропускная способность определяется асимметричными доверительн

Сообщение Anonymous »


У меня есть набор данных, содержащий центральные значения и связанные с ними доверительные интервалы, которые являются асимметричными (например, центральное значение 50 м, нижняя граница 95 % – 10 м и верхняя граница 95 % – 60 м, в отличие от симметричных интервалов, таких как нижняя граница 95 %). граница 40 м, центральное значение 50 м и 95% верхнего интервала 60 м). Я хочу построить кривую KDE всех моих центральных значений (то есть суммарной вероятности), используя доверительные интервалы в качестве полосы пропускания. Это включает в себя суммирование асимметричных доверительных интервалов. Был ли у кого-нибудь опыт использования, например, Seaborn или sci-kit?
# Извлекаем центральные значения, нижние и верхние границы Central_values ​​= df['центральное значение'].values low_bounds = df['95% нижняя граница'].values Upper_bounds = df['95% верхняя граница'].values # Создаём фигуру и один набор осей для графика рис, топор = plt.subplots(figsize=(10, 6)) # Инициализируем массив для хранения данных гистограммы hist_data = [] # Инициализируем массив для хранения объединенной оценки KDE комбинированная_плотность = np.zeros(1000) # Перебираем точки данных и вычисляем оценку KDE для каждой для я в диапазоне (len(central_values)): если Lower_bounds == Upper_bounds: продолжить # Пропустить точки данных с нулевой неопределенностью data_point = np.random.uniform(lower_bounds, Upper_bounds, size=1000) # Рассчитайте пропускную способность для этой точки данных на основе ее доверительного интервала пропускная способность = max((upper_bounds - low_bounds) * 0,1, 1e-3) # Создайте модель KDE для этой точки данных с рассчитанной пропускной способностью. kde = KernelDensity(пропускная способность=пропускная способность) kde.fit(data_point.reshape(-1, 1)) # Определить значения x для графика KDE x_values ​​= np.linspace(data_point.min() - 50, data_point.max() + 50, 1000) # Вычисляем логарифмическую плотность и преобразуем ее в плотность вероятности log_density = kde.score_samples(x_values.reshape(-1, 1)) плотность = np.exp(log_density) # Суммируем оценку KDE для этой точки данных с объединенным значением KDE комбинированная_плотность += плотность # Сохраняем данные для гистограммы hist_data.extend(точка_данных) # Постройте объединенную оценку KDE для всего набора данных plt.plot(x_values, communid_density, linewidth=2, label='Сложенная пользовательская полоса пропускания KDE') # Создаём гистограмму plt.hist(hist_data, bins=20, color='lightgray', Edgecolor='black', Alpha=0.7, label='Histogram')
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»