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

如何提取R中ARIMA模型的拟合值?以AirPassengers数据为例

提取ARIMA模型的拟合值方法

当然可以提取ARIMA模型的拟合值!你遇到的问题主要是因为R中两个常用的ARIMA建模函数(stats::arima()和forecast::Arima())返回的对象结构不同,下面针对你的情况详细说明:

1. 使用forecast::Arima()(推荐,更便捷)

如果你用的是forecast包的Arima()函数(注意首字母大写),这个函数返回的模型对象直接包含fitted元素,对应就是模型的拟合值。针对你用的AirPassengers数据集和ARIMA(0,1,1)(0,1,1)₁₂模型,代码如下:

# 加载包和数据
library(forecast)
data(AirPassengers)

# 构建季节性ARIMA模型
arima_model <- Arima(AirPassengers, order = c(0,1,1), seasonal = c(0,1,1))

# 提取拟合值
fitted_vals <- arima_model$fitted

# 查看前5个拟合值
head(fitted_vals)

2. 使用stats::arima()(基础包函数)

如果你用的是R基础包stats里的arima()函数(首字母小写),这个函数返回的对象确实没有直接的fitted字段,但我们可以通过原始值 - 残差来计算拟合值(因为残差的定义是实际值 - 拟合值)。代码示例:

data(AirPassengers)

# 构建季节性ARIMA模型,注意seasonal参数的写法
arima_model_stats <- arima(AirPassengers, 
                           order = c(0,1,1), 
                           seasonal = list(order = c(0,1,1), period = 12))

# 计算拟合值
fitted_vals_stats <- AirPassengers - arima_model_stats$residuals

# 查看前5个拟合值
head(fitted_vals_stats)

补充说明

你并没有误解R中ARIMA模型的功能,只是不同函数的封装逻辑不同:forecast包的Arima()是对基础包arima()的扩展,额外提供了fitted、forecast()等更实用的功能,更适合时间序列分析的日常使用。

内容的提问来源于stack exchange,提问作者Ryan Z Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:33:06