Questions tagged «forecasting»

未来事件的预测。在[时间序列]的上下文中,这是[预测]的特例。

1
何时使用指数平滑vs ARIMA?
最近,我在工作时进行一些月度预测并阅读Rob Hyndman的书时一直在刷新我的预测知识,但我苦苦挣扎的一个地方是何时使用指数平滑模型与ARIMA模型。根据经验,应该使用一种方法还是另一种方法? 另外,由于您无法使用AIC进行比较,因此您只需要按RMSE,MAE等进行比较? 目前,我只是每个都建立一些并比较错误度量,但是我不确定是否有更好的方法。

3
开发适当的时间序列模型以根据上个月的记录预测销售
我已经连续两年从事在线业务,因此我拥有大约两年的月度销售数据。我每个月的业务肯定会受到季节性波动的影响(圣诞节期间的表现更好,等等),可能还有一些我不知道的其他因素。 为了更好地预测未来的销售,并评估我的销售活动的有效性或新竞争对手的影响,我希望能够开发一个适当的时间序列模型,以将我当前的销售数据推算到未来。这样,当我将预测结果与实际结果进行比较时,我可以定量地测试销售活动的有效性或竞争对手的影响。 我的问题是,鉴于我拥有2年的销售数据,无论如何,我是否可以为此制定一个预测性的时间序列模型? 注意:我对背景概念和理论更感兴趣,而不是黑匣子工具。说到工具,我有mathematica,matlab,R,Excel,Google Spreadsheet...。

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
动态因素分析与状态空间模型
R中的MARSS软件包提供了用于动态因子分析的功能。在此程序包中,动态因子模型被编写为状态空间模型的一种特殊形式,并且它们假定遵循AR(1)过程的共同趋势。由于我对这两种方法不太熟悉,因此我提出了两个问题: 动态因子分析是状态空间模型的一种特殊形式吗?这两种方法有什么区别? 此外,动态因素分析并不一定假定AR(1)过程具有共同趋势。是否有任何软件包可以使通用趋势作为季节性ARIMA(或其他)过程?

2
对数差异时间序列模型是否优于增长率?
我经常看到作者估计“对数差异”模型,例如 log(yt)−log(yt−1)=log(yt/yt−1)=α+βxtlog⁡(yt)−log⁡(yt−1)=log⁡(yt/yt−1)=α+βxt\log (y_t)-\log(y_{t-1}) = \log(y_t/y_{t-1}) = \alpha + \beta x_t 我同意这是恰当的关联在变化的百分比而为。xtxtx_tytyty_tlog(yt)log⁡(yt)\log (y_t)I(1)I(1)I(1) 但是对数差异是一个近似值,似乎无需对数转换也可以估算一个模型,例如 yt/yt−1−1=(yt−yt−1)/yt−1=α+βxtyt/yt−1−1=(yt−yt−1)/yt−1=α+βxty_t/y_{t-1} -1 = (y_t - y_{t-1}) / y_{t-1}=\alpha+\beta x_t 此外,增长率将精确地描述百分比变化,而对数差异将仅近似于百分比变化。 但是,我发现对数差异法的使用频率更高。实际上,使用增长率似乎与解决第一个差异一样适合解决平稳性问题。实际上,我发现将对数变量转换回级别数据时,预测会变得有偏差(在文献中有时称为重新转换问题)。yt/yt−1yt/yt−1y_t/y_{t-1} 与增长率相比,使用对数差异有什么好处?增长率转换是否存在任何固有问题?我猜想我遗漏了一些东西,否则更频繁地使用该方法似乎很明显。

