单变量线性回归中SST≠SSR+SSE?代码实现或原理哪里出错了
单变量线性回归平方和分解异常问题解答
代码无编写错误
你写的fitEstimation函数对SST、SSR、SSE的计算完全符合标准统计定义:
- SST(总平方和):真实值相对自身均值的总波动,计算逻辑为$\sum(y_i - \bar{y})^2$
- SSR(回归平方和):预测值相对真实值均值的波动,计算逻辑为$\sum(\hat{y}_i - \bar{y})^2$
- SSE(残差平方和):预测值与真实值的偏差总和,计算逻辑为$\sum(\hat{y}_i - y_i)^2$
你代入y=[1,2,3]、y_pred=[1,2,4]得到的输出数值完全正确,不存在代码逻辑错误。
SST=SSR+SSE成立有严格前提
该平方和分解等式不是对任意预测值都成立,仅当$\hat{y}_i$是带截距项的普通最小二乘(OLS)线性回归的拟合结果时才成立。这个结论来自OLS的正规方程约束:残差项$y_i - \hat{y}_i$和预测值$\hat{y}_i$正交、且残差均值为0,展开SST的计算公式时交叉项才会抵消,最终得到SST = SSR + SSE的结果。
你测试用的y_pred=[1,2,4]并不是OLS模型对y=[1,2,3]的拟合结果,不满足上述正交约束,自然不符合平方和分解规则,属于正常情况。
正确验证示例
以x=[1,2,3]为自变量,y=[1,2,3]为因变量拟合带截距项的OLS线性回归,得到的预测值为y_pred=[1,2,3],代入你的函数得到输出:(2.0, 2.0, 0.0, 1.0),完全符合$2.0 = 2.0 + 0.0$的分解规则。
内容的提问来源于stack exchange,提问作者Akash Sonthalia
相关产品推荐
相关产品推荐

