[Machine Learning] 线性回归和平滑方法

文章目录

  • 相关系数 (Correlation Coefficient)
    • 简单线性回归中的相关系数
  • 线性回归 (Linear Regression)
    • Simple Linear Regression
      • Least Squares Equations
      • Standard Error of Regression Coefficient Estimates
      • 置信区间 (Confidence Interval)
      • 决定系数 (Coefficient of Determination)
    • MAE, MSE 和 RMSE
      • Mean Absolute Error
      • Mean Squared Error
      • Root Mean Squared Error
  • 平滑方法 (Smoothing)
    • K-Nearest Neighbours
      • Symmetric Nearest Neighbourhood
    • Regression Splines
      • Cubic Spline
    • Local Regression (Loess)


相关系数 (Correlation Coefficient)

Correlation is a way to determine how two quantitative (metric) variables are related.

Not only does it tell us the direction of a linear relationship between two variables, but it also tells us the degree to which the variables tend to move together. Since correlation standardizes the measure of interdependence between two variables, it tells us how closely they move.

The correlation coefficient, r, is calculated as

r = C o v ( x , y ) S d ( x ) S d ( y ) r = \frac{Cov(x, y)}{Sd(x)Sd(y)} r=Sd(x)Sd(y)Cov(x,y)

where
C o v ( x , y ) Cov(x, y) Cov(x,y) is covariance of x x x and y y y, ∑ x y − n x ˉ y ˉ n − 1 \frac{\sum xy - n \bar{x} \bar{y}}{n-1} n1xynxˉyˉ
S d ( x ) Sd(x) Sd(x) is standard deviation of x = ∑ x x − n x ˉ x ˉ n − 1 x = \sqrt{\frac{\sum xx - n \bar{x} \bar{x}}{n-1}} x=n1xxnxˉxˉ
S d ( y ) Sd(y) Sd(y) is standard deviation of y = ∑ y y − n y ˉ y ˉ n − 1 y = \sqrt{\frac{\sum yy - n \bar{y} \bar{y}}{n-1}} y=n1yynyˉyˉ

It is the sign of the covariance that determines the sign of r.

简单线性回归中的相关系数

在只有一个解释变量的简单线性回归模型中,我们可以通过取决定系数的平方根,并根据协方差的符号来得到相关系数:

r = ± R 2 r = \pm \sqrt{R^2} r=±R2

当我们处理多元线性回归(即有多个解释变量的情况)时, r = ± R 2 r = \pm \sqrt{R^2} r=±R2 的这种关系就不再适用了。这是因为在多元线性回归中, R 2 R^2 R2是衡量所有解释变量综合对响应变量的解释程度,而不是任何单一解释变量与响应变量之间的关系。

在多元线性回归模型中,可以计算每个解释变量与响应变量之间的相关系数,但是这个相关系数并不能完全解释该解释变量对响应变量的影响,因为还有其他解释变量存在。因此,直接用 r = ± R 2 r = \pm \sqrt{R^2} r=±R2 无法得到多元回归中每个单独解释变量的相关系数。

线性回归 (Linear Regression)

线性回归是一种简单且常用的统计学方法,用于预测一个变量(被称为响应变量)基于一个或多个其他变量(被称为预测变量)的值。在简单线性回归中,只有一个预测变量;在多元线性回归中,有两个或更多的预测变量。

Simple Linear Regression

线性回归的基本公式是:

Y = β 0 + β 1 X + ϵ Y = \beta_{0} + \beta_{1}X + \epsilon Y=β0+β1X+ϵ

其中:

Y Y Y 是响应变量
X X X 是预测变量
β 0 \beta_{0} β0 是Y轴截距
β 1 \beta_{1} β1 是X的系数,也被称为斜率
ϵ \epsilon ϵ 是误差项,代表模型不能解释的部分

在实际应用中,我们通常不知道总体参数。所以,我们用样本数据来估计这些参数。这就导致了下面的公式:

y i = b 0 + b 1 x i + e i y_{i} = b_{0} + b_{1}x_{i} + e_{i} yi=b0+b1xi+ei

其中:

y i y_{i} yi 是第i个观察值的响应变量
x i x_{i} xi 是第i个观察值的预测变量
b 0 b_{0} b0 是估计的Y轴截距
b 1 b_{1} b1 是估计的X的系数,也被称为斜率
e i e_{i} ei 是第i个观察值的误差项,代表模型不能解释的部分

