7 高级统计建模之线性回归模型深入探讨
在上一篇中,我们探讨了数据可视化的进阶技巧,尤其是交互式可视化。现在,我们将深入讨论一个重要的统计建模工具——线性回归模型。线性回归是一种预测分析方法,用于确定因变量与一个或多个自变量之间的线性关系。此篇教程将详细介绍线性回归的基础知识、模型构建、诊断方法,以及如何在 R 中实现它。
线性回归模型基础
线性回归模型的基本形式可以表示为:
其中:
- 是因变量(响应变量)。
- 是自变量(预测变量)。
- 是截距。
- 是回归系数。
- 是误差项,假定其均值为0。
线性回归的假设
在构建线性回归模型之前,有几个主要假设需要满足:
- 线性关系:因变量与自变量之间存在线性关系。
- 独立性:残差(预测值与实际值之差)之间独立。
- 同方差性:残差的方差应当相同,即不存在异方差性。
- 正态性:残差应近似服从正态分布。
模型构建与实现
在 R 中,构建线性回归模型非常直观。我们将使用 lm()
函数来实现线性回归。以下是一个案例,使用内置于 R 中的 mtcars
数据集,来预测汽车的每加仑油耗 mpg
(Miles Per Gallon)基于其发动机排量 disp
和马力 hp
。
1. 加载数据
# 加载所需的库
library(ggplot2)
# 查看数据集
data("mtcars")
head(mtcars)
2. 创建线性回归模型
使用 lm()
函数创建模型:
# 创建线性回归模型
model <- lm(mpg ~ disp + hp, data = mtcars)
# 查看模型摘要
summary(model)
模型摘要将提供包括回归系数、R平方值、F值等重要信息。
3. 模型诊断
在线性回归中,进行模型诊断非常重要。我们常用以下几个方法:
- 残差分析:检查残差是否满足正态性和同方差性。
# 残差与拟合值图
plot(model$fitted.values, model$residuals)
abline(h = 0, col = "red")
- QQ图:检查残差的正态性。
# QQ图
qqnorm(model$residuals)
qqline(model$residuals, col = "red")
- Cook's D 检测异常值:
# 计算Cook's D
cooksd <- cooks.distance(model)
# 绘制Cook's D图
plot(cooksd, type = "h", main = "Cook's Distance", ylab = "Cook's Distance")
abline(h = 4/(nrow(mtcars)-length(model$coefficients)-2), col = "red")
4. 预测
使用所构建的模型进行新数据的预测:
# 新数据
new_data <- data.frame(disp = c(200, 300), hp = c(100, 150))
# 进行预测
predict(model, new_data)
小结
在本篇中,我们深入了解了线性回归模型的构建及诊断。通过实际案例,我们不仅学习了如何在 R 中实现线性回归,还掌握了如何分析与评估模型的有效性。线性回归是统计建模的重要工具,具有广泛的应用场景。
在即将到来的下一篇教程中,我们将进一步探讨广义线性模型(GLM),这是一种更为灵活的模型工具,可以用于处理非正态分布的数据。希望大家在数据分析的旅程中不断探索、学习和进步!