Using “rollmedian” function as a input for “arima” function

核能气质少年 提交于 2020-01-15 10:55:07

问题


My time-series data includes date-time and temperature columns as follows:

rn25_29_o:

  ambtemp                  dt
1   -1.96 2007-09-28 23:55:00
2   -2.02 2007-09-28 23:57:00
3   -1.92 2007-09-28 23:59:00
4   -1.64 2007-09-29 00:01:00
5   -1.76 2007-09-29 00:03:00
6   -1.83 2007-09-29 00:05:00

I am using median smoothing function to enhance small fluctuations that are caused because of imprecise measurements.

unique_timeStamp <- make.time.unique(rn25_29_o$dt) 
temp.zoo<-zoo(rn25_29_o$ambtemp,unique_timeStamp)
m.av<-rollmedian(temp.zoo, n,fill = list(NA, NULL, NA))

subsequently, the output of the median smoothing is used for building temporal model and achieving predictions by using the following code:

te = (x.fit = arima(m.av, order = c(1, 0, 0)))
# fit the model and print the results
x.fore = predict(te, n.ahead=50)

Finally, I encounter with the following error:

Error in seq.default(head(tt, 1), tail(tt, 1), deltat) : 'by' argument is much too small

FYI: The modeling and prediction function works properly by using original time-series data.

Please, guide me through this error.


回答1:


The problem occurred because of the properties of the zoo package.

Thus, the code can be amended to :

Median_ambtemp <- rollmedian(ambtemp,n,fill = list(NA, NULL, NA))                                      te = (x.fit = arima(Median_ambtemp, order = c(1, 0, 0)))   
# fit the model and print the results
x.fore = predict(te, n.ahead=5)


来源:https://stackoverflow.com/questions/24840586/using-rollmedian-function-as-a-input-for-arima-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!