在 R 中将不同的预测方法传递给分层时间序列预测?

2024-01-09

我有一个分层时间序列,其底层序列都表现出间歇性需求。使用 Hyndman 的 HTS 包在层次结构内实现最佳组合似乎是有利的。使用 Kourentzes 的 MAPA 包进行间歇性需求的多重聚合预测似乎也是有利的。本质上,我想做类似的事情:

forecast(my_hts, method='comb', fmethod='MAPA')

然而,我不清楚是否/如何将两者结合起来,因为forecast.gts()只接受fmethod=c("ets", "arima", "rw").

有没有一种巧妙的方法可以将不同的预测方法传递给forecast.gts()无需撕掉代码?

举例说明我的意思:

library(hts)
library(MAPA)
set.seed(1)

#note intermittent demand of bottom level time series
x <- ts(rpois(365, lambda=0.05), frequency=365, start=2014)
y <- ts(rpois(365, lambda=0.07), frequency=365, start=2014)

#it's easy to make a MAPA forecast for the top-level time series
#but this isn't an optimal hierarchical forecast
mapasimple(x+y)

#it's also easy to make this a HTS and make an optimal hierarchical forecast
#but now I cannot use MAPA
z <- hts(data.frame(x,y)))
z_arima <- forecast(z, fmethod="arima")
z_rw <- forecast(z, fmethod="rw")
z_ets <- forecast(z, fmethod="ets")

#z_MAPA <- ?

我发帖是因为仔细查看了 hts 文档(在此处插入当之无愧的 RTFM)后,我认为我找到了一种使用combinef()hts 中的函数,可用于优化组合外部预测forecast.gts()环境。在接受答案之前,我会将其保留一段时间,以便其他人可以告诉我我是否错了。

fh <- 8

library(hts)
library(MAPA)
set.seed(1)

x <- ts(rpois(365, lambda=0.05), frequency=365, start=2014)
y <- ts(rpois(365, lambda=0.07), frequency=365, start=2014)

my_hts <- hts(data.frame(x,y))

ally <- aggts(my_hts)

allf <- matrix(NA, nrow = fh, ncol = ncol(ally))

for(i in 1:ncol(ally)){
    allf[,i] <- mapafor(ally[,i], 
                        mapaest(ally[,i], outplot=0), 
                        fh = fh, 
                        outplot=0)$outfor
}

allf <- ts(allf)

y.f <- combinef(allf, my_hts$nodes, weights=NULL, keep="bottom")

#here's what the non-reconciled, bottom-level MAPA forecasts look like
print(allf[1,1:2])

 Series 1   Series 2
1 0.1343304 0.06032574

#here's what the reconciled MAPA bottom-level forecasts look like
#notice that they're different
print(y.f[1,])

