Можно создать многомерную оценку плотности ядра (KDE) с scikitlearn (https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KernelDensity.html#sklearn .neighbors.KernelDensity ) и scipy (https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html)
Оба допускают случайную выборку из расчетного распределения. Есть ли способ сделать условную выборку в одной из двух библиотек (или любой другой библиотеке)? В случае 2-переменной (x, y) это будет означать выборку из P (x | y) (или P (y | x)), таким образом, из сечения функции вероятности (и это сечение должно быть изменен на единицу площади под его кривой).
x = np.random.random(100) y =np.random.random(100) kde = stats.gaussian_kde([x,y]) # sampling from the whole pdf: kde.resample()
Я ищу что-то вроде
# sampling y, conditional on x kde.sample_conditional(x=1.5) #does not exist