散点图:计算 80% 点所在的框

信息处理 统计数据
2022-02-07 11:53:39

我有一个带有 x 轴和 y 轴的散点图。

现在我想计算一个矩形,它显示该图中 80% 的点在哪里。

我对统计学不是很熟悉,所以我不知道我必须使用的方法。阅读有关百分位数的内容。那是对的吗?

我知道我必须计算 80% 在 x 轴上的位置以及 80% 在 y 轴上的位置,然后得到矩形角,但是如何计算 80%?

样本数据:

样本数据

2个回答

你的问题似乎暗示总是只有一个点集群。如果是这种情况,我会采用一个相当简单的启发式方法,如下所示 -

计算 x 和 y 方向上点位置的均值和方差。平均值是盒子的中心点,您可以使用 x/y 方差的比率来确定盒子应该在哪个方向增长得更快。例如,如果 x 方差为“1”而 y 方差为“2”,我会让框在 y 方向上以两倍的速度展开。

现在只需扩展框,直到包含至少 80% 的点。

如果有多个点集群,您可能需要使用更复杂的解决方案,该解决方案使用集群算法来识别集群和每个集群的框。

首先,我认为您没有正确描述您的问题,因为您可能会发现多个包含 80% 点的“框”。在我的其余帖子中,我将您感兴趣的盒子称为 BOI。

我不知道你打算用这个 BOI 做什么,但我猜你正在尝试做一些数据可视化或找到区分大纲的标准。有许多更专业的方法可以可视化某个置信区间内的散点数据点。

简而言之,这些算法通常会做以下事情:1)估计给定样本数据的统计信息,例如。均值和标准差 2) 根据您规定的数据分布或估计分布计算某个水平的置信区间 3) 在散点图上绘制找到的置信区间的等高线

尽管置信区间的矩形区域听起来很简单,但它显然不如其他形状准确,例如在高斯分布数据中使用的日食。因此,如果您正在撰写科学报告,请遵循这些现有方法。

如果您坚持要找到 BOI,您可以遵循类似的步骤,并在定义所有找到的 BOI 中的最佳 BOI 时附加考虑因素。为什么?因为您将看到包含 80% 数据点的多个 BOI。坦率地说,找到最好的 BOI 是一项比看起来更困难的任务。但是,这里有几件事很清楚:1)数据集的平均点应该在最好的 BOI 2)我们应该定义什么是你最好的 BOI(我认为具有最小方差的 BOI 应该是最好的)

以下描述的方法实际上类似于直方图分析。为了找到最好的 BOI,您应该将数据点放入 bin 中,并允许我们稍后计算直方图。注意 bin 宽度定义了我们方法的分辨率。例如,如果它太大,与您的数据点跨度一样宽,那么您将永远找不到所谓的 80% BOI。如果它非常小,例如,您的机器的有限精度,那么您可能需要几个小时才能找到最佳 BOI。一般来说,只需选择适度的东西就可以了(或者您可以实施自适应方法来为您的数据选择 bin 的宽度和高度)。

假设您选择 bin 大小。然后您只需计算数据的直方图T=Hist(Data|bin),其中每个 bin 包含整数个点。如果您的数据是 2D,您应该有一个 2D 直方图。一旦你得到这个直方图,检索它的高度h和宽度w,然后做以下事情,你会发现唯一的BOI定义为的四倍(x,y,W,H), 在哪里x,y定义左上角的点W×H博伊。

  1. 构造这个直方图的积分图像 II(T)(怎么做?查看 wiki 中的详细信息。这种快速方法将允许您仅针对三个操作计算任意 BOI 内的点数。)
  2. 初始化vmin=realmax
  3. 对于每个可能的 BOI 大小W×H,您检索的数据点数W×H来自II(T)
  4. 消除所有没有均值的候选 BOI
  5. 淘汰所有分数低于 80% 的候选 BOI
  6. 计算每个候选 BOI 内数据点的方差
  7. 找到具有最小方差的 BOIv大小的W×H
  8. 如果v<vmin,然后更新vmin=v并记录这个 BOI 的四倍。
  9. 重复步骤 3-8,直到搜索所有可能的尺寸

最后,这应该为您提供具有最小方差的唯一 BOI。根据数据点的数量和 bin 大小,您可能期望上述算法需要相当长的时间才能获得最佳 BOI。