全文链接: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 <- 30
threshold <- 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 和神经网络工夫序列剖析