标签: forecasting

auto.arima()等效于python

我试图使用ARMA ARIMA模型预测每周销售额.我找不到调整顺序(p,d,q)的函数statsmodels.目前R具有forecast::auto.arima()调整(p,d,q)参数的功能.

如何为我的模型选择正确的订单?为此目的,python中是否有可用的库?

python r time-series forecasting statsmodels

62
推荐指数
2
解决办法
5万
查看次数

使用Holt-Winters在Python中进行预测

我一直在尝试使用Holt-Winters算法的这种实现来进行Python中的时间序列预测,但是遇到了障碍......基本上,对于某些(正)输入系列,它有时会预测负数,这应该清楚不是这样的.即使预测不是负面的,它们有时也是非常不准确的 - 比它们应该的数量级更高/更低.为算法提供更多的数据周期似乎没有帮助,实际上往往会使预测变得更糟.

我正在使用的数据具有以下特征,可能是问题:

  • 非常频繁地采样(每15分钟一个数据点,而不是示例使用的月度数据) - 但从我所读到的,Holt-Winters算法应该没有问题.也许这表明实施存在问题?

  • 有多个周期 - 每日峰值(即每96个数据点)以及周末数据的每周周期显着低于工作日数据 - 例如工作日可以在4000左右达到峰值但周末达到峰值1000 - 但即使我只给出它是工作日的数据,我遇到了负数问题.

对于Holt-Winters算法的实现或使用,我是否还缺少一些东西?我不是统计学家,所以我使用上面链接中指出的alpha,beta和gamma的'默认'值 - 这可能是问题,是否有更好的方法来计算这些值?

或者......有没有比Holt-Winters更好的算法?最后,我只想根据历史数据创建合理的预测.我尝试过单指数和双指数平滑,但(据我所知)并不支持数据的周期性.

任何帮助/输入将不胜感激!

python statistics forecasting

24
推荐指数
1
解决办法
1万
查看次数

是否可以使用 FB Prophet 进行多变量多步预测?

我正在研究一个多变量(100 多个变量)多步(t1 到 t30)预测问题,其中时间序列频率为每 1 分钟一次。该问题需要预测 100 多个变量之一作为目标。我很想知道是否可以使用 FB Prophet 的 Python API 来做到这一点。我能够仅使用目标变量和日期时间变量以单变量方式完成此操作。任何帮助和指导表示赞赏。请让我知道这个问题是否需要进一步的输入或澄清。

python machine-learning time-series forecasting facebook-prophet

24
推荐指数
2
解决办法
2万
查看次数

时间序列预测,处理已知的大订单

我有很多已知异常值的数据集(大订单)

data <- matrix(c("08Q1","08Q2","08Q3","08Q4","09Q1","09Q2","09Q3","09Q4","10Q1","10Q2","10Q3","10Q4","11Q1","11Q2","11Q3","11Q4","12Q1","12Q2","12Q3","12Q4","13Q1","13Q2","13Q3","13Q4","14Q1","14Q2","14Q3","14Q4","15Q1", 155782698, 159463653.4, 172741125.6, 204547180, 126049319.8, 138648461.5, 135678842.1, 242568446.1, 177019289.3, 200397120.6, 182516217.1, 306143365.6, 222890269.2, 239062450.2, 229124263.2, 370575384.7, 257757410.5, 256125841.6, 231879306.6, 419580274, 268211059, 276378232.1, 261739468.7, 429127062.8, 254776725.6, 329429882.8, 264012891.6, 496745973.9, 284484362.55),ncol=2,byrow=FALSE)
Run Code Online (Sandbox Code Playgroud)

这个特定系列的前11个异常值是:

outliers <- matrix(c("14Q4","14Q2","12Q1","13Q1","14Q2","11Q1","11Q4","14Q2","13Q4","14Q4","13Q1",20193525.68, 18319234.7, 12896323.62, 12718744.01, 12353002.09, 11936190.13, 11356476.28, 11351192.31, 10101527.85, 9723641.25, 9643214.018),ncol=2,byrow=FALSE)
Run Code Online (Sandbox Code Playgroud)

