Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-ARIMA参数。如何确定arima(p,d,q)参数?_R_Time Series_Predict - Fatal编程技术网

R-ARIMA参数。如何确定arima(p,d,q)参数?

R-ARIMA参数。如何确定arima(p,d,q)参数?,r,time-series,predict,R,Time Series,Predict,我有从谷歌趋势中提取的每周数据值,我想在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 [

我有从谷歌趋势中提取的每周数据值,我想在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

data2这个答案假设您知道参数(p、d和q)的含义,如果不知道,您需要进行一些阅读。现在,ARIMA调用中需要提供两组参数:趋势和季节

  • 首先,通过简单地绘制时间序列或使用分解函数来确定数据是否具有任何趋势或季节性
  • 当您知道是否需要进行趋势和/或季节性差异时,可以尝试d和/或d参数的一些值,并可视化差异序列以确定适当的值。或者,您可以对差分序列执行ACF,并在相关性以负值开始之前停止

  • 现在,在差分(平稳)序列上绘制ACF和PACF。确定AR/MA条款中您希望保留的滞后时间。通常,将它们中的任何一个保持为非零值都可以。根据经验,如果ACF迅速下降到负值,则使用MA;如果ACF逐渐下降,则使用AR


  • 它显示的是一条直线,因为您的数据似乎不相关

    运行:


    没有滞后值显示出显著的相关性,这也显示在auto.arima选择的拟合中。查看您提供的数据子集,它看起来不像ARIMA是该数据模型的良好选择

    您必须首先通过查看ACF和残差图或采用AIC最小的arima模型来选择最适合的sarima模型,然后您可以使用函数:m=预测(fit,n.ahead=)进行预测。然后使用m$pred查找未来预测,使用m$se查找其上限和下限。

    我尝试了在线显示的季节性检查“tbats”测试,结果为假,那么如何预测这些值呢?excel中的FORECAST.ETS函数是预测此类数据值的好选项吗?我没有使用excel,所以我不确定。如果您愿意,可以在R中安装ets型号。要知道它是否工作良好,唯一的方法就是测试它。如果您拥有的数据超过当前显示的数据,请尝试对一半进行拟合,然后进行预测并与实际值进行比较,以了解拟合效果如何does@MayankAgarwal看看这本书。它很容易理解,并给出了大量的示例R代码。
    fit<-arima(data2,c(3,1,1)
    pred<-predict(fit,n.ahead=30, interaval="prediction", se.fit="FALSE") 
    plot(pred)
    pred
    
    pacf(dat2)