3
如何处理不存在或缺失的数据?
我尝试了一种预测方法,并想检查我的方法是否正确。 我的研究正在比较不同种类的共同基金。我想使用GCC指数作为其中一个的基准,但问题是GCC指数于2011年9月停止,我的研究时间是2003年1月至2014年7月。因此,我尝试使用另一个指数MSCI指数,进行线性回归,但问题在于MSCI指数缺少2010年9月以来的数据。 为了解决这个问题,我做了以下工作。这些步骤有效吗? MSCI指数缺少2010年9月到2012年7月的数据。我通过应用五个观察值的移动平均值来“提供”该数据。这种方法有效吗?如果是这样,我应该使用多少个观测值? 在估计了缺失的数据之后,我对相互可用期间(从2007年1月到2011年9月)的GCC指数(作为因变量)与MSCI指数(作为自变量)进行了回归,然后针对所有问题对模型进行了校正。对于每个月,我将其余时间段的x替换为MSCI索引中的数据。这有效吗? 以下是逗号分隔值格式的数据,其中包含按行的年和按列的月。也可以通过此链接获得数据 。 系列GCC: ,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec 2002,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,117.709 2003,120.176,117.983,120.913,134.036,145.829,143.108,149.712,156.997,162.158,158.526,166.42,180.306 2004,185.367,185.604,200.433,218.923,226.493,230.492,249.953,262.295,275.088,295.005,328.197,336.817 2005,346.721,363.919,423.232,492.508,519.074,605.804,581.975,676.021,692.077,761.837,863.65,844.865 2006,947.402,993.004,909.894,732.646,598.877,686.258,634.835,658.295,672.233,677.234,491.163,488.911 2007,440.237,486.828,456.164,452.141,495.19,473.926,492.782,525.295,519.081,575.744,599.984,668.192 2008,626.203,681.292,616.841,676.242,657.467,654.66,635.478,603.639,527.326,396.904,338.696,308.085 2009,279.706,252.054,272.082,314.367,340.354,325.99,326.46,327.053,354.192,339.035,329.668,318.267 2010,309.847,321.98,345.594,335.045,311.363,299.555,310.802,306.523,315.496,324.153,323.256,334.802 2011,331.133,311.292,323.08,327.105,320.258,312.749,305.073,297.087,298.671,NA,NA,NA 系列MSCI: ,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec 2007,NA,NA,NA,NA,1000,958.645,1016.085,1049.468,1033.775,1118.854,1142.347,1298.223 2008,1197.656,1282.557,1164.874,1248.42,1227.061,1221.049,1161.246,1112.582,929.379,680.086,516.511,521.127 2009,487.562,450.331,478.255,560.667,605.143,598.611,609.559,615.73,662.891,655.639,628.404,602.14 2010,601.1,622.624,661.875,644.751,588.526,587.4,615.008,606.133,NA,NA,NA,NA 2011,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA 2012,NA,NA,NA,NA,NA,NA,NA,609.51,598.428,595.622,582.905,599.447 2013,627.561,619.581,636.284,632.099,651.995,651.39,687.194,676.76,694.575,704.806,727.625,739.842 2014,759.036,787.057,817.067,824.313,857.055,805.31,873.619,NA,NA,NA,NA,NA

1
我什么时候停止寻找模特?
我正在寻找能源价格与天气之间的模型。我有在欧洲国家之间购买的MWatt的价格,以及很多天气值(Grib文件)。每5小时(2011-2015)的小时数。 价格/天 这是每天的一年。我有这个5年的每小时。 天气示例 3D散点图,用开尔文表示,一个小时。我每小时每个数据有1000个值,还有klevin,风,地势等200个数据。 我正在尝试预测兆瓦每小时的平均价格。 我的天气数据非常密集,每小时超过10000个值,因此相关性很高。这是一个简短的大数据问题。 我尝试了套索,脊线和SVR方法,将MWatt的平均价格作为结果,而将天气数据作为收入。我将70%作为训练数据,将30%作为测试。如果我的测试数据是非预测性的(在我的训练数据中的某处),则我的预测很好(R²= 0.89)。但是我想对我的数据进行预测。 因此,如果测试数据按时间顺序排在我的训练数据之后,则它什么也不能预测(R²= 0.05)。我认为这很正常,因为它是时间序列。并且存在很多自相关。 我以为我必须使用ARIMA这样的时间序列模型。我计算了方法的顺序(序列是固定的)并进行了测试。但这没用。我的意思是预测的r²为0.05。我对测试数据的预测完全不在我的测试数据上。我尝试将ARIMAX方法用作回归天气。说它不会添加任何信息。 ACF / PCF,测试/训练数据 所以我每天和每周做一次季节性裁员 天 第一周趋势 如果可以预见股价趋势,就可以拥有: 蓝色是我的预测,红色是真正的价值。 我将进行回归分析,将天气的滚动平均值作为收入,将股价趋势的趋势作为结果。但是到目前为止,我还没有找到任何关系。 但是,如果没有互动,我怎么知道什么都没有?也许只是我没有找到它。

1
当AIC值较低且大致相等时,我该怎么办?
克里斯·查特菲尔德(Chris Chatfield)在(1)中我喜欢阅读许多高质量的书籍和论文,并提出以下建议: 例如,应该在具有较低AIC值和近似相等AIC值的ARIMA时间序列模型之间进行选择,而不是在其上给出最小的AIC,而是在其上给出对最近一年数据的最佳预测。 这种建议的依据是什么?如果听起来不错,为什么Forecast :: auto.arima和其他预测例程不遵循它?尚未实施?它已经在这里讨论的是寻找那些刚好给最小的车型AIC可能不是一个好主意。为什么选择让n≥1n≥1n\ge1低ARIMA模型但大约相等于(内最小AIC的1点或2的值如)不太多的时间序列预测软件的默认? (1)Chatfield,C.(1991年)。避免统计上的陷阱。统计科学,6(3),240-252。可在线获取,URL:https : //projecteuclid.org/euclid.ss/1177011686。

