Это продолжение моего предыдущего вопроса. на что у меня возникло еще одно сомнение и меня попросили задать новый вопрос! Так вот.
Скажем, у меня есть массив размером 100.
Как рассчитать вероятность каждого значения в массиве?
Мое понимание до сих пор:
import numpy as np
import scipy.stats
from scipy import stats
import matplotlib.pyplot as plt
def getDistribution(data):
kernel = stats.gaussian_kde(data,bw_method=0.07)
class rv(stats.rv_continuous):
def _rvs(self, *x, **y):
return kernel.resample(int(self._size)) #random variates
def _cdf(self, x):
return kernel.integrate_box_1d(0,max(x)) #Integrate pdf between two bounds (-inf to x here!)
def _pdf(self, x):
return kernel.evaluate(x) #Evaluate the estimated pdf on a provided set of points
return rv(name='kdedist')
data = np.random.random(100)
sorted_data = np.sort(data)
dist = getDistribution(sorted_data)
pdf = dist.pdf(sorted_data)
plt.plot(sorted_data,pdf_data,'-o')
plt.hist(sorted_data,normed=True)
plt.show()
Я знаю, что приведенный выше код дает мне PDF-файл, и при построении рядом с гистограммой моих данных я получаю что-то вроде этого.
Я хотел бы знать, как я могу получить вероятность каждой из моих точек, принадлежащих данным. Я хочу присвоить то же самое, что и веса, каждой из моих точек данных.
I would like to know how I can get the probability on each of my points that belong to the data.
- Вероятность чего именно? KDE — это один из способов получить оценку плотности вероятности распределения, сгенерировавшего выборку. Обратите внимание, что вы не можете получить точную плотность, вы можете только оценить ее. И, как всегда в жизни, нет единственного выбора. Существует несколько оценок плотности, и все они делают некоторые предположения, которые лучше проверить, прежде чем применять их. - person cel   schedule 12.05.2015The probability of what exactly?
Учитывая набор из 100 точек в пределах 0 и 1, вероятность, скажем, найти определенное значение или, другими словами, поскольку это не дискретный случай, относительная вероятность получения этого значения. Когда я вычисляюpdf
, используя описанный выше метод для моего набора данных, например случайные числа в диапазоне от 0 до 1, что я на самом деле получаю? Я не генерирую распределение моих данных с помощью KDE здесь. - person Srivatsan   schedule 12.05.2015the relative likelihood of getting that value
- относительно чего? На случайную модель? Да, вы можете это сделать. Просто посчитайте отношение двух вероятностей. Вы можете обратиться к Википедии, чтобы узнать, почему это имеет смысл. Я думаю, что проблема здесь в том, что вопрос о вероятности наблюдения определенного значения не имеет смысла в непрерывном случае. Если вы хотите спросить об этом, вы можете начать дискретизировать и вместо этого спросить: какова вероятность того, что я наблюдаю значение между a и b. Этот вопрос имеет смысл, и на него можно ответить, интегрировав PDF-файл от a до b. - person cel   schedule 12.05.2015kernel.integrate_box_1d(0,max(x))
в приведенном выше коде не выполняет интеграцию, о которой вы говорите? Могу ли я использовать это, чтобы получить вероятность наблюдения значения между a и b? - person Srivatsan   schedule 12.05.2015