【问题标题】:Using "rollmedian" function as a input for "arima" function使用“rollmedian”函数作为“arima”函数的输入
【发布时间】:2014-07-19 12:50:53
【问题描述】:

我的时间序列数据包括日期时间和温度列,如下所示:

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

我正在使用中值平滑函数来增强由于测量不精确而引起的小波动。

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))

随后,中值平滑的输出用于构建时序模型并使用以下代码实现预测:

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)

最后遇到如下错误:

seq.default(head(tt, 1), tail(tt, 1), deltat) 中的错误:'by' 论据太小了

仅供参考:建模和预测功能使用原始时间序列数据正常工作。

请指导我解决这个错误。

【问题讨论】:

    标签: zoo median smoothing temporal


    【解决方案1】:

    问题是因为zoo包的属性造成的。

    因此,代码可以修改为:

    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)
    

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 2022-11-21
      • 2021-03-13
      • 2023-01-21
      • 2019-04-02
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多