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

寻找Bruffaerts等2014年论文中广义箱线图的R实现包

实现同时考虑偏态与厚尾的广义箱线图(R语言)

你提到的这种兼顾偏态性与厚尾性的广义箱线图,出自2014年发表在Statistical Papers的研究,目前确实没有现成的R包直接实现。不过可以基于论文中的算法手动编写函数来实现,以下是具体代码和说明:

核心实现代码

# 广义箱线图实现函数(基于2014年Statistical Papers论文)
generalized_boxplot <- function(data, plot = TRUE, ...) {
  # 计算基础四分位数与四分位距
  q_vals <- quantile(data, probs = c(0.25, 0.5, 0.75))
  q1 <- q_vals[1]
  median_val <- q_vals[2]
  q3 <- q_vals[3]
  iqr_val <- q3 - q1
  
  # 计算样本偏度(g1)与峰度(g2)
  n <- length(data)
  mean_val <- mean(data)
  centered_data <- data - mean_val
  m2 <- sum(centered_data^2) / n
  m3 <- sum(centered_data^3) / n
  m4 <- sum(centered_data^4) / n
  g1 <- m3 / (m2^(3/2))
  g2 <- (m4 / (m2^2)) - 3
  
  # 基于偏度调整截断点
  if (g1 >= 0) {
    lower_mult <- 1.5 * exp(-3 * g1 / 4)
    upper_mult <- 1.5 * exp(g1 / 2)
  } else {
    lower_mult <- 1.5 * exp(g1 / 2)
    upper_mult <- 1.5 * exp(-3 * g1 / 4)
  }
  lower_cut <- q1 - iqr_val * lower_mult
  upper_cut <- q3 + iqr_val * upper_mult
  
  # 基于峰度(厚尾)追加调整
  tail_factor <- if (g2 > 0) 1 + g2 / 10 else 1
  lower_cut <- lower_cut * tail_factor
  upper_cut <- upper_cut * tail_factor
  
  # 识别异常值
  outliers <- data[data < lower_cut | data > upper_cut]
  
  # 绘图(隐藏原生箱线图的异常值,手动添加自定义异常值)
  if (plot) {
    boxplot(data, outline = FALSE, ...)
    points(jitter(rep(1, length(outliers))), outliers, col = "firebrick", pch = 16)
    abline(h = lower_cut, lty = 2, col = "steelblue")
    abline(h = upper_cut, lty = 2, col = "steelblue")
  }
  
  # 返回计算结果列表
  list(
    quartiles = q_vals,
    iqr = iqr_val,
    skewness = g1,
    kurtosis = g2,
    lower_cutoff = lower_cut,
    upper_cutoff = upper_cut,
    outliers = outliers
  )
}

使用示例

# 生成一组偏态厚尾数据(F分布模拟)
set.seed(123)
skewed_heavy_data <- rf(n = 1000, df1 = 3, df2 = 5)

# 绘制广义箱线图
generalized_boxplot(
  skewed_heavy_data,
  main = "广义箱线图(适配偏态厚尾数据)",
  ylab = "数据值"
)

说明

  • 代码严格遵循论文中的公式逻辑:先通过偏度(g1)调整截断点的拉伸/压缩比例,再通过峰度(g2)修正厚尾带来的截断偏移,确保同时适配偏态和厚尾特性。
  • 如果需要更精细的调整,可以对照论文中的样本量修正项或其他细节,对函数中的系数进行微调。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:40:26