我们希望找到最佳的 b 0 b_{0} b0 b 1 b_{1} b1,使得误差项 e i e_{i} ei的平方和(也称为残差平方和)最小,这就是最小二乘法。

Least Squares Equations

线性回归的系数可以通过下列方式计算:

  1. b 1 b_{1} b1(斜率系数): 这是X变量的系数,表示Y随着X的变化而变化的量。可以用下列公式来计算:

b 1 = ∑ ( x i − x ˉ ) ( y i − y ˉ ) ∑ ( x i − x ˉ ) 2 = C o v ( X , Y ) V a r ( X ) b_{1} = \frac{\sum (x_{i} - \bar{x})(y_{i} - \bar{y})}{\sum (x_{i} - \bar{x})^2} = \frac{Cov(X, Y)}{Var(X)} b1=(xixˉ)2(xixˉ)(yiyˉ)=Var(X)Cov(X,Y)

其中 x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ 是 x 和 y 的样本平均值, C o v ( X , Y ) Cov(X, Y) Cov(X,Y) 是 x 和 y 的协方差, V a r ( X ) Var(X) Var(X) 是 x 的方差。

  1. b 0 b_{0} b0(截距系数):这是当X为0时,Y的预测值。可以用下列公式来计算:

b 0 = y ˉ − b 1 x ˉ b_{0} = \bar{y} - b_{1}\bar{x} b0=yˉb1xˉ

这里, x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ 同样表示x和y的样本平均值。

使用以上计算得到的 b 0 b_{0} b0 b 1 b_{1} b1,我们可以得到最终的估计回归线方程,即:

y ^ = b 0 + b 1 x \hat{y} = b_{0} + b_{1}x y^=b0+b1x

这个估计的回归线使得残差平方和(即 ∑ ( y i − y ^ i ) 2 \sum (y_{i} - \hat{y}_{i})^2 (yiy^i)2)最小,因此它被称为“最小二乘回归线”。

在使用线性回归时,通常我们会检查其假设(例如,误差项的正态性、方差的恒定性等),并使用统计检验(例如 t 检验)来验证回归系数的显著性。

Standard Error of Regression Coefficient Estimates

回归分析的目标之一是估计目标变量(响应变量)与一个或多个预测变量(自变量)之间的关系。我们使用回归系数来描述这种关系,这些系数通过最小二乘法或其他方法进行估计。

然而,实际的回归系数估计是带有误差的,我们通常通过计算回归系数估计的标准误差来衡量这种误差的大小。回归系数的标准误差有助于我们理解回归系数的精度,更具体地说,它们帮助我们构造回归系数的置信区间,并进行假设检验。

对于截距 β 0 \beta_{0} β0 的标准误差:

S E ( β 0 ^ ) = σ 1 n x ˉ 2 ∑ i = 1 n ( x i − x ˉ ) 2 SE(\hat{\beta_{0}}) = \sigma \sqrt{\frac{1}{n} \frac{ \bar{x}^2 }{ \sum\limits^n_{i=1} (x_i - \bar{x})^2 }} SE(β0^)=σn1i=1n(xixˉ)2xˉ2

对于斜率 β 1 \beta_{1} β1 的标准误差:

S E ( β 1 ^ ) = σ ∑ i = 1 n ( x i − x ˉ ) 2 SE(\hat{\beta_{1}}) = \frac{\sigma}{\sqrt{\sum\limits^n_{i=1} (x_i - \bar{x})^2 }} SE(β1^)=i=1n(xixˉ)2 σ

在这两个公式中:

σ \sigma σ 是模型残差的标准差。
n n n 是样本数量。
x ˉ \bar{x} xˉ x x x 的平均值。
x i x_i xi 是单个样本 i i i x x x 值。

标准误差量化了回归系数估计的不确定性或方差。具体来说,它测量的是,如果我们从同一个总体中重复取样,并且对每个样本进行回归,那么得到的回归系数估计会有多大的变异性。

当样本数量 n 趋向于无穷大时,回归系数估计的标准误差确实趋向于0。

