线性回归的简单介绍

一、背景

简单线性回归(Simple linear regression)也称为一元线性回归,是分析一个自变量(x)与因变量(y)之间线性关系的方法,它的目的是拟合出一个线性函数或公式来描述x与y之间的关系。
我们以最简单的一元线性回归回归方程来解释:
y i = β 0 + β 1 × x i + e i y_i = \beta_0 + \beta_1 \times x_i + e_i yi=β0+β1×xi+ei
其中, y i y_i yi 为因变量, x i x_i xi 为 自变量, β 0 \beta_0 β0 为截距, β 1 \beta_1 β1 为斜率, e i e_i ei 为残差。

线性回归拟合的实质:残差平方和(Residual Sum of Squares, RSS)收敛到最小值的过程。一般,通过最小二乘法,获取回归方承担的系数。

二、线性回归原理之最小二乘法

最小二乘法的主要思想是通过确定未知参数(通常是一个参数矩阵),来使得真实值和预测值的误差(也称残差)平方和最小,其计算公式为 R S S = ∑ ( y i − y i ^ ) RSS = \sum(y_i - \hat{y_i}) RSS=(yiyi^),其中 y i y_i yi 是真实值, y i ^ \hat{y_i} yi^是对应的预测值。

我们仍以最简单的回归方程: y i = β 0 + β 1 × x i y_i=\beta_0+\beta_1 \times x_i yi=β0+β1×xi 为例。

根据最小二乘法: m i n ∑ ( y i − y i ^ ) 2 = m i n ∑ e i 2 = m i n ∑ ( y i − β 0 − β i x i ) = m i n   F min \sum (y_i - \hat{y_i})^2 = min \sum e_i^2 = min\sum(y_i - \beta_0 - \beta_i x_i) = min \ F min(yiyi^)2=minei2=min(yiβ0βixi)=min F

为了获得 β 0 \beta_0 β0 β 1 \beta_1 β1的最佳值,我们对其进行求偏导:
∂ F ∂ β 0 ^ = ∑ i = 1 n ( y i − β 0 ^ − β 1 ^ x i ) = 0 ∂ F ∂ β 1 ^ = ∑ i = 1 n x i ( y i − β 0 ^ − β 1 ^ x i ) = 0 \frac{\partial F}{\partial \hat{\beta_0}} = \sum_{i=1}^{n}(y_i - \hat{\beta_0} - \hat{\beta_1}x_i) = 0 \\ \frac{\partial F}{\partial \hat{\beta_1}} = \sum_{i=1}^{n}x_i(y_i - \hat{\beta_0} - \hat{\beta_1}x_i) = 0 β0^F=i=1n(yiβ0^β1^xi)=0β1^F=i=1nxi(yiβ0^β1^xi)=0

分别求 β 0 ^ \hat{ \beta_0} β0^:
在这里插入图片描述
β 1 ^ \hat{\beta_1} β1^:
在这里插入图片描述

三、残差分析

基于最小二乘法获取的回归方程,最重要的是基于残差的平方和的最小值获取的,或者说是其损失函数。
在这里,我没有对其做进一步的讨论(其实残差最重要的是判定线性你和的优良性)。
本次仅仅介绍和残差有关的几个概念:残差平方和(Residuals sum of squares, RSS),均方误差(Mean squared error, MSE),均方根误差(Root mean squared error, RMSE),残差的标准误差(Residual standard error, RSE)。

# 建立模型
# load data
mydata <- mtcars[, c("mpg", "disp")]
# fit model
mymodel <- lm(mpg ~ disp, data = mydata)

summary(mymodel)

在这里插入图片描述

# 计算残差
residuals(mymodel)

在这里插入图片描述

# 残差的直方图
hist(residuals(mymodel))

在这里插入图片描述

# 计算残差的平方和(Residual sum of squares, RSS)
rss <- sum(residuals(mymodel)^2)
rss
# [1] 317.1587
# 计算均方误差(Mean squared error, MSE)
mse <- mean(residuals(mymodel)^2)
mse
# [1] 9.911209
# 计算出均方根误差(Root mean squared error, RMSE)
rmse <- sqrt(mse)
rmse
# [1] 3.148207
# 计算残差的标准误差(Residual standard error, RSE)
# df.residual为残差的自由度(通过 n - p - 1 计算所得,n为样本量,p为模型的自变量个数)。
# 反应了因变量 y 距离拟合回归线的平均距离
rse <- sqrt(rss / mymodel$df.residual)
rse
# [1] 3.251454

四、R语言示例

计算残差并绘制

# load data
mydata <- mtcars[, c("mpg", "disp")]
# fit model
mymodel <- lm(mpg ~ disp, data = mydata)


# predict
mydata$pred <- predict(mymodel)
# residual
mydata$res <- residuals(mymodel)
# ggplot
library(ggplot2)
ggplot(data = mydata, aes(x = disp, y = mpg)) + theme_classic() +
  geom_point(aes(size = res)) +
  geom_point(aes(y = pred), shape = 2) +
  geom_smooth(method = "lm", se = FALSE, color = "grey") +
  geom_segment(aes(xend = disp, yend = pred), alpha = 0.2)

在这里插入图片描述

模型评估

在这里插入图片描述

函数结果解读
  1. call: 指的是输入的回归方程信息。
  2. Residuals: 指的是残差的信息。
  3. Coefficients: 回归系数的信息(a与b,即截距与斜率)。
Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 29.599855   1.229720  24.070  < 2e-16 ***
disp        -0.041215   0.004712  -8.747 9.38e-10 ***

这一栏包含回归系数的信息,比如estimate(a与b,即截距与斜率),Std.Error(标准误),t value(t值)与pr(>|t|) p值。

我们最关心的问题是关于disp的一些信息以及disp是否有统计学意义。通过上述的结果,可以知道b = -0.04, 它的标准误为0.004, t值为-8.747,p = 9.38e-10。因此,disp每增加一个单位,mpg下降0.04,并且具有统计学意义。

  1. Residual standard error(RSE), R2与校正后的R2 ,F-statistic: 反映模型对于数据的拟合优化程度,即评价一个模型到底好不好的指标。

Residual standard error(RSE):也称为模型的sigma值,代表残差的变异程度。用数学的话说,就是残差(Residual)的标准差(Standard deviation),有点拗口图片。

RSE的数值反映了回归模型无法解释的那一部分信息。所以RSE越小意味着模型越好,越小意味着我们的模型可以解释越多的信息。

以我们的例子来说,RSE值为3.251,即表示每个散点图上的点偏离回归直线的平均距离为3.046个单位。因此,RSE越低,点偏离回归直线的距离越小,意味着回归方程越准确。

R-squared (R方): 即R方与校正后的R方。R2的数值范围为(0~1),指的是在数据中模型可以解释的那部分信息的比例。R方越接近1,模型能够解释的信息越高,模型就越好。

# Multiple R-squared: 0.7528, Adjusted R-squared: 0.7446

在我们的例子中,R2等于0.7528,说明我们的模型可以解释mpg(每加仑行驶距离)变异程度的75.28%,已经是相当高了!

但是,随着回归方程中变量的增多(比如多元线性回归),R方趋向于变大,所以对于评价一个方程的好坏来说,会有偏移。因此,统计学家们发明了校正后的R2(Adjusted R-squared),将变量的个数也考虑在内。所以,相对与R2要更加准确,尤其是在多元线性回归当中。

F-statistic: 可用于评价回归方程整体的统计学意义。

# F-statistic: 91.38 on 1 and 30 DF, p-value: 1.294e-10

F-statistic的值越大,它的p值将会越小。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值