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

使用R语言结合faraway包的savings数据集绘制Wally图

R语言实现savings数据集的Wally图绘制

首先加载所需包并拟合初始线性模型:

library(faraway)
# 加载数据集并拟合全变量线性模型
model <- lm(sr ~ ., data = savings)

接下来是Wally图的实现代码,核心是通过模拟符合模型假设的响应值,重复拟合并绘制残差-拟合值图:

# 设置绘图布局:2行5列,容纳10幅模拟图
par(mfrow = c(2, 5), mar = c(3, 3, 1, 1), mgp = c(1.5, 0.5, 0))

# 提取初始模型的关键信息
X <- model.matrix(model)  # 设计矩阵
beta_hat <- coef(model)   # 回归系数估计值
sigma_hat <- summary(model)$sigma  # 残差标准差估计值
n <- nrow(savings)        # 样本量

# 重复10次模拟绘图流程
for (i in 1:10) {
  # 1. 生成符合正态假设的模拟误差项
  e_sim <- rnorm(n, mean = 0, sd = sigma_hat)
  # 2. 生成模拟响应值
  y_sim <- X %*% beta_hat + e_sim
  # 3. 用模拟响应值重新拟合线性模型
  model_sim <- lm(y_sim ~ ., data = savings)
  # 4. 提取拟合值与残差
  fit_sim <- fitted(model_sim)
  res_sim <- residuals(model_sim)
  # 5. 绘制残差-拟合值散点图
  plot(fit_sim, res_sim, xlab = "拟合值", ylab = "残差", pch = 16, cex = 0.8)
  abline(h = 0, col = "red", lty = 2)
}

# 恢复默认绘图布局
par(mfrow = c(1,1))

代码说明

  • 模拟逻辑:基于初始模型的系数估计,生成服从正态分布的误差项,以此构造符合模型假设的响应变量
  • 绘图细节:通过设置统一的布局参数让10幅图整齐排列,每幅图添加红色水平参考线,便于观察残差是否围绕0随机分布

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:47:06