当预测变量 x i x_i xi 更加分散时,即每个 x i x_i xi 与其平均值 x ˉ \bar{x} xˉ 的差的平方和更大,我们可以更准确地估计斜率参数,因此斜率的标准误差会更小。换句话说,预测变量的观察值的分散性给我们提供了更多的“杠杆”去估计模型的参数。

这就是为什么在设计实验或者收集数据时,我们通常希望预测变量能够在一定范围内均匀地取值。这样可以使我们对模型参数的估计更为准确,标准误差也会相应地减小。

置信区间 (Confidence Interval)

一旦我们计算了标准误差,我们就可以使用它们来计算置信区间。对于一个回归系数的估计,其 95% 的置信区间可以表示为:

β ^ ± t 0.025 , n − 2 ⋅ S E ( β ^ ) \hat{\beta} \pm t_{0.025, n-2} \cdot SE(\hat{\beta}) β^±t0.025,n2SE(β^)

其中, β ^ \hat{\beta} β^ 是回归系数的估计值, t 0.025 , n − 2 t_{0.025, n-2} t0.025,n2 是自由度为 n − 2 n-2 n2 的 t 分布的 0.025 分位数(也就是两侧的 2.5%), S E ( β ^ ) SE(\hat{\beta}) SE(β^) 是回归系数估计的标准误差。

95%的置信区间表示,如果我们反复进行独立的抽样并计算95%置信区间,那么这些区间大约有95%会包含真实的参数值。

需要注意的是,任何一个特定的置信区间要么包含了这个真实值,要么没有包含。我们无法知道特定的置信区间是否真的包含了真实值,因为真实值是未知的。

决定系数 (Coefficient of Determination)

决定系数,或称为 R 2 R^2 R2,表示了模型解释的数据变异性的比例。

R 2 R^2 R2 的值在 0 和 1 之间,可以通过以下公式计算:

R 2 = 1 − R S S T S S = S S R T S S R^2 = 1 - \frac{RSS}{TSS} = \frac{SSR}{TSS} R2=1TSSRSS=TSSSSR

其中,

R S S RSS RSS 是Residual Sum of Squares(残差平方和),即 ∑ i = 1 n ( y i − y ^ i ) 2 \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 i=1n(yiy^i)2,其中 y i y_i yi 是实际观察值, y ^ i \hat{y}_i y^i 是预测值,表示模型不能解释的数据变异性;

S S R SSR SSR 是Sum of Squares due to Regression(回归平方和),即 ∑ i = 1 n ( y ^ i − y ˉ ) 2 \sum_{i=1}^{n} (\hat{y}_i - \bar{y})^2 i=1n(y^iyˉ)2,其中 y ^ i \hat{y}_i y^i 是预测值, y ˉ \bar{y} yˉ y i y_i yi 的平均值,表示模型解释的数据的变异性。

T S S TSS TSS 是Total Sum of Squares(总平方和),即 ∑ i = 1 n ( y i − y ˉ ) 2 \sum_{i=1}^n (y_i - \bar{y})^2 i=1n(yiyˉ)2,其中 y ˉ \bar{y} yˉ y i y_i yi 的平均值,表示数据的总变异性。

另外,Sample Variance(样本方差)是样本数据对其均值的偏离程度的量度,计算公式为:

v a r ( y ) = 1 n − 1 ∑ i = 1 n ( y i − y ˉ ) 2 = T S S n − 1 var(y) = \frac{1}{n-1} \sum_{i=1}^{n}(y_i - \bar{y})^2 = \frac{TSS}{n-1} var(y)=n11i=1n(yiyˉ)2=n1TSS

其中,
y i y_i yi 是响应变量的第 i i i 个观察值,
y ˉ \bar{y} yˉ y i y_i yi 的平均值,
n n n 是观察值的数量。

在计算样本方差时,我们是以观察值数量减一作为分母,这也称为Bessel’s correction(贝塞尔校正),用来纠正样本方差的偏差。

MAE, MSE 和 RMSE

Mean Absolute Error

MAE(平均绝对误差)是所有单个观察值的绝对误差的平均值。绝对误差是真实值与预测值之间的差的绝对值。公式如下:

M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1nyiy^i

其中, y i y_i yi 是实际观察值, y ^ i \hat{y}_i y^i 是预测值, n n n 是观察值的数量。MAE 是一个容易理解的指标,因为它直接给出了平均误差的大小。

