如何在 R 中导出时间序列模型?

Posted

技术标签:

【中文标题】如何在 R 中导出时间序列模型?【英文标题】:How can I export a Time Series model in 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 并且这是解决方案,那么请将代码作为答案提供给社区并选择您的答案作为解决方案,以便其他人可以受益(您也可以通过这种方式获得更多积分) 【参考方案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

【讨论】:

以上是关于如何在 R 中导出时间序列模型?的主要内容,如果未能解决你的问题,请参考以下文章

如何从sklearn LinearRegression中导出线性回归公式

从 Anylogic 数据库中导出数据

在 R 中导出月份名称时出错

无法从 Marmoset 工具包中导出 Gltf 模型动画

从 R 中的列表中导出单独的文本文件

如何从 Blender 中导出 fbx 纹理以在 Monogame 中使用