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

时间序列建模中是否存在类似线性模型的列名简写语法?

时间序列建模中是否支持列名简写(类似lm()的~ .)?

在线性模型里,我们可以用~ .来简写所有列名,无需手动罗列:

linear1 <- lm(mpg ~ ., data = mtcars)

但在使用fpp3包的TSLM()进行时间序列建模时,尝试同样写法会报错:

library(fpp3)
head(us_change)
linear1 <- us_change %>% 
  fabletools::model(TSLM(Consumption ~ .,)) %>% 
  report()
# Error in TSLM(Consumption ~ ., ) : unused argument (alist())

而手动写出所有自变量的代码可正常运行:

us_change %>% 
  fabletools::model(TSLM(Consumption ~ Income + Production + Savings + Unemployment)) %>% 
  report()

数据预览:
head of US Change data

解决方案

在fpp3的TSLM()中,是支持类似~ .的列名简写的,报错的原因是你在~ .后面多写了一个多余的逗号,导致函数识别到无效的空参数。

修正后的正确代码:

library(fpp3)
us_change %>% 
  fabletools::model(TSLM(Consumption ~ .)) %>% 
  report()

如果需要排除特定自变量,还可以用~ . - 列名的写法,比如排除Unemployment:

us_change %>% 
  fabletools::model(TSLM(Consumption ~ . - Unemployment)) %>% 
  report()

注:us_change中的时间索引列会被fpp3自动识别,不会被纳入自变量范围,无需额外处理。

内容的提问来源于stack exchange,提问作者Russ Conte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:54:59