问题标签 [fable-r]

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 投票
2 回答
756 浏览

r - 寓言可以协调分层时间序列,其中层次结构在不同节点处具有不同的深度?

我正在使用 fable 包来获取一组分层时间序列的预测。我想指定一个层次结构,它在所有节点上都没有相同的深度。

现实例子:

  • 时间序列 B1 和 B2 相加为时间序列 M1。
  • 时间序列 M1 和 M2 相加为时间序列 T,它位于层次结构的顶部。
  • 时间序列 M2 不是一组时间序列的总和;这是它自己的时间序列。

创建一个小的随机数据集,tsibble格式为:

在 3 个时间序列中的每一个上估计单独的 ARIMA 模型,聚合和预测:

我之所以担心结果可能是错误的,是因为我可以创建一个病态的例子,即使没有实际的聚合,对账给出的置信区间也更小:

病理例子:

  • 时间序列 B3 是 M2 的孩子,M2 是 T 的孩子。

我通过对前一个数据集进行子集来为此示例创建一个数据集:

再次估计单独的 ARIMA 模型、聚合和预测:

结果如下:

方差从原始 ARIMA 模型中的 0.63 减小到 0.21,即使没有实际聚合。当然,这是一个示例,根本不应该使用对帐,但是这里方差减小的事实让我担心在现实示例中对帐无法正常工作。

有没有办法在实际示例中指定模型以避免从 B3 聚合到 M2?(我尝试在 B 列中使用 NA 而不是级别“B3”,但这不起作用。)

0 投票
1 回答
381 浏览

r - 无法将 tsibble 转换为寓言

我目前没有解决此问题的方法,因此无论多么麻烦,只要我的代码再次运行,我都迫切希望解决此问题...

我想用以下方法将 tsibble 强制为寓言对象:

文档说这是可能的:

但是当我指定这个函数的输入参数时,我总是得到一个错误。

例子:

强制使用寓言会导致错误:

非常感谢您的帮助!

0 投票
1 回答
87 浏览

r - 使用适合不同组的模型对一组进行寓言预测结果

我正在尝试使用fable适合一组时间序列的模型来预测另一组的时间序列:

但是,当预测到“测试”集 - 对应于 ID 'B' 的记录时,调用会为- 测试集forecast返回一个空结果。'B'

但是对于train_tsbl,以下内容:

我似乎找不到任何指定预测新 ID 的选项。这里发生了什么?

0 投票
1 回答
1251 浏览

r - 如何在使用带有 model() 扩展的 fable 包时将外生变量添加到我的 ARIMA 模型估计中

我正在尝试估计 100 个不同系列的 ARIMA 模型。所以我采用了fabletools::model()方法和fable::ARIMA()函数来完成这项工作。但我无法在模型估计中使用我的外生变量。

我的系列有 3 个不同的列,第一个标识第一个出口的 ID 标签,然后是 Date.Time 标签,最后是销售。除了这些变量之外,我还有代表一天中的小时和一周中的虚拟变量。

虚拟变量

按照下面给出的代码,我将包含我的 endegounus 和 exegenous 变量的数据框转换为 tstibble。

使用此代码,我尝试为使用 ID 因子标识的多个网点预测相同日期时间间隔的值。但是,该代码返回以下错误。

销售额是我的内生目标变量,df12 包括代表小时和天的虚拟变量。一些商店不会在某些特定时间创造销售,因此它们代表 01:00 AM 的虚拟变量对于所有观察都可能为零。但是我不认为这会是一个问题,而 fable 使用逐步方法。我想,当代码看到带有 0 的变量时,它可以排除它们

我不确定是什么问题。我是否使用有问题的方式将 xreg 添加到模型中(在 ARIMA hep 页面中,它说 xreg= 就像以前的预测包一样)或者问题与我提到的第二个问题有关,包括所有观察的“0”。如果是第二个,则可能有一种解决方案可以排除所有具有恒定 0 值的变量。

如果你能帮助我,我会很高兴。

谢谢

0 投票
1 回答
394 浏览

r - 寓言中的预测功能是否提供一步预测?

如此处所述,在测试集中进行单步预测是一种避免随着预测范围增加而不可避免地增加方差的方法。该部分提到了使用已经训练的模型对测试集执行单步预测的方法,用于forecast包。是否有类似的方法可以使用较新的包对测试数据执行一步预测fable例如,这里new_data描述的参数可能会处理这个问题,但我不确定,因为两者的预测和下面是相同的:h = 24new_data = x_test