1
R / mgcv:为什么te()和ti()张量积产生不同的曲面?
的mgcv软件包R具有两个功能,用于拟合张量积相互作用:te()和ti()。我了解两者之间的基本分工(拟合非线性交互与将这种交互分解为主要效果和交互)。我不明白的是为什么te(x1, x2)而ti(x1) + ti(x2) + ti(x1, x2)可能产生(略)不同的结果。 MWE(改编自?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f + rnorm(n)*0.2 par(mfrow = c(2,2)) # …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

1
(线性回归)预测的调整
全面披露:我不是统计学家,也不声称自己是统计学家。我是一个低级的IT管理员。请和我一起玩。:) 我负责收集和预测我们企业的磁盘存储使用情况。我们每月收集存储使用情况,并使用简单的滚动式十二个月线性回归进行预测(换句话说,进行预测时仅考虑前十二个月的数据)。我们将这些信息用于分配和资本支出计划,例如“基于此模型,如果要在y个月内存储以满足我们的需求,我们将需要购买x数量。” 所有这些都能很好地满足我们的需求。 周期性地,我们的数字出现了一次大的波动,这使预测不合时宜。例如,某人发现不再需要的500GB旧备份,并将其删除。对他们有利于回收空间!但是,我们的预测现在因一个月的大幅下降而偏离了。我们一直都接受这样的下降需要9到10个月的时间才能摆脱模型,但是如果我们进入资本支出计划的季节,那可能会花费很长时间。 我想知道是否有一种方法可以处理这些一次性变化,以使预测值不会受到太大影响(例如,线的斜率不会发生太大变化),但是将它们考虑在内(例如与特定时间点相关的y值的一次变化)。我们为解决这个问题而进行的首次尝试已产生了一些丑陋的结果(例如指数增长曲线)。如果重要的话,我们将在SQL Server中进行所有处理。

4
评估时间序列的可预测性
假设我有从05年1月到11年12月的每月超过20.000个时间序列。每个代表不同产品的全球销售数据。如果我只想关注少数几个“实际上很重要”的产品,而不是计算每个产品的预测,该怎么办? 我可以按年收入总额对这些产品进行排名,并使用经典的Pareto来精简列表。在我看来,尽管它们对底线的贡献不大,但某些产品是如此容易预测,以至于将它们拒之门外是不好的判断。在过去的10年中,每月售出价值50美元的产品听起来似乎不算什么,但它几乎不需要花太多力气就可以得出有关未来销售额的预测,我也可以这样做。 所以说我将产品分为四类:高收入/易于预测-低收入/易于预测-高收入/难以预测-低收入/难以预测。 我认为只留下那些属于第四组的时间序列是合理的。但是,我究竟该如何评估“可预测性”呢? 变异系数似乎是一个很好的起点(我也记得前一段时间看过有关它的文章)。但是,如果我的时间序列表现出季节性/水平变化/日历效应/强烈趋势怎么办? 我想我应该仅根据随机成分的可变性而不是“原始”数据之一进行评估。还是我错过了什么? 以前有没有人偶然发现过类似的问题?你们会怎么做? 一如既往,我们将不胜感激!

1
“先验稀疏”一词指的是什么(FBProphet论文)?
阅读“大规模预测”(FBProphet预测工具,请参阅https://peerj.com/preprints/3190.pdf)一文,我遇到了“先验稀疏”一词。作者解释说,他们正在使用这样的“稀疏先验”模型来建模与某些标量速率的速率偏差的向量,后者是逻辑增长模型中的模型参数。δδ\mathbf{\delta}ķķk 当他们指出,如果参数小,我是否正确理解“稀疏”是指携带接近零的元素的向量?我很困惑,因为我认为所有矢量元素都必须是回归的参数,但是像这样定义它们只会让参数和成为自由模型参数,不是吗?δĴ〜拉普拉斯(0 ,τ)δĴ〜拉普拉斯(0,τ)\delta_j \sim\text{Laplace}(0,\tau)ττ\tauķķkττ\tau 另外,是否使用拉普拉斯分布来生成先验共性?我不明白为什么它比例如正态分布更可取。


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年))?

1
时间序列预测的随机森林回归
我正在尝试利用RF回归对造纸厂的性能进行预测。 我每分钟都有输入数据(进纸木浆的速度和数量等)以及机器的性能(生产的纸张,机器消耗的功率)的数据,我希望做出10分钟的预测在性能变量上领先。 我有12个月的数据,因此将其分为11个月的培训时间和最后一个月的测试时间。 到目前为止,我已经创建了10个新功能,每个性能变量的滞后值在1-10分钟之内,并使用这些功能以及输入来进行预测。测试集的性能一直很好(系统是可以预测的),但是我担心我的方法中缺少某些东西。 例如,在本文中,作者陈述了他们测试随机森林模型的预测能力的方法: 通过迭代添加新一周的数据,基于更新后的数据训练新模型并预测下一周的爆发次数来进行模拟 这与利用时间序列中的“后来的”数据作为测试有何不同?我是否应该使用这种方法以及测试数据集来验证我的RF回归模型?此外,这种对森林随机回归的“自回归”方法是否对时间序列有效,如果我对未来10分钟的预测感兴趣,我是否甚至需要创建这么多滞后变量?

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.