【问题标题】:Measuring density for three dimensional data (in Matlab)测量三维数据的密度(在 Matlab 中)
【发布时间】:2012-04-01 23:22:06
【问题描述】:

我有一个数据集,由三维欧几里得空间中的大量点组成。在这个点集合中,我试图找到离点密度最高的区域最近的点。

所以我的问题包括两个步骤:

  • 1:确定点分布密度最高的位置

  • 2:确定哪个点最接近 1 中找到的点

我可以管理第 2 点,但我不确定如何解决第 1 点。我知道 Matlab 中有很多用于密度估计的函数,但我不确定哪一个最合适,或者简单易用。

有人知道吗?


我的统计能力有点生疏,但据我所知,这类问题需要多变量分析。有人建议我使用多元核密度估计,但我不确定这是否是最佳解决方案。

【问题讨论】:

    标签: matlab distribution


    【解决方案1】:

    密度是单位体积质量的量度。假设您的点都具有相同的质量,那么我想您正在尝试测量每单位体积的点数。因此,一种方法是将欧几里得空间的子集划分为许多小单位体积(让我们像每个人一样称它们为体素)并计算每个体积中有多少点。具有最多点的体素是点密度最高的地方。当然,这是一种数值积分。如果你的分数是根据一些分析函数分布的(我猜不是),你可以用铅笔和纸解决这个问题。

    您可以根据自己的喜好使这种方法变得复杂,也许最初将您的空间划分为 2 x 2 x 2 体素,然后选择具有最多点的体素并依次细分,直到满足您的标准。

    我希望这能让你开始你的第 1 点;你似乎对第 2 点没意见,所以我现在就停下来。

    编辑

    看起来triplequad 可能就是您要查找的内容。

    【讨论】:

    • 您是否知道 Matlab 中有一个函数可以完成您所描述的工作(分组为体素、计数、迭代等)?
    • 我发现了很多个概率密度函数,但我不知道哪个是最好的(或者它们是否适用于这类问题)。到目前为止,我还没有找到任何一种直接、简单的密度估计函数。
    • 哇,这引发了一大堆新问题:)。我将在一个新话题中询问他们,否则我们将不得不在 cmets 中讨论这一切。感谢您的快速回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    相关资源
    最近更新 更多