ols最小二乘法是什么|OLS最小二乘法是如何推导的

本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com

《老饼讲解-机器学习》--一个免费、专业、全面的机器学习网站icon-default.png?t=N7T8https://www.bbbdata.com


目录

   一. 可解线性方程   

 01.问 题    

02.解决方法   

   二. 不可解情况-最小二乘问题   

01.问 题  

02.求解公式   

   三. 最小二乘解的公式推导   

推导思路   

(一) 微方分方向推导过程   

(二) 代数最佳迫近思想   

两种推导方法的比较   

   四. QR分解优化最小二乘计算量  

01.为什么要优化   

02.什么是QR分解  

03.QR分解优化最小二乘解公式   


在机器学习的线性求解中,线性方程组往往不可解,
我们更多时候是求取一个最小二乘解,称为OLS(ordinary least squares)最小二乘法
最小二乘解公式因此成为机器学习的一个常用公式,
本文介绍什么是最小二乘解、最小二乘解的公式,
和最小二乘解公式的两种推导。
最后,讲解QR分解如何优化最小二乘解的实际计算。

   一. 可解线性方程   


 01.问 题    

 已知A,b,求一个x,使得 Ax =b
这里的A,x,b的大小分别为: 
 A : m*n矩阵     
x : n*1列向量  
b : m*1列向量 

02.解决方法   

在可解的情况下,
只要在左右两边乘以X的逆矩阵,
即 有:x=bA^{-1}


   二. 不可解情况-最小二乘问题   


01.问 题  

当以上问题不可解时,即不存在这样一个 x 使Ax=b,

则退而求其次,
求一个 x,使 Ax -b 的平方误差和最小
即 Ax 最佳迫近 b
该问题称为最小二乘问题

02.求解公式   

上述问题求解公式为:
x=(A^TA)^{-1}A^Tb
该公式称为最小二乘解公式


   三. 最小二乘解的公式推导   


推导思路   

公式推导有两个方向,
第一个是微积分方向,对总误差函数求偏导,令偏导为0,再联立解出x。
第二个方向是利用代数中的最佳迫近原理。

(一) 微方分方向推导过程   

1.误差函数为:

\begin{aligned} \textbf{E}(x)=& \sum \limits _{i=1}^{m}(A_ix-b_i)^2 \\ =& (Ax-b)^T(Ax-b) \end{aligned}


 

2 . 求误差函数对x的偏导
 先求单个x分量的偏导

\begin{aligned} \dfrac{\partial E(x)}{\partial x_k}= & \dfrac{\partial\sum \limits _{i=1}^{m}(A_ix-b_i)^2 }{\partial x_k} \\ =& \sum \limits _{i=1}^{m}\dfrac{\partial(A_ix-b_i)^2 }{\partial x_k} \\ =& \sum \limits _{i=1}^{m}2(A_ix-b_i)\dfrac{\partial(A_ix-b_i)}{\partial x_k} \\ =& \sum \limits _{i=1}^{m}2(A_ix-b_i)A_{ik} \\=&2(Ax-b)^TA_{k_{col}} \end{aligned}


则对x的总偏导为:
 

\dfrac{\partial E(x)}{\partial x} = (2(Ax-b)^TA)^T = 2A^T(Ax-b)

3 . 令偏导为0,联立解得x
令偏导为0,则可求得:
 

\begin{aligned} \dfrac{\partial E(x)}{\partial x} &= 2A^T(Ax-b) = 0 \\ &\Rightarrow 2A^TAx-2A^Tb = 0 \\ &\Rightarrow A^TAx =A^Tb \\ &\Rightarrow x =(A^TA)^{-1}A^Tb \end{aligned}

即有上述求解公式:  
 

x=(A^TA)^{-1}A^Tb


(二) 代数最佳迫近思想   

由Ax是对b的最佳迫近,可得Ax-b与A构成的空间垂直。
图解如下:


Ax-b与A构成的空间垂直(即与A的每列的点积为0),即有:

A^T(Ax-b)=0


即可推出:
 

\begin{aligned} & A^T(Ax-b) = 0 \\ \Rightarrow & A^TAx-A^Tb = 0 \\ \Rightarrow &A^TAx =A^Tb \\ \Rightarrow & x =(A^TA)^{-1}A^Tb \end{aligned}

两种推导方法的比较   

微分方法推导过程较为复杂,
但思路简洁,
对知识起点要求较低。
而代数方法,
在了解代数的基础上,基本就是一步到位, 
随时手推,不必记公式。


   四. QR分解优化最小二乘计算量  


01.为什么要优化   

最小二乘解公式x =(A^TA)^{-1}A^Tb需 要计算A^TA的逆矩阵,计算上会较为复杂,
更多时候,会使用QR分解来简化  x =(A^TA)^{-1}A^Tb,
使用QR分解,可以避开直接求A^TA的逆矩阵。

02.什么是QR分解  

👉QR分解简单来说是指:
m*n列满秩矩阵A,可将其分解为列正交矩阵与三角矩阵的积,即:

A_{m*n} = Q_{m*n}*R_{n*n}


其中   Q列与列之间两两正交,R则为非奇异上三角矩阵。

03.QR分解优化最小二乘解公式   

将A进行QR分解,则
 

\begin{aligned} x =&(A^TA)^{-1}A^Tb \\A^TAx =&A^Tb \\(QR)^T(QR)x =&(QR)^Tb \\R^TQ^TQRx =&R^TQ^Tb \\R^TRx =&R^TQ^Tb \\Rx =&Q^Tb \\x =&R^{-1}Q^Tb \end{aligned}


R是一个上三角,计算逆矩阵更容易。 
因此,用计算机计算最小二乘解,
更多时候是将A进行QR分解,
然后用公式x =R^{-1}Q^Tb求得最小二乘解


 相关文章

《入门篇-环境搭建:anaconda安装》

《​​​​​​入门篇-模型:逻辑回归》

《入门篇-模型:决策树-CART》

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了使用OLS算法估计股票,我们需要先获取股票的价格数据和一些基本面数据,例如市值、收益率等。然后,我们可以使用Python中的statsmodels包中的OLS函数来估计每只股票的回归模型。下面是一段估计任意十支股票的回归模型的Python代码示例: ```python import pandas as pd import numpy as np import statsmodels.api as sm # 获取股票价格数据和基本面数据 stock_prices = pd.read_csv('stock_prices.csv') fundamental_data = pd.read_csv('fundamental_data.csv') # 合并股票价格数据和基本面数据 data = pd.merge(stock_prices, fundamental_data, on='ticker') # 选取任意十支股票 stocks = ['AAPL', 'GOOGL', 'MSFT', 'AMZN', 'FB', 'JPM', 'WMT', 'V', 'JNJ', 'PG'] data = data[data['ticker'].isin(stocks)] # 计算每只股票的收益率 data['returns'] = data.groupby('ticker')['adj_close'].pct_change() # 定义回归模型 model = sm.formula.ols('returns ~ market_cap + pe_ratio + pb_ratio + dividend_yield', data=data) # 估计回归模型 results = model.fit() # 打印回归结果 print(results.summary()) ``` 在这段代码中,我们首先使用pandas包中的read_csv函数加载股票价格数据和基本面数据,然后将它们合并到一起。接下来,我们从中选取任意十支股票,并计算它们的收益率。然后,我们使用statsmodels包中的ols函数定义回归模型,并使用该模型估计每只股票的回归系数和截距。最后,我们打印出回归结果,包括每只股票的回归系数、标准误、t值、p值和置信区间等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值