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

R语言航空乘客数据:拟合值与残差散点图显示异常问题

解决ARIMA拟合值与残差散点图异常显示的问题

我明白你遇到的困扰了——直接用ARIMA模型输出的时间序列残差和拟合值调用plot(),会因为R对时间序列对象的特殊绘图逻辑,导致本该是散点的地方显示成了数字标签。咱们来一步步修正这个问题:

问题根源

arima()返回的模型对象中,y$residuals和fitted(y)都是时间序列(ts)对象。当你直接把两个ts对象传入plot()时,R默认会优先按照时间序列的绘图规则处理,而非普通散点图逻辑,这就引发了显示异常。

修正后的代码

只需要把时间序列转换成普通的数值向量,就能让plot()按照预期生成散点图:

# 加载数据并拟合ARIMA模型
x <- AirPassengers
y <- arima(x, order = c(0,1,1), seasonal = c(0,1,1))
z <- fitted(y)

# 将时间序列转为数值向量,绘制散点图
plot(as.numeric(y$residuals), as.numeric(z), type = "p", 
     xlab = "残差", ylab = "拟合值", main = "ARIMA拟合值与残差散点图")

额外优化(可选)

如果想让散点图更直观美观,还可以添加趋势线或调整点的样式:

# 绘制散点并添加平滑趋势线
plot(as.numeric(y$residuals), as.numeric(z), type = "p", pch = 16, col = "#2E86AB",
     xlab = "残差", ylab = "拟合值", main = "ARIMA(0,1,1)(0,1,1)拟合值与残差散点图")
abline(lm(as.numeric(z) ~ as.numeric(y$residuals)), col = "#F24C4E", lwd = 2)

这样就能得到你预期的散点图了——每个点代表一组残差和对应的拟合值,不会再出现数字标签的异常情况。

内容的提问来源于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:34:00