如何在 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 <– 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 中导出时间序列模型?的主要内容,如果未能解决你的问题,请参考以下文章