Questions tagged «arima»

指在时间序列建模中用于数据描述和预测的AutoRegressive集成移动平均模型。该模型通过包含差异项来概括ARMA模型,这对于消除趋势和处理某些类型的非平稳性很有用。

2
手工进行ARIMA估算
我试图了解如何在ARIMA建模/ Box Jenkins(BJ)中估算参数。不幸的是,我所遇到的书都没有详细描述估计程序,例如对数似然估计程序。我发现该网站/教学材料非常有帮助。以下是来自上面引用的来源的公式。 L L (θ )= − n2日志(2 π)− n2日志(σ2)- Σt = 1ñË2Ť2个σ2大号大号(θ)=-ñ2日志⁡(2π)-ñ2日志⁡(σ2)-∑Ť=1个ñËŤ22σ2 LL(\theta)=-\frac{n}{2}\log(2\pi) - \frac{n}{2}\log(\sigma^2) - \sum\limits_{t=1}^n\frac{e_t^2}{2\sigma^2} 我想自己学习ARIMA / BJ估计。因此,我使用编写了用于手工估算ARMA的代码。下面是我在做,[R[R[RR[R[RR 我模拟了ARMA(1,1) 将上面的方程写成函数 使用模拟数据和优化函数来估计AR和MA参数。 我还在stats软件包中运行ARIMA,并通过手工比较了ARMA参数。 比较如下: **以下是我的问题: 为什么估计变量和计算变量之间存在细微差异? ARIMA是否在R反向广播中起作用,或者估算程序与我的代码中以下概述的有所不同? 我已将观测值1的e1或错误指定为0,这是正确的吗? 还有没有一种方法可以使用优化的粗略估计来估计预测的置信范围? 一如既往的感谢您的帮助。 下面是代码: ## Load Packages library(stats) library(forecast) set.seed(456) ## Simulate Arima y <- arima.sim(n = 250, list(ar = …

1
每日数据的时间序列预测:带回归的ARIMA
我使用的是每日时间序列的销售数据,其中包含大约2年的每日数据点。根据一些在线教程/示例,我试图确定数据的季节性。似乎有一个每周一次,每月一次,可能还有每年一次的周期性/季节性。 例如,有发薪日,尤其是在该月中的第1个发薪日,该发炎日在一周中持续几天。还有一些特定的假日效应,通过观察观察可以清楚地识别出来。 配备了一些观察结果之后,我尝试了以下操作: ARIMA(带有R-forecast包Arima和auto.arima来自R-forecast包),使用回归器(以及函数中需要的其他默认值)。我创建的回归器基本上是一个0/1值的矩阵: 11个月(n-1)个变量 12个假期变量 无法计算发薪日部分...因为它的影响比我想象的要复杂得多。发薪日效应的工作方式有所不同,具体取决于每月1日的工作日。 我使用7(即每周频率)对时间序列进行建模。我尝试了该测试-一次预测7天。结果是合理的:预测11周的平均准确度平均每周RMSE为5%。 TBATS模型(来自R-forecast包)-使用多个季节性(7,30.4375,365.25),并且显然没有回归。在每周平均RMSE 3.5%的情况下,准确性出乎意料地优于ARIMA模型。 在这种情况下,没有ARMA错误的模型的性能会稍好一些。现在,如果我仅将#1中所述的ARIMA模型的假日效应系数应用于TBATS模型的结果,则每周平均RMSE改善为2.95% 现在,在对这些模型的基础理论没有足够的背景知识或知识的情况下,我感到困惑的是,这种TBATS方法是否有效。尽管它在11周的测试中显着提高了RMSE,但我想知道它将来是否可以保持这种准确性。甚至将ARIMA的假日效果应用于TBATS结果是合理的。任何/所有贡献者的任何想法都将受到高度赞赏。 测试数据链接 注意:执行“将链接另存为”以下载文件。

5
如何同时处理多次序列?
我有一个数据集,其中包括25个期间的几种产品(1200种产品)的需求,我需要预测下一个时期每种产品的需求。起初,我想使用ARIMA并为每种产品训练一个模型,但是由于产品数量和(p,d,q)参数的调整,这非常耗时且不切实际。是否建议在先前需求为自变量的情况下使用回归(自回归)? 我能否知道是否有任何方法可以训练一个模型来预测所有1200种产品的需求?如果您能建议使用Python中的任何库,我将不胜感激,因为我正在使用Python。

4
R中ARIMA残差的Ljung-Box统计信息:令人困惑的测试结果
我正在尝试预测一个时间序列,为此我使用了季节性ARIMA(0,0,0)(0,1,0)[12]模型(= fit2)。它与R关于auto.arima的建议不同(R计算得出的ARIMA(0,1,1)(0,1,0)[12]会更好,我将其命名为fit1)。但是,在我的时间序列的最后12个月,我的模型(fit2)在调整后似乎更合适(长期存在偏差,我添加了剩余均值,新的拟合似乎更贴近原始时间序列这是过去12个月的示例,MAPE最近12个月的两种情况: 时间序列如下所示: 到目前为止,一切都很好。我对这两个模型都进行了残差分析,这就是困惑。 acf(resid(fit1))看起来很棒,非常白噪声: 但是,Ljung-Box测试不适用于例如20个滞后: Box.test(resid(fit1),type="Ljung",lag=20,fitdf=1) 我得到以下结果: X-squared = 26.8511, df = 19, p-value = 0.1082 据我了解,这是对残差不是独立的确认(p值太大,无法与独立假设一起保留)。 但是,对于滞后1来说,一切都很好: Box.test(resid(fit1),type="Ljung",lag=1,fitdf=1) 给我结果: X-squared = 0.3512, df = 0, p-value < 2.2e-16 我可能不理解该测试,或者与我在acf图上看到的有些矛盾。自相关性很低。 然后我检查了fit2。自相关函数如下所示: 尽管在最初的几个滞后处存在如此明显的自相关,但Ljung-Box测试在20个滞后处给我的结果比fit1好得多: Box.test(resid(fit2),type="Ljung",lag=20,fitdf=0) 结果是 : X-squared = 147.4062, df = 20, p-value < 2.2e-16 而仅仅在lag1处检查自相关,也可以得到零假设的证实! Box.test(resid(arima2.fit),type="Ljung",lag=1,fitdf=0) X-squared = 30.8958, …

2
ARMA / ARIMA与混合效果建模有何关系?
在面板数据分析中,我使用了具有随机/混合效应的多级模型来处理自相关问题(即,观察结果随时间聚集在个体中),并添加了其他参数以调整一些时间规格和感兴趣的冲击。ARMA / ARIMA似乎旨在解决类似问题。 我在网上找到的资源讨论了时间序列(ARMA / ARIMA)或混合效应模型,但是除了建立在回归之上之外,我不了解两者之间的关系。可能要在多层次模型中使用ARMA / ARIMA吗?两者之间是等效还是多余? 讨论此问题的资源的答案或指针将是很棒的。

2
Box-Jenkins选型
时间序列分析中的Box-Jenkins模型选择过程从查看序列的自相关和部分自相关函数开始。这些图可以建议ARMA (p ,q )模型中的适当和q。通过要求用户应用AIC / BIC标准来选择那些具有白噪声误差项的模型中最简化的模型,从而继续执行该过程。pppqqq(p,q)(p,q)(p,q) 我想知道这些目视检查和基于标准的模型选择步骤如何影响最终模型的估计标准误差。我知道,例如,横截面域中的许多搜索过程都会使标准误向下偏移。 第一步,通过查看数据(ACF / PACF)选择适当的滞后次数如何影响时间序列模型的标准误差? 我猜想根据AIC / BIC分数选择模型会产生与横截面方法类似的影响。我实际上对这方面也不了解,所以在这一点上任何评论也将不胜感激。 最后,如果您写下用于每个步骤的精确标准,是否可以引导整个过程来估计标准误差并消除这些担忧?

4
带有延迟和时间序列的多元线性回归之间的“机械”区别是什么?
我是商业和经济学专业的毕业生,目前正在攻读数据工程硕士学位。在研究线性回归(LR)然后进行时间序列分析(TS)时,我想到了一个问题。为什么要创建一种全新的方法,即时间序列(ARIMA),而不是使用多元线性回归并向其添加滞后变量(使用ACF和PACF确定滞后的顺序)?所以老师建议我写一篇关于这个问题的文章。我不会徒劳地寻求帮助,所以我做了关于该主题的研究。 我已经知道使用LR时,如果违反了高斯-马尔可夫假设,则OLS回归是不正确的,并且在使用时间序列数据(自相关等)时会发生这种情况。(与此有关的另一个问题是,一个通用汽车假设是自变量应该是正态分布的?还是仅以自变量为条件的因变量?) 我也知道,当使用分布式滞后回归(这是我在这里提出的建议)并使用OLS估计参数时,变量之间的多重共线性可能(显然)会出现,因此估计将是错误的。 在关于TS和LR的类似帖子中,@ IrishStat说: ...回归模型是传递函数模型的一种特殊情况,也称为动态回归模型或XARMAX模型。重点是在时间序列中进行模型识别,即适当的差异,适当的X滞后,适当的ARIMA结构,适当的未确定的确定性结构的识别,例如脉冲,水平移动,本地时间趋势,季节性脉冲和合并必须考虑参数变化或误差变化。 (我也在Autobox中阅读了他关于Box Jenkins vs LR的论文。)但这仍然不能解决我的问题(或者至少没有为我澄清RL和TS的不同机制)。 显然,即使存在滞后变量,OLS也会出现问题,而且效率不高也不正确,但是如果使用最大可能性,这些问题是否还会持续存在?我已经读过ARIMA是通过最大似然估计的,因此,如果使用ML而不是OLS估计带有滞后的LR,它是否会产生“正确”的系数(让我们假设还包括滞后误差项,例如阶次MA) q)。 简而言之,是OLS问题吗?应用ML是否解决了问题?

1
R中具有多个外生变量的Arima时间序列预测(auto.arima)
我想基于具有多个外生变量的多个时间序列ARIMA模型进行预测。由于我对统计数据和RI都不希望保持尽可能简单(3个月的趋势预测就足够了)。 我有1个相关的时间序列和3-5个预测器时间序列,所有月度数据,无间隔,同时为“水平”。 我遇到了auto.arima函数,并问自己这是否适合我的问题。我有不同的商品价格和用它们制成的产品的价格。所有原始数据都是非平稳的,但是通过一阶微分,它们都变成了平稳数据。ADF,KPSS对此进行了说明。(这意味着我已经对集成进行了测试,对吗?)。 我现在的问题是:如何将它与auto.arima函数一起应用,而且ARIMA是否是正确的方法?一些人已经建议我使用VAR,但是ARIMA也可以吗? 下表是我的数据。实际上,数据集直到105个观测值为止,但前50个观测值可以。在这里,趋势和季节性显然很有趣。 感谢您的任何建议和帮助!格奥尔格
14 r  time-series  arima 

1
循环数据的时间序列建模
我正在为某些风/浪数据构建ARIMA模型。我为每个变量建立一个单独的模型。 我需要建模的两个变量是波浪和风向。值单位为度(0-360°)。是否可以对值间隔为圆形的此类数据建模?如果不是,哪种类型的模型最适合此类数据?

2
使用R的时间序列分析过程和方法
我正在做一个小项目,我们试图预测未来6个月内商品(油,铝,锡等)的价格。我有12个这样的变量可以预测,并且我有2008年4月至2013年5月的数据。 我应该如何进行预测?我已经完成以下工作: 导入的数据作为时间序列数据集 所有变量的季节性都倾向于随趋势而变化,因此我将使用乘法模型。 我将变量的对数转换为加性模型 对于每个变量,使用STL分解数据 我打算使用Holt Winters指数平滑,ARIMA和神经网络进行预测。我将数据分为训练和测试(80、20)。计划选择MAE,MPE,MAPE和MASE较少的模型。 我做对了吗? 我还有一个问题是,在传递给ARIMA或神经网络之前,我应该对数据进行平滑处理吗?如果是,使用什么?数据显示季节性和趋势。 编辑: 附加时间序列图和数据 Year <- c(2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2011, 2011, 2011, …

2
ARIMA vs ARMA在不同系列上
在R(2.15.2)中,我在一个时间序列上安装了一次ARIMA(3,1,3),在一次有差异的时间序列上安装了一次ARMA(3,3)。拟合参数不同,这归因于ARIMA中的拟合方法。 同样,无论我使用哪种拟合方法,在与ARMA(3,3)相同的数据上拟合ARIMA(3,0,3)都不会得到相同的参数。 我有兴趣确定差异的出处以及可以使用哪些参数(如果有的话)拟合ARIMA,以获得与ARMA相同的拟合系数。 示例代码演示: library(tseries) set.seed(2) #getting a time series manually x<-c(1,2,1) e<-c(0,0.3,-0.2) n<-45 AR<-c(0.5,-0.4,-0.1) MA<-c(0.4,0.3,-0.2) for(i in 4:n){ tt<-rnorm(1) t<-x[length(x)]+tt+x[i-1]*AR[1]+x[i-2]*AR[2]+x[i-3]*AR[3]+e[i-1]*MA[1]+e[i-2]*MA[2]+e[i-3]*MA[3] x<-c(x,t) e<-c(e,tt) } par(mfrow=c(2,1)) plot(x) plot(diff(x,1)) #fitting different versions. What I would like to get is fit1 with ARIMA() fit1<-arma(diff(x,1,lag=1),c(3,3),include.intercept=F) fit2<-arima(x,c(3,1,3),include.mean=F) fit3<-arima(diff(x,1),c(3,0,3),include.mean=F) fit4<-arima(x,c(3,1,3),method="CSS",include.mean=F) fit5<-arima(diff(x,1),c(3,0,3),method="CSS",include.mean=F) cbind(fit1$coe,fit2$coe,fit3$coe,fit4$coe,fit5$coe) 编辑:使用条件平方和来的很接近,但还不完全是。感谢您对fit1的提示! Edit2:我不认为这是重复的。第2点和第3点解决的问题与我的不同,即使我重写了第1点提到的初始化, fit4<-arima(x,c(3,1,3),method="CSS",include.mean=F,init=fit1$coe) 我仍然得到不同的系数
13 r  time-series  arima  fitting  arma 

4
auto.arima()是否识别出模型?
我一直在尝试学习和应用ARIMA模型。我一直在阅读Pankratz撰写的关于ARIMA的精彩文章- 使用单变量Box-Jenkins模型进行预测:概念和案例。在本文中,作者在选择ARIMA模型时特别强调了简约原则。 我开始使用R包预测中的auto.arima()函数。这是我所做的,我模拟了ARIMA,然后应用。以下是两个示例。正如您在两个示例中看到的那样,清楚地确定了许多人认为不简约的模型。尤其是在示例2中,在该示例中标识ARIMA(3,0,3)的时间实际上是ARIMA(1,0,1)就足够了,而且是简约的。auto.arima()auto.arima()auto.arima() 以下是我的问题。我将不胜感激任何建议。 是否有关于何时使用/修改通过自动算法识别的模型的指南auto.arima()? 仅使用AIC(我认为auto.arima()使用)来识别模型是否有任何困难? 可以建立一个简约的自动算法吗? 顺便说一下,我auto.arima()只是作为一个例子。这将适用于任何自动算法。 以下是示例1: set.seed(182) y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10) auto.arima(y) qa <- arima(y,order=c(1,0,1)) qa 以下是的结果auto.arima()。请注意,所有系数都不重要。即值<2。Ťtt ARIMA(1,0,2) with non-zero mean Coefficients: ar1 ma1 ma2 intercept 0.5395 0.2109 -0.3385 19.9850 s.e. 0.4062 0.4160 0.3049 0.0878 sigma^2 estimated as 1.076: log likelihood=-728.14 AIC=1466.28 AICc=1466.41 BIC=1487.36 以下是arima()使用ARIMA(1,0,1)顺序常规运行的结果 Series: …

4
在有马之前或有马以内的时差时间序列
在使用Arima之前最好先区分一个系列(假设需要),还是在Arima中使用d参数更好? 令我惊讶的是,取决于使用相同模型和数据的路线,拟合值有多么不同。还是我做错了什么? install.packages("forecast") library(forecast) wineindT<-window(wineind, start=c(1987,1), end=c(1994,8)) wineindT_diff <-diff(wineindT) #coefficients and other measures are similar modA<-Arima(wineindT,order=c(1,1,0)) summary(modA) modB<-Arima(wineindT_diff,order=c(1,0,0)) summary(modB) #fitted values from modA A<-forecast.Arima(modA,1)$fitted #fitted from modB, setting initial value to the first value in the original series B<-diffinv(forecast.Arima(modB,1)$fitted,xi=wineindT[1]) plot(A, col="red") lines(B, col="blue") 加: 请注意,我先对系列进行求差并拟合arima(1,0,0),然后将arima(1,1,0)拟合到原始序列。我(我认为)反转差异文件上arima(1,0,0)的拟合值的差异。 我正在比较拟合值-而不是预测。 这是情节(红色是arima(1,1,0),蓝色是在变回原始比例后的差分序列上的arima(1,0,0)): 回应Hyndman博士的回答: 1)您能否在R代码中说明我需要做些什么才能使Arima(1,1, 0)和Arima(1,0,0)在手动差分序列上?我认为这与没有包含在modA中有关,但是我不确定如何进行。 …
13 r  time-series  arima 

3
集合时间序列模型
我需要自动进行时间序列预测,而且我事先不知道这些序列的功能(季节性,趋势,噪音等)。 我的目标不是为每个系列获得最佳模型,而是避免出现非常糟糕的模型。换句话说,每次都会出现小错误不是问题,但是偶尔会出现大错误是一个问题。 我认为我可以通过组合使用不同技术计算的模型来实现。 也就是说,尽管ARIMA对于特定系列来说是最好的方法,但对于其他系列来说可能不是最好的方法。指数平滑也一样。 但是,如果我将每种技术中的一个模型组合在一起,即使一个模型不太好,另一个模型也会使估算值更接近真实值。 众所周知,ARIMA在长期行为良好的序列中效果更好,而指数平滑在短期噪声序列中表现突出。 我的想法是结合使用两种技术生成的模型以获得更可靠的预测,这有意义吗? 可能有很多方法可以合并这些模型。 如果这是一个好方法,我应该如何将它们结合起来? 一个简单的预测平均值方法是一个选择,但是如果我根据模型的某种优度度量对平均值进行加权,也许可以得到更好的预测。 合并模型时对方差的处理方式是什么?

1
如何在预测中考虑假期的影响
我有一个相当可预测的每日时间序列和每周季节性。在没有假期的情况下,我能够提出看起来很准确的预测(通过交叉验证确认)。但是,当有假期时,我会遇到以下问题: 尽管所有历史假期均为0,但我在预测中得到的假期非零数字。但这实际上不是主要问题。问题是... 由于假期中不进行的处理会“溢出”到假期后的几天,因此,由于这些异常值似乎是短期的创新,因此无法使用简单的虚拟变量进行削减。如果没有每周的季节性变化,我可能会得出一个估计值,用于在假期后的五天左右的时间内分配假期中未处理的数据(如您如何创建反映假期的超前和滞后影响的变量中建议的/时序分析中的日历效果?)。但是,“溢出”的分布取决于假期发生的星期几,以及假期是否是圣诞节或感恩节,那里的订单订购率低于一年中的其余时间。 以下是我的交叉验证的一些快照,这些快照显示了在一周的不同日期出现的假期的预测(蓝色)与实际(红色)结果: 我还担心圣诞节的影响取决于它落在一周中的哪一天,而我只有六年左右的历史数据。 对于在预测的背景下如何应对这些类型的创新异常值,是否有人有任何建议?(很遗憾,我无法共享任何数据)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.