r - 将单个变量数据分成相似值的集群
问题描述
我必须通过均值的方差来确定同一商品的平均价格是否存在误差,但当然这些方差本身会影响均值。我一直在研究如何对数据进行聚类以“最小化”均值的变化,但在研究聚类方法时无法找到看似非常简单的问题的简单答案。为了进一步简化问题,我知道平均值的方差超过 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% 以确定这个阈值需要是多少才能安全地识别问题
解决方案
推荐阅读
- android - 尝试设置 imageView 的宽度以匹配 TextView 的宽度
- c++ - 是否需要 mutex() 一次安全地访问具有 2 个线程的数组的不同元素?
- oracle - 错误:-->PLS-00382:表达式类型错误
- javascript - 在 javaScript 中迭代后更改对象数组中的单个值
- javascript - javascript中带有过滤器的元素计数器
- python - python中的目录压缩
- angular - NPM-AUDIT 发现高漏洞。我应该做些什么?
- css - 边框半径不依赖于高度和宽度
- bash - 如何在命令行上使用 MediaInfo 以 MBps 显示我的视频比特率 --Inform
- matrix - 如何使用 R 用随机数替换矩阵中的 NA?