Есть ли способ построить кривую KDE с помощью Python, где пропускная способность определяется асимметричными доверительн ⇐ Python
Есть ли способ построить кривую KDE с помощью Python, где пропускная способность определяется асимметричными доверительн
У меня есть набор данных, содержащий центральные значения и связанные с ними доверительные интервалы, которые являются асимметричными (например, центральное значение 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')
У меня есть набор данных, содержащий центральные значения и связанные с ними доверительные интервалы, которые являются асимметричными (например, центральное значение 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')
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Пропускная способность Mininet не обновляется динамически через HTTP-запрос в Flask API
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-