全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6596 2
2009-09-06
取了一段很长的汇率(日值)的时间序列,85年到09年,发现里面含有若干异常值,还有几处断点,请问在做GARCH类模型之前,应该如何处理这样的数据呢?谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-26 15:36:47
R 语言中有专门的 outliers 这个包用来检验异常值,说明书在这里:
http://cran.r-project.org/web/packages/outliers/outliers.pdf
  
不过这里还有一个函数 outlier.IQR。outlier.IQR() 能对异常值进行替换,替换值自己设定,可以为 NA、平均值、中位数等等。
   
outlier.IQR - function(x, multiple = 1.5, replace = FALSE, revalue = NA) {
q - quantile(x, na.rm = TRUE) #四分位间距3倍间距以外的认为是离群值
IQR - q[4] - q[2]
x1 - which(x q[2] - multiple * IQR | x q[4] + multiple * IQR)
x2 - x[x1]
if (length(x2) 0) outlier - data.frame(location = x1, value = x2)
else outlier - data.frame(location = 0, value = 0)
if (replace == TRUE) {
x[x1] - revalue
}
return(list(new.value = x, outlier = outlier))
}
结果输出为列表,分别为 outlier.IQR()
$ new.value 和 outlier.IQR() $ outlier。前者为异常值替换后的新向量,后者为原向量中异常值及其所在位置。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-7-9 09:13:11
DM小菜鸟 发表于 2015-1-26 15:36
R 语言中有专门的 outliers 这个包用来检验异常值,说明书在这里:
http://cran.r-project.org/web/packag ...
这个检验异常值的方法能用在时间序列数据中吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群