残差与杠杆关系的可视化(使用R语言)

100 篇文章 ¥59.90 ¥99.00

残差与杠杆关系的可视化(使用R语言)

在统计建模和回归分析中,残差与杠杆是两个重要的概念。残差表示实际观测值与回归模型预测值之间的差异,而杠杆则衡量了每个观测值对回归模型的拟合结果的影响程度。通过可视化残差与杠杆关系图,我们可以更好地理解数据点对回归模型的影响,并识别出可能的异常值或离群点。

下面是使用R语言进行残差与杠杆关系图可视化的示例代码:

# 导入所需的包
library(ggplot2)
library(dplyr)
library(broom)

# 生成一个示例数据集
set.seed(123)
x <- rnorm(100)
y <- 2 * x + rnorm(100)
data <- data.frame(x, y)

# 拟合线性回归模型
model <- lm(y ~ x, data = data)

# 提取残差和杠杆值
residuals <- augment(model) %>% pull(.resid)
leverage <- augment(model) %>% pull(.hat)

# 绘制残差与杠杆关系图
ggplot(data, aes(x = leverage, y = residuals)) +
  geom_point() +
  geom_smooth(method = "loess", se = FALSE, color = "red") +
  xlim(0, max(leverage)) +
  ylim(min(residuals), max(residuals)) +
  labs(x = "杠杆值", y = "残差") +
  ggtitle("
线性回归模型的残差分析是评估模型拟合效果的重要手段之一。通过残差可视化,可以判断模型是否满足线性回归的基本假设,例如残差的正态性、同方差性以及独立性等。以下是几种常见的残差可视化方法: ### 1. 残差图(Residuals vs Fitted) 残差图展示了拟合值残差之间的关系,用于检查是否存在非线性或异方差性。理想情况下,残差应围绕零线随机分布,没有明显的模式[^1]。 ```python import matplotlib.pyplot as plt from statsmodels.graphics.regressionplots import plot_fit # 假设 model 是已经训练好的线性回归模型 # fitted_values 是模型的预测值 # residuals 是模型的残差 fitted_values = model.fittedvalues residuals = model.resid plt.scatter(fitted_values, residuals) plt.axhline(y=0, color='r', linestyle='--') plt.xlabel('Fitted values') plt.ylabel('Residuals') plt.title('Residuals vs Fitted') plt.show() ``` ### 2. 正态Q-Q图(Normal Q-Q Plot) 正态Q-Q图用于检验残差是否符合正态分布。如果残差符合正态分布,图中的应大致沿着参考线分布[^1]。 ```python import statsmodels.api as sm sm.qqplot(residuals, line='s') plt.title('Normal Q-Q Plot') plt.show() ``` ### 3. 尺寸-位置图(Scale-Location Plot) 该图用于检测异方差性,即残差的方差是否随拟合值的变化而变化。图中若分布较为平坦,则表明方差较为稳定[^1]。 ```python import numpy as np sqrt_residuals = np.sqrt(np.abs(residuals)) plt.scatter(fitted_values, sqrt_residuals) plt.axhline(y=0, color='r', linestyle='--') plt.xlabel('Fitted values') plt.ylabel('sqrt(|Residuals|)') plt.title('Scale-Location Plot') plt.show() ``` ### 4. 残差杠杆图(Residuals vs Leverage) 该图用于别高杠杆和强影响杠杆值越高,说明该数据对模型的影响越大。图中还可能标注出具有较大影响的观测[^1]。 ```python from statsmodels.graphics.regressionplots import plot_leverage_resid2 plot_leverage_resid2(model) plt.show() ``` ### 5. 残差自相关图(Autocorrelation Plot) 对于时间序列数据,残差自相关图可以用来检查残差是否存在自相关性。如果残差是独立的,那么自相关系数应在零附近随机波动[^1]。 ```python from statsmodels.graphics.tsaplots import plot_acf plot_acf(residuals, lags=40) plt.title('Autocorrelation Plot of Residuals') plt.show() ``` 这些方法可以帮助更好地理解模型的残差特性,从而优化模型或改进模型假设。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值