全文链接:http://tecdat.cn/?p=30597

原文出处:拓端数据部落公众号

最近咱们被要求解决工夫序列异样测验的问题。有客户在应用大量的工夫序列。这些工夫序列基本上是每10分钟进行一次的网络测量,其中一些是周期性的(即带宽),而另一些则不是(即路由流量)。

他想要一个简略的算法来进行在线“异样值检测”。基本上,想将每个工夫序列的整个历史数据保留在内存(或磁盘上),并且想检测实时场景中的任何异样值(每次捕捉新样本时)。实现这些后果的最佳办法是什么?

目前正在应用挪动平均线来打消一些乐音,但接下来呢?简略的事件,如标准差,...针对整个数据集成果不佳(不能假如工夫序列是安稳的),想要更“精确”的货色,现实状况下是黑匣子。咱们提出一些计划,例如:

将查找时间序列异样值(并选择性地在图中显示它们)。它将解决季节性和非季节性工夫序列。根本思维是找到趋势和季节性成分的牢靠预计并减去它们。而后找出残差中的异样值。残差异样值的测验与标准箱线图的测验雷同 - 大于或低于高低四分位数的点大于1.5IQR 是假设的异样值。高于/低于这些阈值的 IQR 数量作为异样值“分数”返回。因而,分数能够是任何负数,对于非异样值,分数将为零。

异样值检测取决于数据的性质以及您违心对它们做出的假如。 通用办法依赖于牢靠的统计信息。这种办法的精力是以不受任何异样值影响的形式表征大部分数据,而后指出不合乎该特色的任何单个值。

因为这是一个工夫序列,因而减少了须要继续(从新)检测异样值的复杂性。如果要在系列开展时执行此操作,那么咱们只能应用旧数据进行检测,而不能应用将来的数据。此外,为了避免许多反复测试,咱们应用一种误报率非常低的办法。

这些注意事项倡议对数据运行简略、牢靠的挪动窗口异样值测试。有很多可能性,但一种简略、易于了解和易于实现的是基于运行ARIMA:与中位数的中位数相对偏差。这是数据中变异的强持重度量,相似于标准差。离群将比中位数大几个ARIMA或更多。

读取数据

data1=read.table("失常数据.txt")data2=read.table("异样数据.txt")data3=read.table("异样数据第二组.txt")#查看数据head(data1)head(data2)head(data3)

绘制工夫序列图

plot.ts(data1)

长期变动的离群值

在辨认异样值和倡议一个适合的ARIMA模型方面做得很好。见上面利用auto.arima。

拟合arima模型,得出最优参数

fit=auto.arima(data1,trace=T)Fit

得出最优的arima模型p=1 q=1

将数据转换成time series格局

应用函数检测异样点 参数对比下面autorima得出的参数p=1 q=1

to(tsmethod = "auto.arima"                  ,argethod=list( stepwise=FALSE ))                  #设置环境参数 工夫窗口和异样点范畴阈值window <- 30threshold <- 3#求出中位数几倍范畴之外的样本点作为异样点ut <- function(x) {m = median(x); median(x) + threshold * median(abs(x - m))}#挪动工夫窗口查看工夫序列中的符合条件的工夫点 z <- rollaly(zoo(data2))

找出data2中符合条件的工夫点作为异样序列


最受欢迎的见解

1.在python中应用lstm和pytorch进行工夫序列预测

2.python中利用长短期记忆模型lstm进行工夫序列预测剖析

3.Python用RNN循环神经网络:LSTM长期记忆、GRU门循环单元、回归和ARIMA对COVID-19新冠疫情新增人数工夫序列

4.Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格工夫序列和MSE评估准确性

5.r语言copulas和金融工夫序列案例

6.R 语言用RNN循环神经网络 、LSTM长短期记忆网络实现工夫序列长期利率预测

7.Matlab创立向量自回归(VAR)模型剖析消费者价格指数 (CPI) 和失业率工夫序列

8.r语言k-shape工夫序列聚类办法对股票价格工夫序列聚类

9.R语言联合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络工夫序列剖析