【问题标题】:Exporting Output from Model Summary in R从 R 中的模型摘要中导出输出
【发布时间】:2017-04-19 20:08:51
【问题描述】:

有没有办法从 R 中的摘要过程中导出输出(类似于 SAS 中的 ods 输出)?

我有这个时间序列:

summary(ets(ts(c(100, 110, 120, 200, 300, 100, 200, 100, 120, 300), start = c(2009, 1), frequency = 12)))

当您运行此程序时,您会获得各种重要信息,例如 MAPE 和 RMSE。我想有选择地将其中一些指标分配给变量,以便在以后的其他流程中使用。

MAPE.ets <- [some bit of code that takes the MAPE from the output and pops it right here]

R 中有没有办法做到这一点?

编辑:经过一些回答后,我意识到 stlf ets 的行为与 ets 不同,我也需要一个适用于 stlf ets 的解决方案。

summary(stlf(ts(c(100, 110, 120, 200, 300, 100, 200, 100, 120, 300), start = c(2009, 1), frequency = 4)))

【问题讨论】:

  • 感谢 Sotos,我从未听说过扫帚包,但看起来很有趣。

标签: r output


【解决方案1】:

只需将摘要分配给一个新对象。这将创建一个矩阵,您可以在其中访问您提到的指标:

summ <- summary(ets(ts(c(100, 110, 120, 200, 300, 100, 200, 100, 120, 300), start = c(2009, 1), frequency = 12)))

summ[,"MAPE"]
[1] 44.51514

编辑:

预测包中的预期方式似乎是使用accuracy 方法(ets 类的summary 方法实际上调用accuracy);这对etsstlf 都有效:

res2 <- stlf(ts(c(100, 110, 120, 200, 300, 100, 200, 100, 120, 300), start = c(2009, 1), frequency = 4))
acc <- accuracy(res2)
acc[,"MAPE"]

【讨论】:

  • 这适用于 ets,但编辑问题以反映我的疏忽。道歉。有没有办法概括这一点,因为它似乎不想为 stlf() 工作?
【解决方案2】:

摘要为您提供了一个向量。如果你想要 colnames 和 rownames,你可以像这样得到 MAPE。

out <-summary(ets(ts(c(100, 110, 120, 200, 300, 100, 200, 100, 120, 300), 
              start = c(2009, 1), frequency = 12)))
out[,5,drop=FALSE]

             MAPE
Training set 44.51514

我只想要号码,删除drop=FALSE

out[5]
[1] 44.51514

EDIT 使用stfl,最好使用accuracy 函数而不是summary。要获得 MAPE,您可以:

res <- stlf(ts(c(100, 110, 120, 200, 300, 100, 200, 100, 120, 300), 
            start = c(2009, 1), frequency = 4))
accuracy(res)[5]
[1] 44.5994

【讨论】:

  • 这适用于 ets,但编辑问题以反映我的疏忽。道歉。有没有办法概括这一点,因为它似乎不想为 stlf() 工作?
  • @DavidHeckmann 我们应该成立花样游泳队:)
  • 大家好。我真的很感谢你的两个答案。我选择 David's 只是因为我喜欢通过名称而不是位置明确询问指标的功能,但两者都是很好的解释和答案。
  • 一个问题,这样我就可以学习如何对这类事情更加自给自足......你在哪里找到程序的输出列表?有资源可以指点我吗?还是只是你从经验中知道的?我知道我会在其他过程中遇到这个问题,并且想知道如何列出由一个过程创建的所有输出,以便我可以看到可用的内容。帮助文档似乎没有此信息...
  • @pyll 通常你可以试试str(res) 看看是什么结构或元素。在这种情况下,它不起作用......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2018-10-04
相关资源
最近更新 更多