Scipy多维核密度估计

3

我一直在尝试为一个30x30的数组获得核密度估计。以下是一个简短的示例:

from scipy.stats import gaussian_kde

x = arange(-0.5,0.51,1/29.)
y = arange(-0.5,0.51,1/29.)
z = randn(30,30)

vec = vstack((x,y))

KDE = gaussian_kde(z.T)
KDE2 = KDE(vec)

这会导致以下错误:

ValueError: points have dimension 2, dataset has dimension 30

我在这里找到了一些其他帖子,建议在估计之前需要重新整理数据,但我不确定如何正确地做这件事。

非常感谢您的帮助。 D


1
请问您能提供这些帖子的建议吗? - llrs
1个回答

4
使用KDE = gaussian_kde(z.T),您正在对30个随机变量(检查KDE.n)进行核密度估计,每个变量具有30个维度(检查KDE.d),如果您正在研究某些数据,则该数据是gaussian_kde()的输入。使用KDE(vec)估算z的核密度,输入必须具有形状(30,)(30,N),其中30KDE.d的维数。请参见此处的文档。将x,y用这些形状没有任何意义。在此处的示例中,d=2n= 2000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接