Я хочу построить приближение функции плотности вероятности на основе образца, который у меня есть; Кривая, которая имитирует поведение гистограммы. Я могу иметь образцы как большие, как я хочу.Функция плотности вероятности расслоения по образцу с matplotlib
ответ
Если вы хотите построить распределение, и вы это знаете, определить его как функцию и построить ее таким образом:
import numpy as np
from matplotlib import pyplot as plt
def my_dist(x):
return np.exp(-x ** 2)
x = np.arange(-100, 100)
p = my_dist(x)
plt.plot(x, p)
plt.show()
Если у вас нет точного распределения в виде не аналитическая функция, возможно, вы можете создать большую выборку, возьмите гистограмма и как-то сгладить данные:
import numpy as np
from scipy.interpolate import UnivariateSpline
from matplotlib import pyplot as plt
N = 1000
n = N//10
s = np.random.normal(size=N) # generate your data sample with N elements
p, x = np.histogram(s, bins=n) # bin it into n = N//10 bins
x = x[:-1] + (x[1] - x[0])/2 # convert bin edges to centers
f = UnivariateSpline(x, p, s=n)
plt.plot(x, f(x))
plt.show()
вы можете увеличить или уменьшить s
(коэффициент сглаживания) в UnivariateSpline
е вызов для увеличения или уменьшения сглаживания. Например, используя два, которые вы получаете:
, что не помогает в моем случае. Я уже написал свою функцию выборки, и она не является точной для образцов одного размера, скажем! – Cupitor
Тогда я думаю, вы должны изменить свой вопрос, чтобы быть более ясным. Это отвечает на ваш вопрос, предполагая, что вы «имеете распределение». – askewchan
Спасибо. Но я получаю следующую ошибку: raise ValueError («массивы x и y должны быть одинаковыми по длине». ValueError: массивы x и y должны быть одинаковыми по длине вдоль оси интерполяции. – Cupitor
Что вам нужно сделать, это использовать gaussian_kde из пакета scipy.stats.kde.
учитывая ваши данные, которые вы можете сделать что-то вроде этого:
from scipy.stats.kde import gaussian_kde
from numpy import linspace
# create fake data
data = randn(1000)
# this create the kernel, given an array it will estimate the probability over that values
kde = gaussian_kde(data)
# these are the values over wich your kernel will be evaluated
dist_space = linspace(min(data), max(data), 100)
# plot the results
plt.plot(dist_space, kde(dist_space))
Плотность ядра могут быть сконфигурированы по желанию и может обрабатывать N-размерные данные с легкостью. Это также позволит избежать искажений сплайнов, которые вы можете увидеть в сюжете, заданном askewchan.
Я ищу аналогичное решение. У меня уже есть набор данных, но я не знаю, какой у него дистрибутив, поэтому я пытаюсь построить функцию распределения вероятности с помощью python, и я не знаю, как это сделать. В этом случае оценивается любая помощь. –
@SitzBlogz Предположим, что ваш набор данных называется 'data', а затем просто удалите строку' data = randn (1000) 'в ответ @EnricoGiampieri, и все готово! –
- 1. Функция плотности вероятности с использованием данных гистограммы
- 2. Plotting вероятности Функция плотности с Z баллов по панд/питон
- 3. Теоретическое Заговор плотности вероятности Функция
- 4. Функция плотности вероятности с использованием стандартной библиотеки?
- 5. Функция плотности вероятности numpy гистограмма/scipy stats
- 6. Функция плотности вероятности построения в matlab
- 7. Как построить постоянную функцию плотности вероятности Функция
- 8. Как получить график плотности/вероятности с использованием matplotlib
- 9. Получение вероятности плотности данных
- 10. Построение плотности вероятности
- 11. Квадратурные процедуры для плотности вероятности
- 12. Функция плотности вероятности для набора значений с использованием numpy
- 13. Функция плотности вероятности с большими значениями mu и sigma?
- 14. Python: matplotlib - функция массы вероятности как гистограмма
- 15. Добавление двух функций плотности вероятности
- 16. Как построить функцию плотности вероятности?
- 17. Плотность вероятности Функция
- 18. Прогнозирование по ошибке с использованием функции плотности вероятности в Matlab
- 19. Функция плотности плоского сустава
- 20. Генерация функции плотности вероятности и доверительных интервалов
- 21. Функция нормальной плотности вероятности - эквивалент GSL в Haskell
- 22. SciPy функция плотности вероятности не дает правильного значения
- 23. Вероятность вероятности расслоения по нейрону в самоорганизующихся картах
- 24. Функция плотности вероятности из бумаги, реализованная с использованием C++, не работает по назначению
- 25. Как выразить функцию плотности вероятности при заданной функции плотности
- 26. Площадь по кривой плотности вероятности не равна 1
- 27. Использование функции гауссовой плотности вероятности в C++
- 28. График функции плотности вероятности в python
- 29. Как использовать ggplot для построения плотности вероятности?
- 30. R: Генерировать данные из распределения плотности вероятности
Какой у вас образец? Является ли это распределением или фактическими данными? – askewchan
Я не понимаю, как кто-то мог проголосовать за этот вопрос ?! Я имею в виду, на основании чего ??? – Cupitor
обычно на [SO] люди будут поднимать вопросы, которые сразу же становятся ясными, а также показывают некоторую попытку айзера ответить на их собственный вопрос. «Что ты пробовал?» Обычно downvotes сопровождаются комментариями, поэтому, я не уверен, почему этого не произошло в этом случае. – askewchan