0 投票
0 回答
424 浏览

arima - 如何在 R 中实现带有 ARIMA 错误的回归的 Breusch-Godfrey 检验

我正在用fable包拟合 ARIMA 错误的回归,正如我之前的问题所提到的那样,Breusch-Godfrey 测试在那里不可用。

模型的回归部分有两对傅立叶项来解释年度季节性和几个外生回归量。残差使用季节性 ARIMA(2,0,0)(1,0,0)[7] 模型进行建模。我的目标是检查残差中的自相关。

我可以使用 Ljung-Box 测试,但根据线程和教科书来源,它在因变量滞后的情况下将无效。

而且我担心我会使用不同的包/库来丢失我的模型规范。另一种方法可能是 Arimaforecast包中使用并保留模型规范。然后bgtestlmtest包装中使用。但我无法弄清楚如何做到这一点。

根据这个 R论坛,ARIMA 模型的 Breusch-Godfrey 测试可以通过将拟合模型的残差简单回归拟合到常数上来完成,然后执行bgtest. 但它只涉及一个没有外生回归变量的简单 AR(1) 模型。

这是正确的方法吗?我担心对于 BG 测试,您必须对回归量和滞后结果执行辅助回归,直到p阶。在这种情况下如何bgtest知道X变量,因为它们没有存储在残差对象中 - 这应该是一个简单的向量。

0 投票
1 回答
96 浏览

r - R中的时间序列预测;绘制“事件”并在初始预测后生成具有指定日期范围的新预测图

我创建了一个函数,允许我使用fable包进行时间序列预测。该函数的想法是在特定日期/事件之后分析观察值与预测值。这是一个生成日期列的模拟数据框:-

这是我创建的功能。您指定数据,然后是事件的日期,然后是预测期(以天为单位),最后是图表的标题。

在一次运行中,我指定df事件的日期、我想要预测的天数(3 周),然后是标题:-

这将打印这个结果和情节: -

在此处输入图像描述

在此处输入图像描述

我承认我制作的模拟数据并不完全理想,但该函数在我的真实数据上运行良好。

这是我想要实现的目标。我希望这个输出从函数中出来,但此外,我想要一个额外的图表,它“放大”预测的时期,原因有两个:-

  1. 为了便于解释
  2. 我希望能够看到事件日期之前的N 天和事件日期之后的 N 天(N 代表预测期,即 21)。

因此,一个看起来像这样的附加图(以及原始的完整预测)可能在一个输出中,“多图”样式:-

在此处输入图像描述

另一件事是打印另一个输出,该输出显示测试集中的观察值与预测中使用的模型的预测值。

这些基本上是我想添加到我的函数中的两个额外的东西,但我不知道如何去做。非常感谢任何帮助:)。

0 投票
0 回答
54 浏览

r - 如何使用寓言(r)将预测加在一起?

我正在尝试将每个地区和每个季度的预测加在一起。我试图总结一个特定的变量,但这没有用。我也尝试过对区域进行分组,但我相信要让它起作用,你需要以某种方式聚合。我正在尝试将两个预测加在一起,同时还能够使用准确度()查看准确度的变化。到目前为止,我还没有真正找到一个好的方法来做到这一点。

这是预测表:

如果您需要更多信息,请告诉我。

0 投票
1 回答
161 浏览

forecasting - 如何使用 season() 函数在 Fable - R Package 中实现每小时和每周的季节性?

我必须为 2000 个不同的时间序列创建每小时预测。我的系列中每小时和每周的季节性很强。为了处理每小时的季节性,我使用了season("day")选项。但是,我想season("week")每周会创建 168 个假人,这将是计算问题的问题。

你知道使用 tsibble 或 fabletools 包创建工作日假人的快速方法吗?

0 投票
0 回答
44 浏览

r - 预测和寓言在同一数据集上返回不同的输出以在 R 中进行预测

我试图了解两个预测包之间的区别forecastfable因为同一本书的两个版本(第二版第三版似乎暗示这两个包是等效的。

通过观察这两个图表,与漏斗形生成的预测区间边界fabletools相比,生成的预测区间边界是平行的。forecast

我不确定我在设置时是否遗漏了一些参数forecastfable. 谢谢!