R中使用tslm()绘制残差拟合图遇问题:plot报错且红线不显示
解决tslm模型残差vs拟合值绘图及红线显示问题
1. 修复红色参考线不显示的问题
你当前代码里的abline(0,0)默认使用黑色线条,视觉上不明显。只需添加颜色参数就能调出红色参考线,和lm()生成的图效果一致:
# 提取残差与拟合值 res <- resid(ts_model) fitted_vals <- fitted(ts_model) # 绘制残差vs拟合值图 plot(fitted_vals, res, xlab = "拟合值", ylab = "残差", main = "残差 vs 拟合值", pch = 16) # 添加红色水平参考线 abline(h = 0, col = "red", lwd = 2)
其中h = 0明确指定绘制y=0的水平线,col="red"设置红色,lwd=2让线条更粗更显眼。
2. 模拟lm()默认残差图的完整样式
如果想要更贴近lm()默认残差图的细节(比如添加平滑趋势线),可以结合lowess函数实现:
plot(fitted_vals, res, xlab = "拟合值", ylab = "残差", main = "残差 vs 拟合值", pch = 16) abline(h = 0, col = "red", lwd = 2) # 添加蓝色平滑拟合线 lines(lowess(fitted_vals, res), col = "blue", lwd = 1.5)
3. 关于plot(ts_model)报错的说明
tslm()来自forecast包,其返回的模型对象未实现完整的plot方法,直接调用plot(ts_model)会触发维度错误,因此手动提取残差和拟合值是可靠的替代方案。
内容的提问来源于stack exchange,提问作者Priscilla Raj
相关产品推荐
相关产品推荐

