时间序列arma建模遇到的问题

其实去年就已经把网上现成的arma建模的代码复现了,什么差分平稳型检测白噪声检测,画acf,pacf图以及bic准则给模型定阶。当时只是大概试了一下预测了几个数就过去了,也没出什么问题。这两天想用lstm和arma模型进行正常数据的预测能力对比,预测目的是为了让正常数据的预测出来的数据和待验证数据进行比对,超过一定的误差判定为异常(绝对误差/相对误差)。因为要判断异常,这个异常预想的就是波形明显不同,所以预测的数据要多一点,如果只是检测异常点那还不如自己定一个阈值(检测过大或者过小值)和一个差分阈值(检测突跳和台阶变化)。因为我也听说arma不适合长期预测,所有特地多准备了一些数据,用十天的分钟数据预测一天的分钟数据,看看具体能预测多长(据说预测长时间数据后面会变成一条横线)。然后我就用了之前的代码,只是把之前几十个数据换成了现在几万个数据。很快会出问题了,之前的bic准则定阶几秒钟就跑出结果了,数据多了之后几十分钟也没有结果,而且一直没有反应。想了半天猜想会不会是数据本身的问题,因为我用的是地下水温数据,说起来水温数据前后两天的相关性系数挺低的,在excel里面用correl函数测了一下,两天分钟数据自相关系数是零点零几,已经低于5%的"置信区间"了,简单都说就是两天数据相关性很低,自我感觉预测这样的数据不靠谱,所以换了个数据,预测水位数据(地下水位数据比较稳定,相关性系数一般都在0.5以上,属于强正相关。不像温度老是一上一下的振荡没有规律,都快成白噪声了,除非发生了地震。画图也可以明显看出来水温数据比较乱,水位数据相对光滑,而且有明显的固体潮效应),结果还是跑不出结果。试了很久最后只能无奈使用最原始的方法,就是看自(偏)相关图定阶。原始数据acf图相关性特别高,到了40阶还在1左右,acf和pacf图都是拖尾(都是拖尾无法定阶),所以我进行了一次差分,差分了一次还是感觉都拖尾,最后差分了三次才勉强定了q=3,pacf图还是拖尾p=0,差分次数d设为3。定阶的时候代码arima(0,3,3)报错,结果告诉我差分的d不能>2,所以只能换个写法,大概是mldel=arma(test,(0,3,3)).fit()(大概是这个意思,写法可能有问题)。最后发现arma模型拟合的结果和测试集test还是拟合的不错的,如果差分四次基本完全拟合了。但是发现一个大问题,那就是预测的结果是一个上下反过来的“L”,就是刚开始一条竖线,后面一条横线。查了gpt可能是因为过拟合所以预测结果是一条竖线,后面可能是因为arma模型不能做长时间预测所以变成了一条横线。然后修改了差分d的次数,减少差分次数,测试集拟合效果变差,但是预测结果还是反过来的L,但是如果不差分,测试集拟合结果就是条横线,预测数据也不对。改pq值也会报错说阶数不对。现在也不知道怎么办了,明天去工位试试两个方法,一个是减少一点数据量,比如五个小时预测一个小时的数据,一个小时的数据虽然少了点,但是预测出来的数据画波形对比异常也勉强差强人意。不过一直没这么做的原因是因为数据因为固体潮的原因每天水位数据有两个高峰和低峰,可以简单的理解为有周期(天)。所以才想着把数据弄成好十天的把“周期”也放进测试集中,预测也是一整天的数据。现在只能减少数据,或者用季节性arima模型,每天数据有高低峰不知道可不可以当作季节性。但是对这两种方法都不抱太大希望。实在不行,只能换方法了,arma可能真的不行5adb541927c24e97ab3e5026abdb2cbf.jpg

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值