[1] 0.06030926 0.07402938
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中将不同的预测方法传递给分层时间序列预测? 的相关文章

  • R:中断 for 循环

    你能确认下一个break是否取消了内部for循环吗 for out in 1 n old id velho lt old table df id out for in in 1 n id novo lt new table df ID in
  • 收集四列,其中两个键中包含值

    已经提出了类似的问题 但它们都涉及在一个关键列中收集多个列 我需要两个键中的多个列 这是我的数据框 ID measure A 1 measure A 2 measure B 1 measure B 2 1 8 25 23 5 4 5 2 8
  • 如何反转 Python statsmodels ARIMA 预测中的差异?

    我正在尝试使用 Python 和 Statsmodels 来理解 ARIMA 预测 具体来说 为了使 ARIMA 算法发挥作用 需要通过差分 或类似方法 使数据平稳 问题是 在进行残差预测后 如何反转差异以返回到包含差异化趋势和季节性的预测
  • R 带有列和行的分面 qqplots

    我需要使用按行和列的构面创建 qqplot 我了解如何用列和行绘制分面图 但我不确定如何设置我的数据 最终 我想按列和行对数据集进行分组 然后按升序对 建模 结果和 观察到 结果进行排序 同时添加带有 行 组的列和带有 列 组的列 我一直在
  • 关于子组的新列和另一列中的百分比范围

    我有一个如下所示的示例 df df test lt data frame Group Name c Group1 Group2 Group1 Group2 Group2 Group2 Group1 Sub group name c A A
  • 如何更改 r 中的树状图标签

    我在 R 中有一个树形图 它基于使用 hclust 的分层聚类 我正在对不同颜色的标签进行着色 但是当我尝试使用以下命令更改树图的标签 集群所基于的数据帧的行 时dendrogram dendrogram gt set labels dat
  • 从受密码保护的站点读取信息

    我一直在 R 教程中使用 readLines 从网站上抓取信息 我现在希望从我自己的网站提取数据 特别是 awstats 数据 但是该域受密码保护 有没有一种方法可以通过用户名和密码传递我需要的特定 awstats 数据的 url url
  • ggsubplot 是否适用于 R 3.2.1+?

    CRAN 提供的 ggsubplot 版本与 R 的最新版本 例如 3 1 1 不兼容 运行 ggsubplot 示例会返回以下错误 Error in layout base data vars drop drop At least one
  • 更新两组单选按钮 - 闪亮

    我问了这个问题 反应式更新两组单选按钮 闪亮 https stackoverflow com questions 35040579 update two sets of radiobuttons reactively shiny 昨天 但也
  • R - 通过合并和超过 2 个后缀进行减少(或者:如何合并多个数据帧并跟踪列)

    我正在尝试基于 2 列合并 4 个数据帧 但要跟踪列源自哪个数据帧 我在跟踪列时遇到问题 参见 dput dfs 帖子末尾 df example df1 Name Color Freq banana yellow 3 apple red 1
  • 在防风草模型上使用 VIP 包计算重要性度量

    我正在尝试使用 vi firm 在防风草中制作的逻辑回归模型上计算特征重要性 对于正则表达式 我将使用 iris 数据集并尝试预测观察结果是否为 setosa iris1 lt iris gt mutate class case when
  • 行方向变异的有效方法

    我有两个数据框 dfUsers and purchases使用以下代码生成 set seed 1 library data table dfUsers lt data table user letters 1 5 startDate sam
  • XLConnect 无法确定 JAVA_HOME 错误

    感谢您的帮助 我正在尝试运行 XLconnect 但收到此错误消息 gt library XLConnect lib loc C Users 1144143929 Documents R win library 2 15 Error onL
  • 使用神经网络包进行多项分类

    这个问题应该很简单 但文档没有帮助 我正在使用 R 我必须使用neuralnet多项式分类问题的包 所有示例均针对二项式或线性输出 我可以使用二项式输出进行一些一对一的实现 但我相信我应该能够通过使用 3 个单元作为输出层来做到这一点 其中
  • R,igraph,是否可以用图案填充顶点

    使用 R 和 igraph 绘制图形 我使用颜色来标记顶点类型 请参阅下面的代码 是否可以用图案而不是颜色填充顶点 以便在以彩色和黑白查看时可以区分节点类型 我需要 4 种独特的颜色 图案 colorbrewer 中唯一适合的调色板是这个
  • 在ggplot2中,箱线图线的末尾代表什么?

    我找不到箱线图线条端点代表什么的描述 For example here are point values above and below where the lines end 我意识到盒子的顶部和底部是第 25 个和第 75 个百分位数
  • 如何在R中创建for循环? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 R 编程中启动 for 循环 https stackoverflow com questions 4162363 how to start a for loop in r programmin
  • 如何创建 highcharter 事件函数以在 Shiny R 中创建“下拉函数”

    我正在建造一个shiny应用程序 我想要完成的事情之一是创建一个下拉菜单 我想将劳动力变量绘制为不同级别的年份变量的函数 请参阅下面的示例数据框 year level 2 level 3 labour 1 2013 10 101 1 2 2
  • R 获取子字符串和正则表达式?

    我有一组文件名字符串 我想提取 符号之后但文件扩展名之前的所有字符 例如 文件名之一是 HelloWorld you txt 我想返回字符串you 这是我的代码 hashPos grep name fixed TRUE dotPos len
  • ggplot:类似于scale_color_steps()的有序因子的色标

    With scale color steps 我们可以通过设置low和high争论 一个例子 df lt data frame x rnorm 99 y rnorm 99 col rnorm 99 ggplot df aes x y col

