[英]How to detect outliers (typo jumps) in time-series data by group and correct/impute them?
[英]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.