您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# R语言线性回归实例分析
## 一、线性回归概述
线性回归(Linear Regression)是统计学中最基础且广泛应用的预测分析方法之一,用于建立因变量(响应变量)与一个或多个自变量(解释变量)之间的线性关系模型。其数学表达式为:
\[ y = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_px_p + \epsilon \]
其中:
- \( y \):因变量
- \( x_1, x_2, ..., x_p \):自变量
- \( \beta_0 \):截距项
- \( \beta_1, \beta_2, ..., \beta_p \):回归系数
- \( \epsilon \):随机误差
R语言作为统计分析的强大工具,提供了丰富的函数和包(如`lm()`、`ggplot2`等)来实现线性回归建模和可视化。
---
## 二、实例数据集介绍
本文使用R内置数据集`mtcars`进行分析。该数据集记录了32辆汽车的设计和性能特征,包含11个变量:
```r
data(mtcars)
head(mtcars)
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
# Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
# ...
分析目标:探究汽车每加仑行驶里程(mpg
)与重量(wt
)和马力的线性关系。
summary(mtcars[, c("mpg", "wt", "hp")])
# mpg wt hp
# Min. :10.40 Min. :1.513 Min. : 52.0
# Median :19.20 Median :3.325 Median :123.0
# Mean :20.09 Mean :3.217 Mean :146.7
若存在缺失值,可使用na.omit()
或插补方法处理。本例数据完整。
library(ggplot2)
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point(color = "blue") +
labs(title = "车重与油耗关系散点图", x = "重量 (1000 lbs)", y = "每加仑里程")
ggplot(mtcars, aes(x = hp, y = mpg)) +
geom_point(color = "red") +
labs(title = "马力与油耗关系散点图", x = "马力 (hp)", y = "每加仑里程")
分析mpg
与wt
的关系:
model_simple <- lm(mpg ~ wt, data = mtcars)
summary(model_simple)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 37.2851 1.8776 19.858 < 2e-16 ***
wt -5.3445 0.5591 -9.559 1.29e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.046 on 30 degrees of freedom
Multiple R-squared: 0.7528, Adjusted R-squared: 0.7446
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "简单线性回归拟合线")
加入马力(hp
)作为第二个自变量:
model_multi <- lm(mpg ~ wt + hp, data = mtcars)
summary(model_multi)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 37.227270 1.598787 23.285 < 2e-16 ***
wt -3.877831 0.632733 -6.129 1.12e-06 ***
hp -0.031772 0.009029 -3.519 0.00145 **
---
Multiple R-squared: 0.8268, Adjusted R-squared: 0.8148
par(mfrow = c(2, 2))
plot(model_multi)
library(car)
vif(model_multi) # 方差膨胀因子
# wt hp
# 1.766625 1.766625
若VIF > 5,需考虑变量间的共线性问题。
若发现非线性关系,可尝试对数变换:
model_log <- lm(log(mpg) ~ wt + hp, data = mtcars)
model_interaction <- lm(mpg ~ wt * hp, data = mtcars)
使用逐步回归筛选变量:
step_model <- step(lm(mpg ~ ., data = mtcars), direction = "both")
主要发现:
实际应用:
局限性与扩展:
am
)# 加载数据与包
data(mtcars)
library(ggplot2)
library(car)
# 简单线性回归
model_simple <- lm(mpg ~ wt, data = mtcars)
summary(model_simple)
# 多元线性回归
model_multi <- lm(mpg ~ wt + hp, data = mtcars)
summary(model_multi)
# 模型诊断
par(mfrow = c(2, 2))
plot(model_multi)
vif(model_multi)
”`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。