文章目录

一元线性回归模型的理论推导

一元线性回归模型也被称为简单线性回归模型,是指模型中只含有一个自变量和一个因变量,用来建模的数据集可以表示成$\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}$。其中,$x_i$表示自变量$x$的第$i$个值,$y_i$表示因变量$y$的第$i$个值,$n$表示数据集的样本量。当模型构建好之后,就可以根据其他自变量的$x$值,预测因变量$y$的值,该模型的数学公式表示为:

$$y=a+bx+\epsilon$$

其中,$a$为模型的截距项,$b$为模型的斜率项,$\epsilon$为模型的误差项,模型中的$a$和$b$统称为回归系数,误差项$\epsilon$的存在主要是为了平衡等号两边的值。

如果拟合线能够精准地捕捉到每一个点(所有的散点全部落到拟合线上),那么对应的误差项$\epsilon$应该为0.按照这个思路来看,要想得到理想的拟合线,就必须是误差项$epsilon$达到最小。由于误差项是$y$与$a+bx$的差,结果有正有负,因此误差项$\epsilon$达到最小的问题需要转换为误差平方和最小的问题(最小二乘的思路)。误差平方和的公式可以表示为:

$$J(a,b) = \sum_{i=1}^n\epsilon^2 = \sum_{i=1}^n(y_i-[a+bx_i])^2$$

由于建模时自变量值和因变量值都是已知的,因此求解误差平方和最小值的问题就是求解函数$J(a,b)$的最小值,二该函数的参数就是回归系数$a$和$b$。

该目标函数其实就是一个二元二次函数,如需是的目标函数$J(a,b)$达到最小,可以使用偏导数为0的方法求解出参数$a$和$b$,进而得到目标函数的最小值。关于目标函数求导过程如下:

step1:展开平方项

$$J(a,b) = \sum_{i=1}^n(y_i^2+a^2+b^2x_i^2+2abx_i-2ay_i-2bx_iy_i)$$

step2:设偏导数为0

\begin{cases}
\frac{ \partial J}{\partial a}=\sum_{i=1}^n(0+2a+0+2bx_i+2y_i+0)=0 \\[3ex]
\frac{ \partial J}{\partial b}=\sum_{i=1}^n(0+0+2bx_i^2+2ax_i+0-2x_iy_i)=0\\
\end{cases}

strp3:和公式转换
\begin{cases}
\frac{\partial J}{\partial a}=2na+2b\sum_{i=1}^nx_i-2\sum_{i=1}^ny_i=0 \\[3ex]
\frac{\partial J}{\partial b}=2b\sum_{i=1}^nx_i^2+2a\sum_{i=1}^nx_i-2\sum_{i=1}^nx_iy_i=0\\
\end{cases}
step4:化解
\begin{cases}
a=\frac{\sum_{i=1}^ny_i}{n}-\frac{b\sum_{i=1}^nx_i}{n} \\[3ex]
b\sum_{i=1}^nx_i^2+(\frac{\sum_{i=1}^ny_i}{n}-\frac{b\sum_{i=1}^nx_i}{n})\sum_{i=1}^nx_i-\sum_{i=1}^nx_iy_i=0\\
\end{cases}
step5:将参数$a$带入,求阶$b$
\begin{cases}
a=\bar y-b\bar x \\[3ex]
b=\frac{\sum_{i=1}^nx_iy_i-\frac 1n \sum_{i=1}^nx_i\sum_{i=1}^ny_i}{\sum_{i=1}^nx_i^2-\frac 1n(\sum_{i=1}^nx_i)^2}\\
\end{cases}
如上推到结果所示,参数$a$和$b$的值都是关于自变量$x$和因变量$y$的公式。

线性回归的python实现

statsmodels是专门用于统计建模的第三方模块,可以使用其子模块中的ols函数。

  • formula:以字符串的形式指定线性回归模型的公式,如’y~x’就表示简单线性回归模型。
  • data:指定建模的数据集。
  • subset:通过bool类型的数组对象,获取data的子集用于建模。
  • drop_cols:指定需要从data中删除的变量。

该函数虽然参数简单,但是功能十分强大,可以对模型的参数和模型本身做显著性检验、计算模型的决定系数。

Intercept                  25792.200199
YearsExperience    9449.962321
dtype: float64

 

如上结果所示,Intercept表示截距项对应的参数值,YearsExperience表示自变量工作年限对应的参数值。因此该数据中关于收入的简单线性回归模型可以表示成:

$$Salary = 25792.200199+9449.962321YearsExperience$$

回归模型的假设检验

模型的显著性检验是指构成因变量的线性组合是否有效,即整个模型中是否至少存在一个自变量能够真正影响到因变量的波动,该检验是用来衡量模型的整体效应回归系数的显著性检验是为了说明单个自变量在模型中是否有效,即自变量对因变量是否具有重要意义,这种检验则是出于对单个变量的肯定与否

模型的显著性检验和回归系数的显著性检验分别使用统计学中的F检验法和t检验法。

模型的显著性检验——F检验

在统计学中,有关假设检验的问题,都有一套成熟的步骤。应用F检验法完成模型的显著性检验,具体步骤如下:

  1. 提出问题的原假设和备择假设。
  2. 在原假设的条件下,构造统计量F。
  3. 根据样本信息,计算统计量的值。
  4. 对比统计量的值和理论F分布的值,如果计算的统计量超过理论的值,则拒绝原假设,否则需接受原假设。

下面将按照上述四个步骤对构造的多元线性回归函数进行F检验,进一步确定该模型是否可用。

步骤一:提出假设

\begin{cases}
H_0:\beta_0=\beta_1=\cdots=\beta_p=0\\[3ex]
H_1:系数\beta_0,\beta_1,\cdots,\beta_p不全为0
\end{cases}

