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

使用R中tsoutliers()函数检测异常值结果异常的求助

问题排查与修正:tsoutliers()与箱线图异常值判定差异

核心问题:两种异常值判定逻辑的差异

你遇到的问题本质是混淆了静态分位数(箱线图)异常值规则和tsoutliers()的时序模型驱动异常值检测逻辑:

  • 箱线图规则基于数据的静态分布,用分位数范围判定异常,完全不考虑时间序列的时序相关性(趋势、季节性、自相关);
  • tsoutliers()则通过拟合ARIMA模型,基于模型残差的偏离程度识别异常点——它会把符合序列趋势/季节性的波动视为正常,而把打破时序规律的突变标记为异常。

具体到你的数据:

  • 索引11(731)、24(789)、36(668)都是年末(11-12月)的高峰,属于明显的季节性规律,tsoutliers()会将其判定为正常波动,不会标记;
  • 索引6(86)、10(282)这类点,虽然落在箱线图范围内,但相对于前后的时序走势是突变(比如索引6的86对比前值230、后值133,是显著下降),模型残差过大,因此被标记为异常。

代码排查:无语法错误,但逻辑理解偏差

你的代码本身没有语法问题,错误在于对tsoutliers()的功能定位理解有误。该函数不是用来检测静态分布异常的,而是针对时间序列的时序异常。

代码修正与优化方案

根据你的需求,提供两种针对性方案:

方案1:正确使用tsoutliers()分析时序异常

先查看tsoutliers()的详细输出,了解异常类型(如AO=加性异常值、LS=水平漂移),辅助判断业务合理性:

library(forecast)

# 加载你的时间序列数据
X1 <- structure(c(450, 235, 203, 230, 86, 86, 133, 113, 206, 282, 731, 
564, 266, 183, 123, 189, 97, 172, 126, 93, 85, 146, 152, 789, 
448, 218, 121, 161, 73, 65, 41, 28, 48, 52, 185, 668, 280, 116, 
99, 75, 32, 135, 56, 54, 79, 109), tsp = c(2019, 2022.75, 12), class = "ts")

# 获取详细异常值结果
outlier_results <- tsoutliers(X1)
print(outlier_results)

# 可视化异常值
autoplot(X1) + 
  geom_point(aes(x = time(X1)[outlier_results$index], y = X1[outlier_results$index]), 
             color = "red", size = 3)

方案2:实现箱线图规则的静态异常值检测

如果你需要按照分位数范围标记异常值,可以手动实现箱线图规则:

# 计算箱线图异常值范围
q1 <- quantile(X1, 0.25)
q3 <- quantile(X1, 0.75)
iqr <- q3 - q1
lower_bound <- q1 - 1.5 * iqr
upper_bound <- q3 + 1.5 * iqr

# 筛选异常值索引和对应数值
box_outlier_indices <- which(X1 < lower_bound | X1 > upper_bound)
box_outlier_values <- X1[box_outlier_indices]

# 输出结果
cat("箱线图规则下的异常值索引:", box_outlier_indices, "\n")
cat("对应数值:", box_outlier_values, "\n")

# 可视化
autoplot(X1) + 
  geom_hline(yintercept = c(lower_bound, upper_bound), color = "blue", linetype = "dashed") +
  geom_point(aes(x = time(X1)[box_outlier_indices], y = box_outlier_values), 
             color = "red", size = 3)

总结

  • 如果你的业务场景中,年末高峰是正常规律,tsoutliers()的结果更贴合时序数据的异常判定需求;
  • 如果需要标记所有超出静态分布范围的点,选择箱线图规则的检测方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:35:26