数据学习
登录
注册
原创博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
AI模型
AI模型概览
预训练模型
数据推荐
网址导航
我的网址导航
程序员必备网站
普通最小二乘法(Ordinary Least Squares,OLS)的详细推导过程
标签:
#优化#
#回归#
#最小二乘法#
#机器学习#
时间:2018/10/12 10:50:21
作者:小木
在统计学中,普通最小二乘法(OLS)是一种用于在线性回归模型中估计未知参数的线性最小二乘法。 OLS通过最小二乘法原则选择一组解释变量的线性函数的参数:最小化给定数据集中观察到的因变量(被预测变量的值)与预测变量之间残差的平方和。这篇博客将简要描述其参数的求解过程(模型的表示参考:[最小二乘法简介](https://www.datalearner.com/blog/1051539222770649 "最小二乘法简介"))。 我们以一个二元数据为例,假设有一组数据$X=\\{(x\_1,y\_1),\cdots,(x\_m,y\_m)\\}$,我们希望求出一条直线,来拟合这一组数据: ```math y = x\beta + \beta_0 ``` 残差平方和: ```math S(\beta) = \sum_{i=0}^m (y_i - x_i\beta - \beta_0)^2 ``` 我们要求出$\beta$和$\beta\_0$使得上述目标函数取得最小值,显然,可以通过对$\beta$和$\beta\_0$分别求偏导得到: ```math \begin{aligned} \frac{\partial S(\beta)}{\partial\beta} &= \sum_{i=1}^m2(y_i-x_i\beta-\beta_0)(-x_i) \\ \\ & = \sum_{i=1}^m(-2)(x_iy_i - x_i^2\beta - \beta_0x_i) \\ \\ & = 2\sum_{i=1}^m(x_i^2\beta+\beta_0x_i - x_iy_i) \\ \end{aligned} ``` ```math \begin{aligned} \frac{\partial S(\beta)}{\partial\beta_0} &= \sum_{i=1}^m2(y_i-x_i\beta-\beta_0)(-1) \\ \\ & = \sum_{i=1}^m(-2)(y_i - x_i\beta - \beta_0) \\ \\ & = 2\sum_{i=1}^m(x_i\beta+\beta_0 - y_i) \\ \\ & = 2(m\beta \frac{\sum_{i=1}^m(x_i)}{m} + m\beta_0 - m\frac{\sum_{i=1}^my_i}{m}) \\ \end{aligned} ``` 令$\bar{x} = \frac{\sum\_{i=1}^m(x\_i)}{m}$,$\bar{y}=\frac{\sum\_{i=1}^my\_i}{m}$ 那么,上述第二个偏导结果: ```math \frac{\partial S(\beta)}{\partial\beta_0} = 2 m (\beta \bar{x} + \beta_0 - \bar{y}) ``` 令第二个偏导等于0: ```math \begin{aligned} 2 m (\beta \bar{x} + \beta_0 - \bar{y}) &= 0 \\ \\ \beta_0 = \bar{y} - \beta\bar{x} \end{aligned} ``` 令上述第一个偏导结果等于0,并带入上述$\beta\_0$有: ```math \begin{aligned} \frac{\partial S(\beta)}{\partial\beta} &= 0\\ \\ 2\sum_{i=1}^m[x_i^2\beta+(\bar{y} - \beta\bar{x})x_i - x_iy_i] &= 0 \\ \\ \beta(\sum_{i=1}^mx_i^2 - \bar{x}\sum_{i=1}^mx_i) &= \sum_{i=1}^mx_iy_i - \bar{y}\sum_{i=1}^mx_i \\ \\ \beta &= \frac{\sum_{i=1}^mx_iy_i - \bar{y}\sum_{i=1}^mx_i}{\sum_{i=1}^mx_i^2 - \bar{x}\sum_{i=1}^mx_i}\\ \\ \beta &= \frac{\sum_{i=1}^mx_iy_i - \bar{y}\sum_{i=1}^mx_i - m\bar{y}\bar{x} + m \bar{y}\bar{x}}{\sum_{i=1}^mx_i^2 - 2\bar{x}\sum_{i=1}^mx_i+ \bar{x}\sum_{i=1}^mx_i} \\ \\ \beta &= \frac{\sum_{i=1}^mx_iy_i - \bar{y}\sum_{i=1}^mx_i - \sum_{i=1}^my_i\bar{x} + m \bar{y}\bar{x}}{\sum_{i=1}^mx_i^2 - 2\bar{x}\sum_{i=1}^mx_i+ m\bar{x}^2} \\ \\ \beta &= \frac{\sum_{i=1}^m(x_iy_i - \bar{y}x_i - y_i\bar{x} + \bar{y}\bar{x})}{\sum_{i=1}^m(x_i - \bar{x})^2} \\ \\ \beta &= \frac{\sum_{i=1}^m(x_i-\bar{x})(y_i - \bar{y})}{\sum_{i=1}^m(x_i - \bar{x})^2} \\ \end{aligned} ``` 这样,$\beta$和$\beta_0$就可以求出来了。 对于多元形式,则可以运用矩阵运算来求解。如上所述,我们的目标函数是: ```math S(\bold{\beta}) = \sum_{i=1}^m |y_i - \sum_{j=1}^n x_{ij}\beta_j|^2 = ||y- \bold{X} \bold{\beta}^T||^2 ``` 如果要使上述目标函数最小,显然其结果为0,即: ```math y- \bold{X} \bold{\beta}^T = 0 ``` 也就是说: ```math \begin{aligned} \bold{X}\beta^T &= y \\ \\ \bold{X}^T\bold{X}\beta^T &= \bold{X}^Ty \\ \\ (\bold{X}^T\bold{X})^{-1}\bold{X}^T\bold{X}\beta^T &= (\bold{X}^T\bold{X})^{-1}\bold{X}^Ty \\ \\ \beta^T &= (\bold{X}^T\bold{X})^{-1}\bold{X}^Ty \\ \end{aligned} ``` 也就是说,普通最小二乘法在多元情况下只要求出上述矩阵计算的结果即可。不需要迭代。
相关博客
最热博客