问题标签 [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.
r - 错误:无法对不存在的列进行子集化 - 从 R 中的寓言中选择
我正在 R 中构建多个预测,并尝试从预测输出中选择某些列。下面是这个寓言的样子:
当我尝试使用 dplyr 选择任何列时,出现以下错误:
下面的代码为我提供了 Month 和 .mean 的向量,因此我假设名称是正确的,但我无法理解它给出的错误。
r - fable::ARIMA 在以编程方式生成公式时找不到 xreg
我正在尝试以编程方式生成用于测试 ARIMA 模型中各种滞后回归量的公式,使用fable
. 本质上,我希望从 fpp3 进行滞后预测器分析,但公式是由 R 基于指定数量的 xreg 滞后生成的。我尝试按照https://stackoverflow.com/a/62708245/11071807中的说明进行操作,但出现错误:
由reprex 包于 2021-08-13 创建 (v2.0.0 )
我不确定为什么会收到错误消息,因为Income
在test_stretched
数据集中清晰可见。我唯一能想到的是,它与使用 创建的公式的环境有关as.formula()
,但我不知道如果model
过程正常工作,这只是forecast
引发的步骤错误。
r - 根据最低 RMSE 模型预测未来观测值
我在RStudio 社区提出了这个问题,但没有收到任何答案,所以我想我会在这里试一试。我的问题与 budugulo 在这里提出的问题有关选择具有最低 RMSE 的模型,但我想知道如何更进一步,使用对测试数据具有最佳预测能力的模型,并将其应用于整个原始分层数据集以获得未来的观察结果。
我了解如何使用一个单独的时间序列预测未来,但我正在尝试预测一个分层数据集,该数据集需要太多时间才能将最佳模型单独预测到所有原始时间序列上以预测未来的观察结果。有没有办法将最佳模型(使用最低 RMSE)拟合到分层数据集中的原始时间序列上,以预测未来 3 年(2020 年)的未来观测结果?我尝试使用 refit() 但无济于事。
希望下面的代码将有助于回答我的问题。
r - 使用带有寓言和咕噜声的 ETS 的动态趋势或季节性参数的问题
我有一个 tsibble,如下所示。
我想使用 tsibble 中保存的参数应用修改后的 ETS 函数。例如,RSSEAS 和 RSTREND 列中的任何内容都将用于估计 ETS 模型。
以下作品:
但是,当我尝试使用下面的函数来提取每个 SKU 的参数时(因为可能每个 SKU 的参数可能不同),我收到一条错误消息。
如果我调用ets.function(test.data)
R 返回一个寓言,但它是 NULL/NA,因为没有使用指定的参数估计模型。
调用map_dfr(test.data, ets.function)
给我以下错误:
这对我来说没有意义,因为如果我在控制台中运行season.param 或trend.param 的代码,我会得到适当的“A”或“N”,这正是趋势和季节性特价商品所包含的值ETS 功能。
基本上,我试图找出一种方法,使用为每个唯一键组合预先指定的参数将 ETS 映射到我的 tsibble 上。我对如何实现这一点的其他想法持开放态度(pmap_dfr 用于参数向量等)。
r - 预测时如何修复ets中的错误?
dput(Training[1:10, ])
希望我做对了,仍然令人难以置信的新鲜和令人生畏!使用以下软件包:
(tidyverse)
(fable)
(feasts)
(fpp3)
(knitr)
(rmarkdown)
Training
努力使用我的数据集生成每周打印机需求的预测
妈妈只是移动平均线
然后想要生成 4 周的预测
这与《预测:原理与实践》第5.8章基本相同
错误代码:Error in ets(object, lambda = lambda, biasadj = biasadj, allow.multiplicative.trend = allow.multiplicative.trend, : y should be a univariate time series
我该如何解决这个问题?我正在使用fable
我相信的包
r - max 没有非缺失参数;使用 mutate 返回 -inf 错误
我有如下 Shiny 应用程序代码所示的数据。该数据是具有许多键的数据帧的过滤部分。
我填补 tsibble 空白的方式,在 Y 之间的 RSEXCL 列中有 N。我想这样做,如果值为“Y”的列向量(RSEXCL)的索引的最大值大于或等于向量的给定值的索引,则向量的值在那个位置将为“Y”,如果不是,则为“N”。
例如,如果我尝试在 Shiny 中创建一个反应性对象,如下所示,我会收到以下警告。
这是给出错误/警告的示例闪亮代码。input$series 是一个 Key 列表,例如“My_Key”,用于过滤较大的 tsibble/data.frame,即 outlier.DT.file。编辑:该应用程序现在包含可能在较大数据集中看到的两种不同类型数据的示例。此外,ifelse()
现在调整的代码会发出警告,但它会按预期执行。
我也尝试过case_when()
如下使用,但仍然收到上面指示的警告,尽管代码确实按预期工作。
r - 使用 fable.prophet 时的超参数优化?
我想在使用来自 tidyverts 的令人敬畏的fable包(此处为 fable.prophet)时进行超参数优化
使用fable.prophet的示例,如https://github.com/mitchelloharawild/fable.prophet中所述。
这里的参数已经在示例中确定。但我想在尝试一系列值后自己得出参数。
就像说
因为这些参数对于我的数据集可能不一样。我想使用tidymodelstune()
进行超参数调整/优化,或者使用其他方法在达到最佳参数值之前有效地通过一系列参数值。
我能找到的最接近的是这里的讨论https://community.rstudio.com/t/hyperparameter-tuning-facebook-prophet-in-r/97395 或模型时间,但我正在寻找分层/分组/嵌套时间序列预测与协调因此我更喜欢只使用fable.prophet。
我可以通过单独检查数据中的每个组来手动解决这个问题,但是对于至少 30 个组(如果不是 10 个以上的数据子组),这必须每 6-12 个月重做一次。(国家、平台、产品等)
如果有人能指出任何已经存在的方法或解决这个问题的聪明方法,那就太好了。
谢谢
r - 用 fable 包中的新训练数据重新拟合 arima 模型
我有一个函数,它采用一个拟合模型,然后将该模型重新调整为新的训练数据(这是为了提前交叉验证)。对于lm
模型,它的工作原理如下:
有没有办法对装有该fable
软件包的 arima 模型做同样的事情?我正在创建这样的模型
但是我想不出一种方法来获取my_arima
我已经拟合的模型并通过它new_training_data
,无论是使用update
还是通过提取公式并重新拟合为新模型。请注意,尽管我在上面的表示中包含了模型公式,但我的函数采用的是拟合模型而不是公式。因此,仅使用新模型拟合arima_formula
不是一种选择。
谢谢你。
r - 如何使用 try() 和 map() 函数来解释可能不在 args 列表中的值
我有一个 data.frames/tsibbles 列表,如下所示。这已根据 RSMODE 列中的值从更大的 data.frame 中拆分出来。
tsibble/data.frame 包含需求历史和参数信息,这些参数将用于估计指数平滑和其他时间序列模型。对于不同的 RSLITM,这些参数可能不同。
我有几个函数将用于列表中的每个 data.frame,因为列表是在 RSMODE 列上拆分较大的 data.frame 时创建的。请注意,我有一个 ARIMA 函数,尽管在这个测试 data.frame 中,我没有指定任何 RSLITM 用于估计用于预测目的的 ARIMA 模型。
我正在使用下面的代码来估计列表中每个 data.frame/tsibble 中每个 RSLITM 的适当模型。但是,由于没有指定要使用 ARIMA 模型预测的 RSLITM,因此在这种情况下没有 ARIMA 列表元素会出现问题。(RSMODE 列中没有带有“ARIMA”值的 RLSITM。)因此,它会引发错误。
我相信有一些方法可以使用try()
或类似的功能来处理这个问题,但我不确定如何在map()
.
这是我得到的错误。