我在MATLAB中创建多变量内核密度估计。我想找到各种固定级别(固定KDE)的2D区域。例如,如果我选择70%的固定水平,那么我想计算包含数据集中70%点的2D区域(这将被视为轮廓)。
以下是问题:我在R中完成了这个。我使用了与此wiki链接相同的步骤。 http://en.wikipedia.org/wiki/Multivariate_kernel_density_estimation#Density_estimation_in_R_with_a_full_bandwidth_matrix
在上面的例子中,每个彩色轮廓都是不同的固定KDE。例如,红色轮廓为25%-KDE,这意味着它是包含25%数据的最小区域。
现在我在MATLAB中执行相同的步骤。以下链接显示了它们。 http://en.wikipedia.org/wiki/Multivariate_kernel_density_estimation#Density_estimation_in_Matlab_with_a_diagonal_bandwidth_matrix
我的问题是在MATLAB中生成相同的固定轮廓的必要步骤是什么?
我用过
C =轮廓(X,Y,密度,10)
其中'density'是在meshgrid X和Y上计算的密度(在我的情况下为256 x 256)。我这样做是希望它会产生10条轮廓线,每条轮廓线对应10%的固定KDE间隔。换句话说,轮廓级别5将是50%-KDE,或包含50%数据的最小区域。
问题:图形上,轮廓通过了点。这是上面代码
的图现在,如果我增加轮廓数量
C =轮廓(X,Y,密度,15)
我得到以下情节
我不确定这些轮廓实际上就我所说的固定KDE而言是什么。此外,我不确定他们为什么要走得太远。
同样,我了解如何使用轮廓函数来获取轮廓的值并找到它们的区域。那不是问题。
我想知道如何正确地找到每个10%固定KDE作为2D轮廓表示,就像我在R和其他平台中所做的那样。
非常感谢您的帮助。