我从谷歌趋势中提取每周数据值,我想在R中应用时间序列来预测未来值。我尝试过使用auto.arima(),但结果似乎只是所有未来预测的一个常量值,如果我在arima(c(p,d,q))手动给出随机参数,我得到的各种类型的结果。那么如何为我的数据确定合适的值。
data2<-ts(data$Volume)
[1] 64 74 64 68 100 87 79 72 66 74 58 68 65 71 71 71 63 65 62 58 58
[22] 58 58 60 56 51 56 52 58 59 58 60 66 67 69 67 80 66 73 73 72 68
[43] 66 70 69 66 68 67 60 50 36 50
fit<-auto.arima(data2)
pred<-predict(fit,n.ahead=30, interaval="prediction", se.fit="FALSE")
plot(pred)
pred
fit<-arima(data2,c(3,1,1)
pred<-predict(fit,n.ahead=30, interaval="prediction", se.fit="FALSE")
plot(pred)
pred
答案 0 :(得分:0)
这个答案假设你知道参数(p,d和q)是什么意思,如果没有,你需要做一些阅读。现在,ARIMA调用中提供了两组参数:趋势和季节性。
当您知道是否需要趋势和/或季节差异时,您可以尝试d和/或D参数的某些值,并可视化差异系列以确定适当的值。或者,您可以对差异系列执行ACF,并在相关结束前以负值开始停止。
现在,ACF和PACF绘制差异(静止)系列。确定您希望保留AR / MA条款的延迟。通常将其中任何一个保持为非零值应该没问题。根据经验,如果ACF快速下降到负值,则使用MA,否则如果逐渐下降,则使用AR。
答案 1 :(得分:0)
它显示一条直线,因为您的数据似乎没有相关性。
运行:
pacf(dat2)
没有滞后值显示出显着的相关性,并且也显示在auto.arima选择的拟合中。查看您提供的数据子集看起来不像ARIMA将是此数据的良好模型选择。
答案 2 :(得分:0)
你必须首先通过查看ACF和Residuals图或选择AIC最少的arima模型来选择最适合的sarima模型,然后你可以用函数预测:m = predict(fit,n.ahead =)。然后使用m $ pred来查找未来的预测,使用m $ se来查找其上限和下限。