1

问题:

假设我有x某个距离(在 R 中)的观测值的数值向量。例如,它可能是许多人的投掷长度。

x <- c(3,3,3,7,7,7,7,8,8,12,15,15,15,20,30)
h <- hist(x, breaks = 30, xlim = c(1,30))

在此处输入图像描述

然后,我想定义一组S“选择器”(范围),它们尽可能多地选择我的观察结果,同时跨越尽可能小的距离(成本是 中范围的总和S)。每个选择器si范围必须至少为 3(其分辨率)。

例子:

在玩具数据中x,我可以放置s1[6;8] 中的第一个选择器,它将选择 4+2 个观测值(距离 7 和 8),使用 3 个距离并总共选择 6/15 个观测值([7;9] 将给出相同,但为简单起见,我将选择器中点置于最大频率)。接下来是添加s2[14;16](6 距离并选择 9/15)。总之,S将按照以下步骤构建:

  1. [6;8] (3, 6/15) #s1
  2. [6;8], [14;16] (6, 9/15) #s2
  3. [3;8], [14;16] (9, 12/15) #Extending s1(最便宜)
  4. [3;8], [12;16] (11, 13/15) #扩展s2
  5. [3;8], [12;16], [29;31], (14, 14/15) #s3
  6. [3;8], [12;20], [29;31], (18, 15/15) #扩展s2

当使用某个总距离(的总和S)或当某个部分的数据被 覆盖时,人们会停止迭代S。或者根据所覆盖的数据比例绘制总和S并从中做出决定。

对于非常庞大的数据(在 1,000,000 距离空间中的 100,000 次聚类观察),我可能会通过增加允许的最小步数(大于 1,也许尝试 100)和降低分辨率(大于 3,可以尝试也许1000)。

由于它相当于在density(x)最小化 x 的范围的同时最大化下面的区域,我的直觉是可以使用density()和 来近似描述的步骤(出于时间和内存考虑) optim()。也许它甚至是一个众所周知的最大化/最小化问题。

任何可以让我开始的建议将不胜感激。

4

0 回答 0