$H_0$为原假设,该假设认为模型的所有偏回归系数全为0,即认为没有一个自变量可以构成因变量的线性组合;$H_1$为备择假设,正好是原假设的对立面,即$p$个自变量中,之煞有一个变量可以构成因变量的线性组合。就F检验而言,研究者往往是更加希望通过数据来推翻原假设$H_0$,而接受备择假设$H_1$的结论。

步骤二:构造统计量

为了便于理解F统计量的构造过程,可以先观看下图,然后掌握总的离差平方和、回归离差平方和与误差平方和的概念与差异。

假设图中的斜线代表某条线性拟合线,点$p(x,y)$代表数据集中的个某个点,则$\hat y$为点$x$处的预测照顾;$(y-\hat y)$为真实值与预测值之间的差异;$\hat y-\overline y$为预测值与总体平均值之间的差异;$(y-\overline y)$为真实值与总体平均值之间的差异。如果将这些差异向量做平方和的计算,则会得到:

\begin{cases}
ESS=\sum_{i=1}^n(y_i-\hat y_i)^2\\
RSS=\sum_{i=1}^n(\hat y_i-\overline y_i)^2\\
TSS=\sum_{i=1}^n(y_i-\overline y_i)^2
\end{cases}

如上公式所示,公式中的ESS称为误差平方和,衡量的是因变量的实际值与预测值之间的离差平方和,会随着模型的变化而变动(因为模型的变化会导致预测值$\hat y_i$的变动);RSS为回归离差平方和,衡量的是因变量的预测值与实际均值之间的离差平方和,同样会随着模型的变化而变动;TSS为总的离差平方和,衡量的是因变量的值与其均值之间的离差平方和,而其值并不会随模型的变化而变动,即它是一个固定值。

根据统计计算,这三个离差平方和之间存在这样的等式关系:$TSS=ESS+RSS$。由于TSS的值不会随模型的变化而变动,因此ESS与RSS之间存在严格的负向关系,即ESS的降低会导致RSS的增加。而线性回归模型的参数求阶是依据误差平方和最小的理论,如果根据线性回归模型得到的ESS值达到最小,那么对应的RSS值将会达到最大,进而RSS与ESS的商也会达到最大。

按照这个逻辑,便可以构造F统计量,该统计量可以表示成回归离差平方和RSS与误差平方和ESS的公式:

$$F = \frac{\frac {RSS}{p}}{\frac{ESS}{n-p-1}}\sim F(p,n-p-1)$$

其中,p和n-p-1分别为RSS和ESS的自由度。模型拟合得越好,ESS就会越小,RSS则会越大,得到的F统计亮也就越大。

步骤三:计算统计量

可以通过“fvalue”方法直接获得模型的F统计量值。

步骤四:对比结果下结论

最后一步所要做的是对比F统计量的值与理论F分布的值,可以通过查看F分布表,并依据置信水平与自由度查看对应的分布值。也可调用scipy库来计算理论分布值:

回归系数的显著性检验——t检验

模型通过了显著性检验,只能说明关于因变量的线性组合是合理的,但并不能说明每个自变量对因变量都具有显著意义,所以还需要对模型的回归系数做显著性检验。关于系数的显著性检验,需要使用t检验法,构造t统计量。接下来按照模型显著性检验的四个步骤,对偏回归系数进行显著性检验。

步骤一:提出假设

\begin{cases}
H_0:\beta_j=0,j=1,2,\cdots,p\\[3ex]
H_1:\beta_j \ne 0
\end{cases}

t检验的出发点就是验证每一个自变量是否能构成为影响因变量的重要因素。t检验的原假设就是假定第j变量的偏回归系数为0,即认为该变量不是因变量的影响因素;而备择假设则是相反的假设,认为第j变量是影响因变量的重要因素。

步骤二:构造统计量

$$t = \frac{\hat \beta_j-\beta_j}{se(\hat \beta_j)}\sim t(n-p-1)$$

其中,$\hat \beta_j$为线性回归模型的第j个系数估计值;$\beta_j$为原假设中的假定值,即0;$se(\hat \beta_j)$为回归系数$\beta_j$的标准误,对应的计算公式如下:

$$se(\beta_j)=\sqrt{c_{jj}\frac{\sum \epsilon_i^2}{n-p-1}}$$

其中,$\sum \epsilon_i^2$为误差平方和,$C_{jj}$为矩阵$(X’X)^{-1}$主对角线上第j个元素。

步骤三:计算统计量

可以直接调用”summary”方法,输出线性回归模型的各项指标值。

步骤四:对比结果下定论

 

 

回归模型的诊断

当回归模型构建好之后,并不意味着建模过程的结束,还需要进一步对模型进行诊断,目的就是使诊断后的模型更加健壮。统计学家在发明线性回归模型的时候就提出了一些假设前提,只有在满足这些假设前提的情况下,所得模型才是合理的。以下将针对如下几点假设,完成模型的诊断工作:

  • 误差项$\epsilon$服从正态分布
  • 无多重共线性
  • 线性相关性
  • 误差项$\epsilon$的独立性
  • 方差齐性

除了这五点假设外,还需要注意的是,线性回归模型对异常值是非常敏感的,即模型的构建过程非常容易受到异常值的影响,所以诊断过程中还需要对原始数据的观测进行异常点识别和处理。

正态性检验

 

1.直方图法

 

2.PP图与QQ图

 

3.Shapiro检验和K-S检验

 

多重共线性检验

 

线性相关性检验

 

异常值检验

 

1.帽子矩阵

2.DFFITS准则

 

3.Cook距离

 

独立性检验

 

方差齐性检验

 

1.图形法

 

2.BP检验