簡體   English   中英

檢測時間序列異常值

[英]Detection of time-series outliers

我正在從事大學項目預測。 我有一個巨大的數據庫,在兩個城市之間有需求。 但是,我知道這個數據集被污染了。 但是,我不知道哪些數據點被遮擋了。 該數據集是一個面板數據集,每月跟蹤城市對之間的需求。 以下是我正在使用的部分數據。

      CAI.JED CAI.RUH ADD.DXB CAI.IST  ALG.IST
2013-01-01   19196   14777      16    1413      12
2013-02-01   19913       8   18203    1026       5
2013-03-01   34242   11751   17836     985       1
2013-04-01   23481   12000   13479     948      27
2013-05-01   24428   16046   16391     954       9
2013-06-01   31791   23479   16571       1       4
2013-07-01   33716   20090   11323       0    5724
2013-08-01   35553       2   11121       0       0
2013-09-01   18746   13423   12119       0      26
2013-10-01      10   12223   10239       0       0
2013-11-01      19   20234   14231       5       2
2013-12-01   15198       1   12132      10       5

數據集是來自兩個數據集的組合。 向我提供數據的人告訴我,在幾個月內,兩個數據集中只有一個是有效的。 但是,不知道哪幾個月,哪個特定數據集可用。

現在我的問題是:對於項目的下一部分,我需要獲得年度需求數字。 但是,我知道這些數字被模糊了,我想刪除異常值。 R 中有哪些技術可以做到這一點?

由於數據采用時間序列格式,我嘗試使用 tsoutliers 包(參見http://cran.r-project.org/web/packages/tsoutliers/tsoutliers.pdf )。 但是,我無法使其正常工作。 另外,我嘗試了https://stats.stackexchange.com/questions/104882/detecting-outliers-in-time-series-ls-ao-tc-using-tsoutliers-package-in-r-how/104946的建議#104946 ,但沒有用。

在知道異常值是什么之后,我想替換它們(例如,用該路線的平均值),或者如果缺少太多點,我想從數據集中拒絕整個路線。

我更喜歡基於密度的聚類算法,例如 DBSCAN。 如果您修改 epsilon 和 num-samples,您可以非常具體地使用繪圖來過濾異常值以可視化結果(標簽 -1 是異常值)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM