You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R Studio中调用accuracy()报错:找不到mdl_d类对象的精度方法

问题解决方法

错误原因

你调用的accuracy()是forecast包中的版本,它不支持fpp3生态下的mdl_d类模型对象(即model()函数返回的结果)。而fpp3体系下需要使用fabletools包的accuracy()函数,该函数已包含在你加载的fpp3包中。

具体解决方案

方案1:明确指定调用fabletools的accuracy函数

直接修改最后一行代码为:

fabletools::accuracy(fitdamp)

这会强制使用fpp3配套的精度评估函数,能够识别mdl_d类对象,返回你需要的ME、RMSE、MAE、MPE、MAPE、MASE、RMSSE、ACF1所有指标。

方案2:卸载forecast包避免函数冲突

如果你不需要同时使用forecast包的功能,可以先卸载它再调用accuracy():

detach("package:forecast", unload = TRUE)
accuracy(fitdamp)

方案3:调整包的加载顺序

如果你需要保留forecast包,确保先加载forecast包,再加载fpp3包,这样fabletools::accuracy会覆盖forecast::accuracy成为默认调用的函数,之后直接使用accuracy(fitdamp)即可正常运行。

额外说明

在fpp3的工作流中,accuracy()函数默认基于训练集的拟合结果计算精度指标。如果需要评估模型在测试集上的表现,可先拆分数据再传入测试集,示例代码如下:

# 拆分训练集和测试集
drug_train <- tsibbledrugsalesdata |> filter(year(Month) < 2005)
drug_test <- tsibbledrugsalesdata |> filter(year(Month) >= 2005)

# 训练模型
fitdamp <- drug_train |>
  model(SES = ETS(Sales ~ error("A") + trend("Ad") + season("N")))

# 评估测试集精度
fitdamp |> accuracy(drug_test)

内容的提问来源于stack exchange,提问作者Happy Taco Resort

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:32:39