首页 > 解决方案 > 将单个变量数据分成相似值的集群

问题描述

我必须通过均值的方差来确定同一商品的平均价格是否存在误差,但当然这些方差本身会影响均值。我一直在研究如何对数据进行聚类以“最小化”均值的变化,但在研究聚类方法时无法找到看似非常简单的问题的简单答案。为了进一步简化问题,我知道平均值的方差超过 20% 是一个潜在的问题,所以我想在每个组与平均值的方差不超过 20% 的地方进行聚类。我正在寻找一个索引向量,它显示每个数据点所属的集群#,如果数据不完全适合 1 个集群,则测试失败。此外,我可以通过集群索引分离数据

示例数据和预期结果

在 ds1 中,所有数据与均值相差 20%

ds1 <- c(74.52, 74.53, 65.33, 63.99, 68.51, 68.28, 66.35, 67.85, 74.35, 79.54)

预期结果:

# 1 1 1 1 1 1 1 1 1 1

在 ds2 中,显然存在问题,可能是 2 个集群(可能是 3 个)

ds2 <- c(294.11, 299.92, 290.52, 300.11, 300.07, 296.13, 433.92, 444.66, 349.68, 303.23)

预期结果

# 1 1 1 1 1 1 2 2 1 1

我在这里发现了一个非常相似的问题 R:如何根据最小距离将值向量分成固定数量的组? 但这并不能帮助我确定我是否需要首先将数据聚类(分成一组以上)——这是我的最终目标

我了解数据集可能从统计角度清楚地聚集,但在定价数据的含义方面具有非常低的整体差异,这就是为什么我选择 20% 的任意值以触发价格聚集警告,而不是它们似乎聚集得有多好。通过测试,我将调整 20% 以确定这个阈值需要是多少才能安全地识别问题

标签: rcluster-analysisoutliersvariance

解决方案


推荐阅读