解释异常检测 R 值

Interpreting Anomaly detection R values

我有一项作业需要检测数据集中的异常。我在 R 中使用 'anomalize' 包,想知道如何解释 'anomalize' 函数的以下输出值:

Remainder_L1 Remainder_L2

我查看了文档,但找不到这些值的计算方法。有人可以解释这个计算吗?

Anomalize output

anomolize documentation 给出了一个很好的例子,说明如何将 anomolize() 应用于时间序列

这会为 CRAN tidyverse 下载生成 Remainder_L1Remainder_L2 值(该数据来自 anomolize 包,因此无需导入数据,只需 运行 下面的代码即可查看它如何生成列


# install.packages("anomalize")

library(tidyverse)
library(tibbletime)
library(anomalize)


tidyverse_cran_downloads %>%
    time_decompose(count, merge = TRUE) %>%
    anomalize(remainder) 

 #   package date       count observed season trend remainder remainder_l1 remainder_l2 anomaly
 #   <chr>   <date>     <dbl>    <dbl>  <dbl> <dbl>     <dbl>        <dbl>        <dbl> <chr>  
 # 1 broom   2017-01-01  1053    1053. -1007. 1708.    352.         -1725.        1704. No     
 # 2 broom   2017-01-02  1481    1481    340. 1731.   -589.         -1725.        1704. No     
 # 3 broom   2017-01-03  1851    1851    563. 1753.   -465.         -1725.        1704. No     
 # 4 broom   2017-01-04  1947    1947    526. 1775.   -354.         -1725.        1704. No     
 # 5 broom   2017-01-05  1927    1927    430. 1798.   -301.         -1725.        1704. No  

这些值是什么意思?从anomolize source code我们看到:

"remainder_l1" (lower limit for anomalies), "remainder_l2" (upper limit for anomalies)

在上面的示例中,它在第一行表示,如果值 (1053) 小于 -1725 或大于 1725,anomolize() 会将其视为异常。