You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中LINEST函数与OLS矩阵公式计算Beta的结果差异及修正

问题:Excel中OLS矩阵公式与LINEST结果不一致的修正方法

输入图片描述

我正在Excel中计算金融数据的Beta值,超额股票收益与市场收益分别位于不同列,仅需求解回归线的斜率。采用的两种方法如下:

  • 方法1:=LINEST(I2:I254,K2:K254)
  • 方法2:=(MMULT(MINVERSE(MMULT(TRANSPOSE(K2:K254), K2:K254)),MMULT(TRANSPOSE(K2:K254),I2:I254)))

第二种方法为普通最小二乘法(OLS)矩阵形式,但两种方法的结果存在细微差异,请问如何修改矩阵乘法公式以匹配Linest的输出结果?


修正方案

差异的核心原因是:LINEST默认会在回归模型中包含截距项,而你当前的矩阵公式是假设模型无截距(强制过原点),两者的回归设定不一致。要让矩阵公式匹配LINEST的结果,需要构造包含常数项的设计矩阵,具体修改如下:

修改后的矩阵公式

=INDEX(MMULT(MINVERSE(MMULT(TRANSPOSE(CHOOSE({1,2},1,K2:K254)), CHOOSE({1,2},1,K2:K254))), MMULT(TRANSPOSE(CHOOSE({1,2},1,K2:K254)), I2:I254)), 2)

公式说明

  1. 构造设计矩阵:CHOOSE({1,2},1,K2:K254)会生成一个n×2的矩阵,第一列全为1(对应回归模型的截距项),第二列是市场收益数据,和LINEST默认使用的回归模型结构一致。
  2. OLS矩阵运算:(X'X)^-1 X'y的计算逻辑会输出截距和斜率两个结果,用INDEX(...,2)提取第二个值,也就是我们需要的Beta(回归线斜率)。
  3. 验证逻辑:如果你不需要截距项,可将LINEST公式改为=LINEST(I2:I254,K2:K254,FALSE),此时它会和你原来的矩阵公式结果完全一致,这也反向验证了差异的根源是截距项的设置。

内容的提问来源于stack exchange,提问作者Mihir Ravindra Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:49:50