有哪些方法可以预测考虑这些异常值的时间序列?

我已经尝试更换下一个最大的异常值(因此,运行数据集10次,用下一个最大值替换异常值,直到第10个数据集替换掉所有异常值).我也试过简单地删除异常值(因此每次再次运行数据集10次删除异常值,直到在第10个数据集中删除所有10个异常值)

我只想指出,删除这些大订单并不会完全删除数据点,因为该季度还会发生其他交易

我的代码通过多个预测模型测试数据(ARIMA加权样本,ARIMA加权样本,ARIMA加权,ARIMA,加性Holt-winters加权和Multiplcative Holt-winters加权)所以它需要是可以的适应这些多种模式.

以下是我使用的几个数据集,但我没有这些系列的异常值

data <- matrix(c("08Q1","08Q2","08Q3","08Q4","09Q1","09Q2","09Q3","09Q4","10Q1","10Q2","10Q3","10Q4","11Q1","11Q2","11Q3","11Q4","12Q1","12Q2","12Q3","12Q4","13Q1","13Q2","13Q3","13Q4","14Q1","14Q2","14Q3", 26393.99306, 13820.5037, 23115.82432,    25894.41036,    14926.12574,    15855.8857, 21565.19002,    49373.89675,    27629.10141,    43248.9778, 34231.73851,    83379.26027,    54883.33752,    62863.47728,    47215.92508,    107819.9903,    53239.10602,    71853.5,    59912.7624, 168416.2995,    64565.6211, 94698.38748,    80229.9716, 169205.0023, …
Run Code Online (Sandbox Code Playgroud)

r time-series outliers forecasting

22
推荐指数
1
解决办法
1322
查看次数

用于python中的时间序列分析的包

我正在研究python中的时间序列.我觉得有用和有前途的图书馆是

  • 大熊猫;
  • statsmodel(用于ARIMA);
  • 大熊猫提供简单的指数平滑.

也用于可视化:matplotlib

有没有人知道指数平滑的库?

python time-series forecasting pandas statsmodels

17
推荐指数
3
解决办法
3万
查看次数

解释ARIMA模型的预测

我试图向自己解释将ARIMA模型应用于时间序列数据集的预测结果.数据来自M1-Competition,系列是MNB65.我试图将数据拟合到ARIMA(1,0,0)模型并获得预测.我正在使用R.以下是一些输出片段:

> arima(x, order = c(1,0,0))
Series: x 
ARIMA(1,0,0) with non-zero mean 
Call: arima(x = x, order = c(1, 0, 0)) 
Coefficients:
         ar1  intercept
      0.9421  12260.298
s.e.  0.0474    202.717

> predict(arima(x, order = c(1,0,0)), n.ahead=12)
$pred
Time Series:
Start = 53 
End = 64 
Frequency = 1 
[1] 11757.39 11786.50 11813.92 11839.75 11864.09 11887.02 11908.62 11928.97 11948.15 11966.21 11983.23 11999.27
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

(1)我如何解释尽管数据集显示出明显的下降趋势,但该模型的预测趋势向上.这也适用于ARIMA(2,0,0),这是使用auto.arima(预测包)和ARIMA(1,0,1)模型的数据的最佳ARIMA.

(2)ARIMA(1,0,0)模型的截距值为12260.298.截距不应满足等式:C = mean*(1 - sum(AR coeffs)),在这种情况下,该值应为715.52.我必须遗漏一些基本的东西.

(3)这显然是一个具有非平稳均值的系列.为什么AR(2)模型仍被auto.arima选为最佳模型?可以有一个直观的解释吗?

谢谢.

r time-series forecasting

13
推荐指数
1
解决办法
1万
查看次数

使用statsmodels进行ARMA样本外预测

我正在使用statsmodels来适应ARMA模型.

import statsmodels.api as sm
arma    = sm.tsa.ARMA(data, order =(4,4));
results = arma.fit( full_output=False, disp=0);
Run Code Online (Sandbox Code Playgroud)

data一维数组在哪里.我知道要获得样本内预测:

pred = results.predict();
Run Code Online (Sandbox Code Playgroud)

现在,给定第二个数据集data2,我如何使用先前校准的模型生成一系列基于此观察结果的预测(预测)?

python forecasting statsmodels

13
推荐指数
1
解决办法
1万
查看次数

尝试在R中使用stl和分解函数时出错

我做了一个简单的时间序列,我给sin函数添加了一点噪音,并尝试使用R中的"stl"和"decompose"函数对其进行分解,而我的序列肯定有超过2个周期并且是周期性的,R两个函数给我以下错误:

x
  [1]  1.4537365796  2.7185844368  2.8394728999  3.8926989923  4.3405508086  5.1959080871
  [7]  5.6602505790  5.4829985648  5.6357660330  4.6084976233  4.6617322922  4.0286486832
 [13]  3.3641752333  1.7408063182  0.8815147612  0.2895139342 -0.5402768515 -1.5612641107
 [19] -2.1584502547 -2.9878043526 -3.5545638149 -4.0530074199 -4.0748538612 -4.7581704662
 [25] -4.6555349052 -4.0726206240 -3.1646413472 -2.6934453823 -2.2364605277 -1.2643569882
 [31] -0.1202011946  1.1136371449  2.2504199271  3.0313528996  3.5384449109  4.5176211013
 [37]  5.4013172839  5.4252837451  5.4768196692  5.8979709077  5.6698285659  4.5133489450
 [43]  4.2702602998  3.5180837069  2.2652913344  1.1975595698  0.5412697849 -0.5966162032
 [49] -1.0827728340 -1.8488242277 -3.4118061838 -3.9009752140 -3.9102671954 -4.3486102172
 [55] -4.7481017993 -4.0097598695 -3.9078554267 -3.8070416888 -2.5968567322 -2.2567568949
 [61] -1.1423907008  0.0002492447  0.4338279080  1.2431986797  2.3216397323  3.3235925116
 [67] …
Run Code Online (Sandbox Code Playgroud)

r time-series forecasting

13
推荐指数
1
解决办法
3万
查看次数

使用auto.arima和xreg =解释变量进行R时间序列预测

我有很多时间序列(零售数据),我想对所有这些进行预测.

例如,让我们来看看其中一个:

   > dput(x)
 c(1774, 1706, 1288, 1276, 2350, 1821, 1712, 1654, 1680, 1451, 
 1275, 2140, 1747, 1749, 1770, 1797, 1485, 1299, 2330, 1822, 1627, 
 1847, 1797, 1452, 1328, 2363, 1998, 1864, 2088, 2084, 594, 884, 
 1968, 1858, 1640, 1823, 1938, 1490, 1312, 2312, 1937, 1617, 1643, 
 1468, 1381, 1276, 2228, 1756, 1465, 1716, 1601, 1340, 1192, 2231, 
 1768, 1623, 1444, 1575, 1375, 1267, 2475, 1630, 1505, 1810, 1601, 
 1123, 1324, 2245, 1844, 1613, 1710, 1546, 1290, 1366, 2427, 1783, …
Run Code Online (Sandbox Code Playgroud)

r time-series forecasting

13
推荐指数
1
解决办法
2万
查看次数

天气预报算法种类繁多

目前,MetOffice在英国的预测存在很大的风暴.他们预测一个温和,潮湿的冬天,而我们在北爱尔兰有最冷的温度和地面上的积雪,通常在十二月罕见.

这是我喜欢玩的东西,而不是我声称我可以击败它们,但是想知道目前人们正在使用哪些算法?它们基于什么数据集?

可能性可能包括神经网络建模输入,其中适应性是预测的准确性,复杂的数学模型,甚至是与我昨天所预测的"与昨天相同"的预测(虽然没有看到证据),它对于单日预测更可靠(虽然在那之后明显下降).

理想情况下,喜欢听天气中心的一些开发人员或者能够访问超级计算机的人,听到方法很有意思......

algorithm weather weather-api forecasting

11
推荐指数
1
解决办法
1万
查看次数