Questions tagged «multiple-seasonalities»

1
R中秒/分钟间隔数据的“频率”值
我正在使用R(3.1.1)和ARIMA模型进行预测。我想知道什么是“频率”参数ts(),如果im使用时间序列数据,则该参数应在函数中分配: 以分钟为单位,并持续180天(每天1440分钟) 相隔数秒,分布在180天(86,400秒/天)中。 如果我没记错的话,R中以ts为单位的“频率”是每个“季节”的观测次数。 问题部分1: 在我的情况下,“季节”是什么? 如果季节是“日”,那么分钟的“频率”是1440,秒是86400? 问题第二部分: “频率”是否还取决于我要达到/预测的目标? 例如,就我而言,我想要一个非常短期的预测。每次比10分钟领先一步。 然后可以将季节视为一个小时而不是一天吗? 在那种情况下,频率= 60分钟,而频率= 3600秒? 例如,我尝试使用频率= 60作为分钟数据,与频率= 1440相比,得到了更好的结果(用于fourier查看Hyndman的以下链接) http://robjhyndman.com/hyndsight/forecasting-weekly-data/ (使用MAPE进行预测准确性的比较) 如果结果完全是任意的,并且无法更改频率。在我的数据上使用freq = 60的实际解释是什么? 我也认为值得一提的是,我的数据每隔两个小时包含一次季节性变化(通过观察原始数据和自相关函数)

3
每日时间序列分析
我正在尝试进行时间序列分析,并且是该领域的新手。我每天都在统计2006-2009年的某个事件,因此我想为其拟合时间序列模型。这是我取得的进步: timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25) plot.ts(timeSeriesObj) 我得到的结果图是: 为了验证是否存在季节性和趋势数据,或者不是,我按照此提到的步骤后: ets(x) fit <- tbats(x) seasonal <- !is.null(fit$seasonal) seasonal 在Rob J Hyndman的博客中: library(fma) fit1 <- ets(x) fit2 <- ets(x,model="ANN") deviance <- 2*c(logLik(fit1) - logLik(fit2)) df <- attributes(logLik(fit1))$df - attributes(logLik(fit2))$df #P value 1-pchisq(deviance,df) 两种情况都表明没有季节性。 当我绘制该系列的ACF和PACF时,得到的是: 我的问题是: 这是处理每日时间序列数据的方式吗?该页面建议我应该同时查看每周和年度模式,但是这种方法对我来说并不明确。 一旦有了ACF和PACF图,我将不知道如何进行。 我可以简单地使用auto.arima函数吗? 适合<-arima(myts,order = c(p,d,q) *****更新了Auto.Arima结果****** 当我根据罗布海德门的评论的数据的频率改变为7 这里,auto.arima选择一个季节性ARIMA模型和输出: …

1
如何分解具有多个季节性成分的时间序列?
我有一个包含双重季节性成分的时间序列,我想将该序列分解为以下时间序列成分(趋势,季节性成分1,季节性成分2和不规则成分)。据我所知,用于分解R中序列的STL过程仅允许一个季节性成分,因此我尝试了两次分解序列。首先,使用以下代码将频率设置为第一个季节性成分: ser = ts(data, freq=48) dec_1 = stl(ser, s.window="per") 然后,我dec_1通过将频率设置为第二个季节性分量来分解分解系列()的不规则分量,从而: ser2 = ts(dec_1$time.series[,3], freq=336) dec_2 = stl(ser2, s.window="per") 我对这种方法不是很自信。而且我想知道是否还有其他方法可以分解具有多个季节性的序列。另外,我注意到tbats()R 预测软件包中的函数允许一个模型适合具有多个季节性的序列,但是它并未说明如何使用它来分解一个序列。

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结果是合理的。任何/所有贡献者的任何想法都将受到高度赞赏。 测试数据链接 注意:执行“将链接另存为”以下载文件。