Mean Squared Error

MSE(平均平方误差)是所有单个观察值的平方误差的平均值。平方误差是真实值与预测值之间的差的平方。公式如下:

M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

其中, y i y_i yi 是实际观察值, y ^ i \hat{y}_i y^i 是预测值, n n n 是观察值的数量。MSE 对于较大误差给予了更大的权重,因此它更加注重避免大误差的发生。

Root Mean Squared Error

RMSE(均方根误差)是MSE的平方根。因为MSE将误差平方,所以其单位不再是原始观察值的单位,而是其平方的单位。通过对MSE取平方根,我们得到了RMSE,它的单位与原始观察值的单位相同。公式如下:

R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} RMSE=n1i=1n(yiy^i)2

其中, y i y_i yi 是实际观察值, y ^ i \hat{y}_i y^i 是预测值, n n n 是观察值的数量。RMSE 和 MSE一样,对较大的误差给予更大的权重,但它更容易解释,因为它的单位与原始数据的单位相同。

平滑方法 (Smoothing)

平滑方法主要依赖于局部平均的概念。相对于简单线性回归试图找到全局最佳拟合线,平滑方法在估计一个特定点的函数值时,会更加重视附近的数据点。

假设你想要确定在 X = x X = x X=x 时的响应变量 Y Y Y 的值。那么,对于那些对应的 X i = x i X_i = x_i Xi=xi x x x 较近的 Y i Y_i Yi,应该给予更高的权重并对它们进行平均,来估计 f ( x ) f(x) f(x) 的值。

一种通用的局部平均平滑器可以写为:

f ^ ( x ) = average ( Y i ∣ x i ∈ N ( x ) ) \hat{f}(x) = \text{average} (Y_i|x_i \in N(x)) f^(x)=average(YixiN(x))

其中,

f ^ ( x ) \hat{f}(x) f^(x) 是在 X = x X = x X=x 处的函数值的估计;
average \text{average} average 是一种广义的平均运算,可能是简单的算术平均,也可能是权重平均等;
N ( x ) N(x) N(x) x x x 的某个邻域,即一些离 x x x 较近的 x i x_i xi 的集合。

K-Nearest Neighbours

对于一个给定的输入值,找到最接近它的k个样本点,然后取这些样本点的平均值作为平滑后的预测值:

f ^ ( x ) = 1 k ∑ x i ∈ N k ( x ) y i \hat{f}(x) = \frac{1}{k} \sum_{x_i \in N_k(x)} y_i f^(x)=k1xiNk(x)yi

Symmetric Nearest Neighbourhood

Symmetric nearest neighbourhood平滑器基于一个简单的理念,即为了预测一个点的值,我们应该查看与其最接近的点,但这些点应该均匀地分布在该点的两侧。

对于一个给定的输入值 x i x_i xi,SNN平滑器找到的样本点要包括比 x i x_i xi小的 k − 1 2 \frac{k-1}{2} 2k1个最接近的样本点和比 x i x_i xi大的 k − 1 2 \frac{k-1}{2} 2k1个最接近的样本点。然后,取这些样本点的平均值作为平滑后的预测值。这个方法可以用数学公式表示为:

f ^ ( x i ) = mean [ y j  such that  max ⁡ ( i − k − 1 2 , 1 ) ≤ j ≤ min ⁡ ( i + k − 1 2 , n ) ] \hat{f}(x_i) = \text{mean} [y_j \text{ such that } \max(i - \frac{k-1}{2}, 1) \leq j \leq \min(i + \frac{k-1}{2}, n)] f^(xi)=mean[yj such that max(i2k1,1)jmin(i+2k1,n)]

其中, f ^ ( x i ) \hat{f}(x_i) f^(xi) 是平滑后的预测值, y j y_j yj 是样本点的目标值, max ⁡ ( i − k − 1 2 , 1 ) \max(i - \frac{k-1}{2}, 1) max(i2k1,1) min ⁡ ( i + k − 1 2 , n ) \min(i + \frac{k-1}{2}, n) min(i+2k1,n) 是确定取值范围的边界条件, n n n 是样本点的总数, mean \text{mean} mean 是求平均值的操作。

Regression Splines

