我正在进行大学项目预测。我有一个庞大的数据库,有两个城市之间的需求。但是,我知道这个数据集已被污染。但是,我不知道哪些数据点被遮挡了。数据集是一个面板数据集,每月跟踪城市对之间的需求。以下是我正在使用的数据的一部分。
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的建议,但它没有用。
在知道异常值是什么之后,我想要替换它们(例如用该路线的平均值),或者如果缺少太多的点,我想从数据集中拒绝整个路线。
答案 0 :(得分:0)
我更喜欢基于密度的聚类算法,例如DBSCAN。 如果您修改epsilon和num-sample,则可以非常特别地过滤异常值 用图解法显示结果(标签-1是异常值)