问题标签 [holtwinters]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
165 浏览

python - R predict.holt 与 Python statsmodels.tsa.holtwinters

我正在尝试在 python 中使用 HoltWinters 指数平滑,但我得到的结果与我在 R 中使用预测 holt 时得到的结果不同。

在 R 中:

在蟒蛇中:

谁能告诉我为什么我在 R 与 python 中得到如此不同的结果?

0 投票
1 回答
414 浏览

r - 如何将季节性指数平滑预测方法应用于 R 中的每小时数据

我正在尝试使用指数平滑法预测 2016 年的次日每小时电价。我使用的数据集包含 2014-01-01 00:00 到 2016-12-31 23:00 期间的每小时价格数据。我的目标是在Beigaitė & Krilavičius (2018)中重现结果

由于电价数据表现出多个季节性(每日、每周和每年),我为 2014-01-01 至 2015-12-31 期间定义了一个 msts 对象

msts.elspot.prices.2014_2015 <- msts(df.elspot.prices.2014_2015$Price, seasonal.periods = c(24, 168, 8760), ts.frequency = 8760, start = 2014)

hw()我想使用这个 msts 对象使用包中的函数来预测第二天 (2016-01-01) 的每小时电价forecast,并将点预测存储在包含 2016 年实际每小时电价的数据框中。

df.elspot.prices.2016$pred.hw <- hw(msts.elspot.prices.2014_2015, h = 24)$mean

hw()但是,由于收到以下错误消息,我无法使用该功能:

上网查了一下,好像ets()函数只能接受参数frequency为 max 24。当我处理每小时数据时,这远低于我的数据频率。

有没有办法使用该功能实现我想要的结果hw()?是否有任何其他软件包/功能可以帮助我实现我想要的结果?

我感谢您的帮助!

0 投票
1 回答
443 浏览

r - 如何通过采样 beta 循环 Holt 的双指数平滑?

我想预测数百条记录,其中包含一些不同的 alpha 和 beta 循环。我的目标是在 RStudio 中通过 2 个 beta 样本(0.1 和 0.9)循环 holt 结果。这是代码:

但我在 beta=0.9 中遇到错误,这是通知:

[1] "Model: ETS(A,A,N)" Error in ets(x, "AAN", alpha = alpha, beta = beta, phi = phi, damped = damped, : No model able to be fitted

我发现问题出在数据集上,如果我放置 8 条或更少的记录,它可以预测 beta=0.1、0.9 以及各种 alpha 和 beta 样本。但如果它有超过 8 条记录,它只能预测 beta=0.1 和更低(0.1、0.01、0.001、0.0001 仅)但如果 beta 高于 0.1 则可能是错误的

你能帮我解决这个问题吗?提前致谢

0 投票
1 回答
101 浏览

python - 在 Python 中使用 Map-Reduce 实现 ARIMA 或 Holt Winter

我正在尝试在 Hadoop 基础架构上使用 Python 中的 Map-Reduce 部署时间序列模型,而不使用 StatsModel 包。但是由于我是 Map-Reduce 编程的新手,所以我无法弄清楚如何实现一个。我做了一些关于滚动窗口方法的阅读。但仍然无法了解如何实现它。

我的数据集看起来像这样 -

在此处输入图像描述

0 投票
1 回答
42 浏览

r - 在 R 中恢复 HoltWinters 预测的固定数据

我使用 diff(log(ts.dat)) 将非平稳时间序列转换为平稳数据集,然后使用基于该数据集的 HoltWinters 模型进行预测。我现在需要将预测恢复为非固定格式,以便在上下文中读取预测数据。

下面是我的代码

我是预测模型的新手,所以非常感谢任何帮助。

编辑:tsdat =

0 投票
1 回答
227 浏览

python - Statsmodels ETSModel get_prediction 遇到错误

我正在尝试通过 StatsModels ETSModel 从 Holt Winters 时间序列模型中获取预测区间。有人可以帮我弄清楚出了什么问题吗?

我收到以下错误:

这是输入:

0 投票
1 回答
126 浏览

r - R中多个时间序列的霍尔特预测

我正在尝试对多个时间序列进行 Holt 的预测,并将它们与我的原始 data.frame 结合起来。考虑以下data.frame,其中我有两个人口组:

然后我正在对两个时间序列进行 Holt 预测:

然后我保存结果并与我的原始 data.frame 结合:

这在我只有两个时间序列时有效。但是,如果我有 100 个需要预测的时间序列,那么这不是一种非常有效的方法。任何人都可以帮助提高编码器的效率,例如,如果我在我的 data.frame 中包含一个额外的人口组,那么我在代码中没有任何更改?

0 投票
1 回答
231 浏览

r - 如何用 R 解决 Holtwinters 预测模型中的错误?

我有简单的每月数据集,只需尝试以下代码:

数据集如下所示:

它给出了以下错误:

0 投票
1 回答
2833 浏览

python - statsmodel/指数平滑是否正常工作?

我正在使用statsmodels指数平滑法进行时间序列分析。我正在尝试重现结果

https://www.statsmodels.org/devel/examples/notebooks/generated/exponential_smoothing.html

具有特定的dataframe(与示例格式相同,但只有一个结果)。以下是代码行:

但是,当我运行它时,我得到了错误

但是当我检查 in 的参数时ExponentialSmoothingstatsmodelinitialization_method其中之一,所以我不知道那里发生了什么。

继续前进,我initialization_method从代码中的参数中删除ExponentialSmoothing,然后在下面的行中出现另一个错误

再次,我去检查是否simulate在最新版本中不被弃用,statsmodels不,它仍然是一个属性。

我升级了statsmodels,我升级了pip,我仍然得到同样的错误。

那里发生了什么?

提前感谢您的帮助!

0 投票
2 回答
75 浏览

r - 如何创建按具有不均匀和缺失数据的子集分组的滚动预测?

我有一个由定向国家 dyad-year 组织的数据集(160 万行,4 列感兴趣)。每个非交换二元组(year1-stateA-stateB 并不总是等于 year1-stateB-stateA)有一个输出值“var1”。

数据的简化示例

我想做的是将每组国家对元分解为时间序列,并使用过去 5 年的数据使用 holt 模型创建下一年的预测预测。

预期结果:我希望添加一个新变量,其中包含基于前几年的 yearX+1 的预测值到 yearX 的行中。

并发症:并非每个国家对元组每年都存在,而且在某些年份,尽管数据集中存在国家对元组,但没有数据。

到目前为止我所做的:

首先,请原谅我最近才开始在 R 中使用时间序列。

首先,我使用 dplr 按年份组织数据(因此它将按适当的时间序列顺序排列),然后按 stateA、stateB 分组

我之前做的是一个 5 年的滚动平均值,这不符合我的分析需求,所以它看起来像这样:

这里的问题是我需要为要传递的每一行创建一个时间序列对象holt()以输出预测值 (fvar)。

我希望我以一种可以理解的方式讨论了这个问题。非常感谢您的帮助,我准备澄清和回答任何可能有助于您帮助我的问题。

PS 效率不是必需的,只有结果。

编辑:我认为我之前并不清楚,但我的主要目标是为每一行而不是整个子集生成一个预测对象。在我的国家 1 和国家 2 的示例数据中:将基于 1994 年的时间序列预测 1994 年;根据 1994-1995 年对 1995 年进行预测;根据 1994-1996 年对 1996 年的预测。然后对 (138, 87) 也是如此,每一行都有自己的预测。