随机推荐

  • 关于 (POSIX) 信号主题的最佳参考文献是什么?

    信号似乎是概念上应该简单且易于解释的领域之一 但我从未遇到过既全面 清晰又最新的来源 在某种程度上 这似乎是由于历史遗留问题 规则的大量例外 不同的编程标准 混乱的线程 实时添加等 关于 unix linux posix 信号 您写得最好
  • 如何在 Asp.net MVC2 中通过 Ajax 调用处理 UnauthorizedRequest

    Brief 我的框架中有一个子类 AuthorizeAttribute 我在其中进行自定义授权 我正在从普通的 asp net mvc 视图渲染切换到通过 jQuery 的 Ajax 渲染 因此 应用程序中的每个链接都会执行 ajax 调用
  • Firefox 中的内联 SVG

    我对这个有点难住了 我使用 Protovis 一个 JS 库 渲染 SVG 可视化 它在 Chrome 和 Firefox 中运行得非常好 我将渲染的 SVG 保存在我的服务器上 并尝试使用 PHP 函数在 图库 视图中重新渲染它 但这在
  • Python Gtk 3.0:如何在 Notebook 中获取焦点

    我正在尝试将焦点设置为Entry输入字段 如果我把它放在一个Box 我可以通过设置焦点grab focus方法 但如果Entry是在一个里面Notebook 它没有聚焦 示例代码 import gi gi require version G
  • querySelectorAll 无法识别 var

    我正在使用 casperjs 进行一些网络抓取 但遇到了一个奇怪的问题 我希望能够从字符串构造 CSS 路径并使用 querySelectorAll 获取数组 如下所示 var tier ou var index div list gt d
  • sed:替换行的一部分

    如何用 sed 替换一行的一部分 线路 DBSERVERNAME xxx 应替换为 DBSERVERNAME yyy 值 xxx 可能会有所不同 并且 dbservername 和该值之间有两个选项卡 该名称 值对是配置文件中的众多名称 值
  • github PR 显示所有过去的提交

    我们最近改变了工作流程 我们在 github 上的 新 存储库有 2 个分支 master and develop master不受直接推送保护 仅合并 PR develop是所有乐趣发生的地方 功能分支被合并回develop git me
  • 在 Angular 2 中使用第三方库 (parse.com)

    我正在学习 Angular 2 并且已经遵循 Egghead 的教程 但我对有关 Angular 的一切都很陌生 现在我想做一些更高级的事情并开始将 Parse com 与 A ngular 2 结合使用 通常我会通过以下方式将 parse
  • OPC 节点路径中的“ns=2;s=”有何意义?

    我注意到所有 OPC 标签 ID 的前缀都是ns 2 s 可能的 NodeId 值的一些示例是 ns 2 s AcquisitionTimeRemaining ns 2 s Status ns 2 s Time 我想知道这个前缀的意义是什么
  • 在 Flutter 中创建自定义小部件

    import package flutter material dart import package font awesome flutter font awesome flutter dart int weight 60 class R
  • 获取城市名称不以元音开头或不以元音结尾

    从 STATION 查询不以元音开头或不以元音结尾的 CITY 名称列表 您的结果不能包含重复项 输入格式 STATION表描述如下 我写了下面的查询 但它对我不起作用 有什么建议吗 select distinct city from st
  • GitHub - 查找与提交关联的拉取请求

    我正在尝试查找过去的拉取请求 以查看对特定问题做出了哪些评论 操作 我知道该文件和更改 因此我可以通过查看指责视图来访问引入该文件的提交 但是 我找不到一种方法来查看第一次将该提交推送到分支的拉取请求 有没有办法做到这一点 或者我是否必须沿
  • ./*/ 是可移植的吗?

    我经常使用 在 for 循环中 for d in do do something with dirs done 匹配当前工作目录中的所有非隐藏目录 但我不确定这是否是一种可移植的方法 我的系统上安装了 bash dash 和 ksh 并且它
  • MySQL 返回其中列包含集合中的任何但仅包含关键字的所有行

    有没有一种方法可以选择其中一列仅包含但任意数量的预定义值的行 我一直在使用这个 但它返回我的列至少包含一个值的任何行 我知道这正是它应该做的 但我正在寻找一种方法来仅选择关键字列中仅包含我的关键字的行 SELECT FROM product
  • 如何以角度拖动和重新排序内容

    我有5个不同的内容 我想将其拖动并重新排序在同一行中 我如何在角度 2 4 5 或 6 中执行此操作 如果有人知道 请帮助我执行此操作 堆栈闪电战 https stackblitz com edit angular cc9ztn file
  • 如何在C++中随机分配给向量?

    我是 C 新手 并且不断被告知要使用std vector代替new 我正在尝试实现此功能 其中我知道向量的大小并希望随机 而不是顺序 分配给它 然而 当运行这个时 我的程序终止且没有错误输出 所以我很困惑 vector
  • OpenCV DNN,从tensorflow导入.pb文件断言失败错误:函数“populateNet”中的scaleMat.type() == CV_32FC1

    我试图导入一个冻结的 并使用tensorflow python tools optimize for inference优化 pb optimized pb 文件使用 cv2 dnn readNetFromTensorflow optimi
  • 匿名聚合中不允许使用构造函数,结构中的字符串

    所以我在尝试创建和使用这个结构时遇到了错误 使用字符而不是字符串的结构有效 但我发现我需要能够存储许多字母 使用下面的这个小代码示例后 我收到此错误 错误 成员 std cxx11 string GraphNode c1 在匿名聚合字符串
  • BlackBerry - Unicode 文本显示

    我想在 BlackBerry 设备上的 j2me 应用程序中的 LabelField 中显示一些阿拉伯文本 假设设备上安装了阿拉伯字体 在本地化资源中 如果使用阿拉伯语言环境 则所有文本都以 Unicode 序列保存 但是 如果我明确使用这
  • 在 R 中将不同的预测方法传递给分层时间序列预测?

    我有一个分层时间序列 其底层序列都表现出间歇性需求 使用 Hyndman 的 HTS 包在层次结构内实现最佳组合似乎是有利的 使用 Kourentzes 的 MAPA 包进行间歇性需求的多重聚合预测似乎也是有利的 本质上 我想做类似的事情