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

运行rwf()函数报错:x与y观测数不一致问题求助

问题诊断与解决

错误原因

rwf()(随机游走预测)仅接受单变量时间序列作为输入,但你的tsla_train是包含Open/High/Low/Close/Volume等多列数据的OHLCV数据框,而非单变量的收盘价序列。函数处理多列数据时无法匹配内部计算所需的维度,因此抛出x and y should have the same number of observations错误。

你用AAPL数据时能运行,大概率是当时无意中使用了单变量序列,而非完整的OHLCV数据框。

修正方案

将训练集和测试集都限定为单变量的收盘价序列,而非完整的多列数据框,具体修改如下:

修正后的完整代码

library(forecast)
library(quantmod)

# 获取TSLA数据
getSymbols("TSLA",from="2022-09-01", to="2023-06-16")
chartSeries(TSLA, multi.col = TRUE, theme = "white")
summary(TSLA)

# 提取单变量收盘价序列
Tesla <- TSLA$TSLA.Close
plot(Tesla)

# 均值预测(原代码正常,保留)
Teslamf <- meanf(Tesla,h=6)
plot(Teslamf)
Teslamf
Teslamf$fitted
Teslamf$residuals
acf(Teslamf$residuals)
checkresiduals(Teslamf)

# 修正:基于单变量收盘价序列划分训练/测试集
tsla_train <- Tesla[1:189]
tsla_test <- Tesla[190:196]
tsla_test

# 执行随机游走预测
tsla_train_forecast <- rwf(tsla_train, h=6)
tsla_train_forecast

# 计算测试集与预测值的差值
tsla_test - tsla_train_forecast$mean

关键修改点

  • 原代码中tsla_train=TSLA[1:189]提取的是多列数据框,改为tsla_train=Tesla[1:189]后,使用的是之前定义的单变量收盘价序列Tesla。
  • 测试集tsla_test同样改为基于Tesla单变量序列提取,确保与训练集的维度一致。

这样修改后,rwf()函数就能正确处理单变量时间序列,不会再出现维度不匹配的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:12:46