微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 xreg=snaive() 进行预测

如何解决使用 xreg=snaive() 进行预测

我正在尝试预测时间序列 'tsl',将前一年的温度 (temp) 作为回归组件。以及使用训练集找到的最佳 ARIMA 订单。

与:

> dput(liters)
structure(list(Liters = c(93.6128027191616,147.535759807393,238.634754284096,162.547797762357,238.386914034839,407.909644526271,465.08993060473,427.701458716896,487.997450786008,420.407874238776,424.868998725393,485.30661379408,117.016003398952,184.419699759241,298.29344285512,203.184747202946,297.983642543549,509.887055657839,581.362413255913,534.62682339612,609.99681348251,525.50984279847,531.086248406741,606.6332672426,140.419204078742,221.303639711089,357.952131426144,243.821696643535,357.580371052259,611.864466789407,697.634895907095,641.552188075343,731.996176179012,630.611811358165,637.30349808809,727.95992069112,163.822404758533,258.187579662937,417.610819997168,284.458646084124,417.177099560969,713.841877920974,813.907378558278,748.477552754567,853.995538875513,735.713779917859,743.520747769438,849.28657413964,416,665,1137,511,1659,1053,804,1097,887,990,1638,1045,628,1641,2101,2556,4409,3793,3732,3607,5318,4445,6362,8662,1600,1861,3502,1524,2675,4600,3376,3578,2439,2000,4000)),row.names = c(NA,-84L),class = c("tbl_df","tbl","data.frame"))

> dput(temp)
structure(list(tempratuur = c(4.50645161290323,5.74285714285714,7.33870967741935,10.8166666666667,12.6774193548387,15.4033333333333,19.4064516129032,16.0516129032258,15.83,13.141935483871,7.68333333333333,4.65483870967742,3.89032258064516,3.175,5.81612903225806,7.55666666666667,11.0741935483871,14.0133333333333,17.358064516129,17.9838709677419,13.3,9.93225806451613,9.54333333333333,8.93548387096774,3.28387096774194,4.15172413793103,4.80322580645161,7.78,13.6677419354839,15.6433333333333,17.4612903225806,17.1967741935484,17.4933333333333,9.7741935483871,5.34,4.98064516129032,1.55806451612903,4.10714285714286,7.45161290322581,7.75,13.6032258064516,16.4566666666667,17.058064516129,16.7774193548387,13.7833333333333,12.9741935483871,7.15,4.6258064516129,4.61612903225806,0.221428571428571,3.54516129032258,10.8633333333333,15.6290322580645,15.93,19.0870967741935,18.0032258064516,14.6533333333333,12.1709677419355,6.43,6.06129032258064,3.36129032258064,5.70357142857143,7.18387096774194,9.7,10.7483870967742,17.12,18.0129032258065,18.2709677419355,14.5266666666667,11.0935483870968,6.29333333333333,5.63225806451613,6.05483870967742,6.38620689655172,6.06774193548387,9.36,11.5612903225806,16.6466666666667,15.958064516129,19.6677419354839,14.8266666666667,11.1870967741935,8.52666666666667,5.06129032258064)),"data.frame"))

而最小的代码,最多的问题是:

data<-      read_excel("path to file")

START<- c(2014,1)       #Start maand data
Fq<-    12              #Frequentie bij maandelijkse data

liters<-data[,"Liters"]
temp<-  data[,"Tempratuur"]
tsl<-   ts(liters,frequency=Fq,start=START)

X1<-    6                   #Lengte testdata
X2<-    length(tsl)-(X1-1)  #Lengte trainingsdata
Y<- 12                      #Lengte voorspelling

training<-  subset(tsl,end=length(tsl)-X1)
test<-      subset(tsl,start=X2)

lamb<-      BoxCox.lambda(training) 

reg1<-          ts(temp,start=START)
reg1training<-  subset(reg1,end=length(tsl)-X1)
reg1test<-      subset(reg1,start=X2)

txt<-   auto.arima(training,xreg=reg1training,lambda=lamb,stepwise=FALSE)

ntxt<-  Arima(tsl,order=arimaorder(txt)[1:3],seasonal=arimaorder(txt)[4:6],lambda=lamb)

然后我想预测时间序列“tsl”,将前一年的温度(temp)作为回归分量。而“ntxt”作为预测模型。

像这样:

forecast(ntxt,xreg=snaive(temp,12))

这可能吗?

如果有,怎么办?

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。