You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中生成含随机数据的聚类离群点(单因变量多自变量场景)

生成单因变量+多自变量的聚类离群点数据集

我明白你想要的是那种「大部分样本聚成主簇,小部分离群点单独形成一个独立簇」的数据集,而且是针对**单因变量(y)搭配多个自变量(x矩阵)**的场景对吧?之前的代码没达到预期,主要是在多自变量的聚类离群点处理上有点小问题,我来帮你调整下:

之前代码的问题分析

  • 第一个代码里,你把x定义成了矩阵,但用x>b做判断时,是把矩阵里的每个元素单独和分位数比较,这样标记的是单个自变量维度上的极端值,不是真正的「聚类离群点」(聚类离群点需要在多个自变量维度上同时偏离主簇)。
  • 第二个代码里,x=rbind(xa,xb)得到的是2行50列的矩阵,但y是100个元素,维度不匹配,plot的时候自然出不来正确的结果。

修正后的代码实现

下面的代码会生成主簇样本+聚类离群点,并且保证多自变量和单因变量的维度匹配,同时可视化效果清晰:

# 设置基础参数
n_main <- 50  # 主簇的样本数量
p <- 2        # 自变量的个数(可以改成你需要的数量)
n_outlier <- 5 # 离群点的样本数量

# 固定随机种子,让结果可复现
set.seed(123)

# 生成主簇数据:多自变量+对应因变量(给y加一点和x的相关性,更贴近真实场景)
x_main <- matrix(rnorm(n_main * p), ncol = p, dimnames = list(NULL, paste0("x", 1:p)))
y_main <- 0.5*x_main[,1] + 0.3*x_main[,2] + rnorm(n_main, sd = 0.2)

# 生成聚类离群点:所有自变量维度都偏离主簇,因变量也同步偏离
x_outlier <- matrix(rnorm(n_outlier * p, mean = 4, sd = 0.5), ncol = p, dimnames = list(NULL, paste0("x", 1:p)))
y_outlier <- 0.5*x_outlier[,1] + 0.3*x_outlier[,2] + rnorm(n_outlier, mean = 5, sd = 0.2)

# 合并主簇和离群点数据
x <- rbind(x_main, x_outlier)
y <- c(y_main, y_outlier)
# 标记样本组别,方便画图区分
group <- c(rep("主簇", n_main), rep("离群点", n_outlier))

# 可视化方式1:散点图矩阵,同时展示所有变量间的关系
pairs(cbind(x, y), col = ifelse(group == "主簇", "deepskyblue", "firebrick"), pch = 16,
      main = "多自变量+单因变量的聚类离群点分布")

# 可视化方式2:分图展示每个自变量和因变量的关系
par(mfrow = c(1, p))
for(i in 1:p){
  plot(x[,i], y, col = ifelse(group == "主簇", "deepskyblue", "firebrick"), pch = 16,
       xlab = paste0("自变量x", i), ylab = "因变量y", main = paste0("y vs x", i))
}

代码说明

  • 主簇的y和x设置了弱线性相关,避免数据完全随机,更符合实际研究场景;
  • 离群点的所有自变量都设置了偏移(主簇均值为0,离群点均值为4),同时y也整体偏移,这样就形成了真正的聚类离群点(不是单个维度的极端值);
  • 用group标记样本组别,画图时用不同颜色区分,能直观看到离群点和主簇的差异;
  • 两种可视化方式:散点图矩阵适合观察多变量间的整体关系,分图适合聚焦单个自变量和因变量的关系。

如果想要离群点和主簇的相关性完全不同(比如主簇正相关,离群点负相关),只需要调整y_outlier的生成逻辑即可,比如把0.5*x_outlier[,1] + 0.3*x_outlier[,2]改成-0.5*x_outlier[,1] -0.3*x_outlier[,2]。

内容的提问来源于stack exchange,提问作者jeza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 07:29:08