【问题标题】:How can I export a Time Series model in R?如何在 R 中导出时间序列模型?
【发布时间】:2015-05-05 00:11:50
【问题描述】:

在 R 中导出时间序列模型是否有标准(或可用)方法? PMML 可以工作,但是当我尝试使用 pmml 库时,可能会出现错误:

例如,我的代码如下所示:

require(fpp)
library(forecast)
library(pmml)
data <- ts(livestock, start = 1970, end = 2000,frequency=3)
model <- ses(data , h=10 )
export <- pmml(model)

我得到的错误是:

Error in UseMethod("pmml") :   no applicable method for 'pmml' applied to an object of class "forecast"

【问题讨论】:

  • ?pmml 中没有列出pmml.forecast。可能是您收到此错误的原因。
  • 是否有任何选项可以为时间序列创建 pmml?
  • 可以直接问包维护者maintainer("pmml").
  • 您可以像其他任何东西一样将其保存为 .RData 或 RDS 对象 - 如果您想与使用 R 的其他人进行交互,则可以这样做。代码示例:对于模型 @987654326 @,您将使用 saveRDS(model, "model.rds") 并稍后将其加载为 model &lt;– loadRDS("model.rds")
  • @yoganathank 如果您编写了一个 UDF 以将其导出为 PMML 并且这是解决方案,那么请将代码作为答案提供给社区并选择您的答案作为解决方案,以便其他人可以受益(您也可以通过这种方式获得更多积分)

标签: r pmml


【解决方案1】:

以下是我能说的:

当您使用ses() 时,您不是在创建模型;而是在创建模型。您正在使用模型来查找预测(特别是通过时间序列的指数平滑进行预测)。您的结果不是预测模型,而是对特定数据集的模型的特定预测。虽然我对 PMML 不太熟悉,但据我所知,它不适用于您尝试使用它的工作。

如果你想导出时间序列和结果,我想说你最好的办法是只导出一个包含数据的.csv 文件;几乎任何东西都可以读取.csv's。 ts 对象只不过是一个美化的向量,因此您可以导出数据和时间。此外,model 只是一个包含数据的表格。所以试试这个:

write.csv(model, file="forecast.csv")

如果您想编写 ts 对象,请尝试以下方法之一:

write.csv(data, file="ts1.csv") # No dates for index
write.csv(cbind("time" = time(data), "val" = data), file = "ts2.csv") # Adds dates

【讨论】:

    猜你喜欢
    • 2020-06-22
    • 2014-12-06
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2018-12-31
    • 1970-01-01
    • 2016-02-07
    相关资源
    最近更新 更多