Regression Splines 是一种非常强大的回归技术,可以用于拟合非线性关系。基本的思想是将自变量的值域分割为许多不同的区间,并在每个区间中拟合一个多项式函数。这些多项式函数被称为splines。

Cubic Spline

Cubic Spline 是最常用的一种 Spline。在每个区间,它使用一个三次多项式来拟合数据。要保证整个函数的平滑和连续,我们需要在每个knot(即区间的边界)处保证以下三个条件:

  • 函数在结处是连续的。
  • 函数在结处的一阶导数是连续的。
  • 函数在结处的二阶导数是连续的。

一个三次样条函数可以写成如下的形式:

S ( x ) = { a 1 + b 1 ( x − x 1 ) + c 1 ( x − x 1 ) 2 + d 1 ( x − x 1 ) 3 if  x ∈ [ x 1 , x 2 ] a 2 + b 2 ( x − x 2 ) + c 2 ( x − x 2 ) 2 + d 2 ( x − x 2 ) 3 if  x ∈ [ x 2 , x 3 ] ⋮ ⋮ a k + b k ( x − x k ) + c k ( x − x k ) 2 + d k ( x − x k ) 3 if  x ∈ [ x k , x k + 1 ] S(x) = \begin{cases} a_1 + b_1(x - x_1) + c_1(x - x_1)^2 + d_1(x - x_1)^3 & \text{if } x \in [x_1, x_2] \\ a_2 + b_2(x - x_2) + c_2(x - x_2)^2 + d_2(x - x_2)^3 & \text{if } x \in [x_2, x_3] \\ \vdots & \vdots \\ a_k + b_k(x - x_k) + c_k(x - x_k)^2 + d_k(x - x_k)^3 & \text{if } x \in [x_k, x_{k+1}] \end{cases} S(x)= a1+b1(xx1)+c1(xx1)2+d1(xx1)3a2+b2(xx2)+c2(xx2)2+d2(xx2)3ak+bk(xxk)+ck(xxk)2+dk(xxk)3if x[x1,x2]if x[x2,x3]if x[xk,xk+1]

在这个公式中, a i , b i , c i , d i a_i, b_i, c_i, d_i ai,bi,ci,di 是在每个区间的系数, x i x_i xi x i + 1 x_{i+1} xi+1 是每个区间的边界。

Cubic Spline 的一个主要优点是它能产生看起来非常平滑的曲线,因此可以用来拟合几乎任何函数。另一个优点是,由于它在每个区间都只使用一个三次多项式,所以它的计算复杂度相对较低。

Local Regression (Loess)

Loess是一种加权的 running-line smoother。与其它类似的方法相比,Loess的主要特点是它使用 robust 方法,而不是最小二乘法,来拟合每个局部线。因此,得到的平滑器是非线性的。

下面是一个局部常数拟合的公式,它是 LOESS 方法的一种简化版本:

f ^ ( x ) = ∑ i = 1 n Y i K ( X i − x h ) ∑ i = 1 n K ( X i − x h ) \hat{f}(x) = \frac{\sum_{i=1}^{n} Y_i K \left( \frac{X_i - x}{h} \right)}{\sum_{i=1}^{n} K \left( \frac{X_i - x}{h} \right)} f^(x)=i=1nK(hXix)i=1nYiK(hXix)

在这个公式中, f ^ ( x ) \hat{f}(x) f^(x) 是预测值, Y i Y_i Yi 是观测值, X i X_i Xi 是相应的输入值, K ( ⋅ ) K(\cdot) K() 是一个核函数, h h h 是一个参数,通常被称为窗口宽度,决定了在拟合每个点时考虑的邻近点的数量。

核函数 K K K 是一个非负函数,通常选择为距离的单调递减函数,例如高斯核或三角核。带宽 h h h 是一个需要事先确定的参数,它决定了每个点的局部区域的大小。带宽越大,平滑程度越高,但如果带宽过大,可能会丧失数据的细节信息。反之,如果带宽过小,可能会过拟合数据中的噪声。

虽然 Loess 方法对于模拟复杂的非线性关系非常有用,但它需要大量的计算,因此对于大数据集可能不太适用。此外,Loess 需要密集采样的数据,因为它依赖于每个点附近的其他点来进行平滑。

你可能感兴趣的:(机器学习,线性回归)