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

时间序列代码中的日期格式化及ts()函数参数设置问题

解决方案步骤

1. 合并日期时间并转换为标准格式

首先把分开的Date和Time列合并成完整时间戳,转换成POSIXct类型,这是后续处理的基础:

library(tidyverse)
library(forecast)
library(zoo)

# 读取数据(替换为你的实际文件名)
tp <- read.csv("your_file.csv")

# 合并日期时间,按匹配格式转换为POSIXct
tp <- tp %>%
  mutate(datetime = as.POSIXct(paste(Date, Time), format = "%d-%b-%y %H:%M"))

注:format参数需严格匹配你的日期格式,%d-%b-%y对应01-Jan-05样式,%H:%M对应小时分钟。

2. 时间序列对象的选择与参数澄清

关于ts()函数的参数困惑

  • frequency参数:ts的frequency指一个周期内的观测数量。如果以天为周期,你的数据每天固定63个15分钟时隙,所以frequency=63是正确的;如果以周为周期,frequency则为63*7=441。
  • start/end参数:ts用数值型周期定位,比如第一个观测是2005年1月1日的第1个时隙,最后一个是1月23日的第63个时隙,可这样设置:
    tp.ts <- ts(tp$Demand, start = c(2005, 1), end = c(2005, 23*63), frequency = 63)
    
    但这种方式会丢失实际日期信息,不利于提取星期几这类特征,更推荐用zoo/xts对象。

更实用的zoo对象

zoo支持直接用POSIXct时间作为索引,保留完整时间信息:

tp.zoo <- zoo(tp$Demand, order.by = tp$datetime)

3. 提取时间特征(如星期几)

要纳入星期几对需求的影响,直接从datetime列提取即可:

tp <- tp %>%
  mutate(weekday = weekdays(datetime),  # 提取星期几名称
         hour = hour(datetime))         # 可额外提取小时特征

# 将星期几转为因子,避免建模时出现无序问题
tp$weekday <- factor(tp$weekday, levels = c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"))

4. 带时间特征的预测建模

用auto.arima结合外部回归变量(xreg),纳入星期几这类因素:

# 构造星期几的哑变量(去掉一个避免共线性)
xreg <- model.matrix(~ weekday - 1, data = tp)

# 拟合带外部回归量的ARIMA模型
model <- auto.arima(tp$Demand, xreg = xreg)

# 构造当月剩余时段的时间序列与特征(示例:1月24日至31日的6:30-22:00)
future_dates <- seq(as.POSIXct("2005-01-24 06:30"), as.POSIXct("2005-01-31 22:00"), by = "15 mins")
future_df <- tibble(datetime = future_dates) %>%
  mutate(weekday = weekdays(datetime)) %>%
  mutate(weekday = factor(weekday, levels = c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")))

# 生成未来的外部回归变量矩阵
future_xreg <- model.matrix(~ weekday - 1, data = future_df)

# 执行预测
forecast_result <- forecast(model, xreg = future_xreg)

# 查看并可视化结果
print(forecast_result)
plot(forecast_result)

关键注意事项

  • 若日期格式有变化(如月份为全称),需调整format参数(比如改为%d-%B-%y)。
  • 如果存在某天观测缺失的情况,ts对象会失效,此时zoo/xts是更可靠的选择。
  • 可额外加入节假日、时段类型(工作日/周末)等特征,进一步优化预测精度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:45:30