楼主: tpr3396
6690 2

时间序列里的异常值与断点 [推广有奖]

  • 0关注
  • 0粉丝

本科生

57%

还不是VIP/贵宾

-

威望
0
论坛币
88918 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
890 点
帖子
64
精华
0
在线时间
93 小时
注册时间
2007-5-16
最后登录
2017-6-25

楼主
tpr3396 发表于 2009-9-6 17:56:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
取了一段很长的汇率(日值)的时间序列,85年到09年,发现里面含有若干异常值,还有几处断点,请问在做GARCH类模型之前,应该如何处理这样的数据呢?谢谢
二维码

扫码加我 拉你入群

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

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

关键词:时间序列 异常值 ARCH类模型 GARCH ARCH 时间 序列 异常值 断点

沙发
DM小菜鸟 发表于 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。前者为异常值替换后的新向量,后者为原向量中异常值及其所在位置。

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 05:09