r语言线性回归实例分析

发布时间:2022-04-22 14:14:20 作者:iii
来源:亿速云 阅读:518
# 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)和马力的线性关系。


三、数据预处理

1. 数据检查

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  

2. 缺失值处理

若存在缺失值,可使用na.omit()或插补方法处理。本例数据完整。

3. 可视化探索

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 = "每加仑里程")

四、简单线性回归(单变量)

1. 模型建立

分析mpgwt的关系:

model_simple <- lm(mpg ~ wt, data = mtcars)
summary(model_simple)

2. 结果解读

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 

3. 可视化拟合线

ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(title = "简单线性回归拟合线")

五、多元线性回归(多变量)

1. 模型建立

加入马力(hp)作为第二个自变量:

model_multi <- lm(mpg ~ wt + hp, data = mtcars)
summary(model_multi)

2. 结果解读

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 

六、模型诊断

1. 残差分析

par(mfrow = c(2, 2))
plot(model_multi)

2. 多重共线性检验

library(car)
vif(model_multi)  # 方差膨胀因子
#       wt       hp 
# 1.766625 1.766625 

若VIF > 5,需考虑变量间的共线性问题。


七、模型优化

1. 变量变换

若发现非线性关系,可尝试对数变换:

model_log <- lm(log(mpg) ~ wt + hp, data = mtcars)

2. 交互项引入

model_interaction <- lm(mpg ~ wt * hp, data = mtcars)

3. 变量选择

使用逐步回归筛选变量:

step_model <- step(lm(mpg ~ ., data = mtcars), direction = "both")

八、结论与应用

  1. 主要发现

    • 车重和马力均对油耗有显著负面影响
    • 联合解释力(R²=82.68%)优于单一变量模型
  2. 实际应用

    • 汽车设计时可优先减轻重量以降低油耗
    • 需权衡马力与燃油经济性的关系
  3. 局限性与扩展

    • 样本量较小(n=32)
    • 可考虑加入更多变量(如变速箱类型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)

”`

推荐阅读:
  1. 如何在R语言项目中实现多元线性回归
  2. 怎么在R语言中求线性回归的拟合度

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

r语言

上一篇:CSS中的list-style列表属性怎么使用

下一篇:CSS中display:inline和float:left有什么区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》