2
每天,每周和每年定期预测每小时时间序列
主要编辑:到目前为止,我要非常感谢Dave&Nick的回答。好消息是我开始工作了(原理是从海德曼教授的批量预测职位上借来的)。合并未完成的查询: a)如何增加auto.arima的最大迭代次数-似乎在有大量外生变量的情况下,auto.arima在达到最终模型之前达到了最大迭代次数。如果我误解了,请纠正我。 b)来自尼克的一个答案强调,我对小时间隔的预测仅从这些小时间隔中得出,不受当天早些时候发生的事件的影响。我的直觉来自于处理这些数据,告诉我这通常不会引起重大问题,但是我愿意就如何处理这些问题提出建议。 c)Dave指出,我需要一种更为复杂的方法来识别我的预测变量周围的提前/滞后时间。是否有人在R中使用编程方法有经验?我当然希望会有局限性,但是我想尽我最大的努力来开展这个项目,我毫不怀疑这也一定会对其他人有用。 d)新查询但与手头任务完全相关-选择订单时auto.arima是否考虑回归因素? 我正在尝试预测商店的造访。我要求能够考虑到假期,leap年和零星事件(主要是离群值);在此基础上,我发现ARIMAX是我最好的选择,它使用外生变量尝试对多个季节以及上述因素进行建模。 每小时24小时记录一次数据。事实证明这是有问题的,因为我的数据中有零个数字,尤其是在一天中访问量很少的时间,有时甚至在商店刚开业时根本没有访问量。而且,营业时间相对不稳定。 而且,将一个完整的时间序列作为一个具有3年以上历史数据的时间序列进行预测时,计算时间非常庞大。我认为通过将一天中的每个小时作为单独的时间序列进行计算,可以使其速度更快,并且在一天中较忙的时间进行测试似乎可以产生更高的准确性,但事实又证明,早/晚时间的问题是持续访问。我相信使用auto.arima将使过程受益,但是在达到最大迭代次数之前(因此使用手动拟合和maxit子句),它似乎无法收敛于模型。 我曾尝试通过创建一个当访问量= 0时的外生变量来处理“丢失”数据。同样,这对于一天中繁忙的时间(当唯一的无人访问时间是商店关门时)非常有用。在这些情况下,外生变量似乎可以成功地处理此问题,从而进行前瞻性预测,并且不包括前一天关闭的影响。但是,我不确定如何使用此原理来预测商店开张但并不总是会造访的安静时间。 在Hyndman教授关于R中的批量预测的帖子的帮助下,我试图建立一个循环来预测24系列,但它似乎不想从下午1点开始进行预测,也无法弄清原因。我得到“ optim中的错误(init [mask],armafn,method = optim.method,hessian = TRUE ::非有限有限差分值[1]”),但是由于所有系列的长度均相等,因此我基本上在使用同一矩阵,我不明白为什么会这样,这意味着矩阵不是全等级的,不是吗,如何用这种方法避免这种情况? https://www.dropbox.com/s/26ov3xp4ayig4ws/Data.zip date() #Read input files INPUT <- read.csv("Input.csv") XREGFDATA <- read.csv("xreg.csv") #Subset time series data from the input file TS <- ts(INPUT[,2:25], f=7) fcast <- matrix(0, nrow=nrow(XREGFDATA),ncol=ncol(TS)) #Create matrix of exogenous variables …

1
如何解释TBATS模型结果和模型诊断
我有一个半小时的需求数据,这是一个多个季节的时间序列。我在R的package中使用tbats过forecast,并得到如下结果: TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>}) 这是否意味着该序列不一定要使用Box-Cox变换,并且误差项是ARMA(5,4),而6、6和5项则用来解释季节性?阻尼参数0.8383表示什么,也用于转换吗? 以下是模型的分解图: 我想知道该怎么做level并slope讲述该模型。“坡度”告诉趋势,那又如何level呢?如何获得更清晰的情节session 1和session 2,它们分别是每天和每周的季节性。 tbats除了RMSE值,我还知道如何进行模型诊断以评估模型。正常方法是检查错误是否为白噪声,但此处的错误应该是ARMA系列的。我绘制了错误的'acf'和'pacf',但我认为它看起来不像ARMA(5,4)。这是否意味着我的模型不好? acf(resid(model1),lag.max = 1000) pacf(resid(model1),lag.max=1000) 最后一个问题RMSE是通过使用拟合值和真实值来计算的。如果我使用预测值fc1.week$mean和真实值来评估模型RMSE怎么办,它仍被称为?或者,还有这个名字吗? fc1.week <-forecast(model1,h=48*7) fc1.week.demand<-fc1.week$mean

1
使用R预测包中的TBATS解释时间序列分解
我想将以下时间序列数据分解为季节性,趋势和残差组分网。数据是来自商业建筑的每小时冷却能源概况: TotalCoolingForDecompose.ts <- ts(TotalCoolingForDecompose, start=c(2012,3,18), freq=8765.81) plot(TotalCoolingForDecompose.ts) 因此,基于以下建议,每天和每周都有明显的季节性影响:如何分解具有多个季节性成分的时间序列?,我使用tbats了forecast软件包中的函数: TotalCooling.tbats <- tbats(TotalCoolingForDecompose.ts, seasonal.periods=c(24,168), use.trend=TRUE, use.parallel=TRUE) plot(TotalCooling.tbats) 结果是: 此模型的level和slope组件描述什么?如何获得trend与remainder该软件包所引用的论文相似的,和组件(De Livera,Hyndman和Snyder(JASA,2011年))?
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.