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

如何在Python中计算SSR?线性回归模型平方和求解及代码验证

线性回归平方和(SSR、SSE、SST)计算与代码验证

问题描述

已训练线性回归模型:

reg = linear_model.LinearRegression()
reg.fit(X, Y)

需要计算三种平方和:SST(总平方和)、SSR(回归平方和)、SSRES(又称SSE,残差平方和),已实现SSE的计算:

y_pred = reg.predict(X)
df = pd.DataFrame({'Actual': Y, 'Predicted':y_pred})
  
print('SS_Res : '+ str(np.sum(np.square(df['Actual']-df['Predicted']))))

想知道SSR的代码实现方式,同时验证自己编写的下述代码是否正确:

y_pred = reg.predict(X)
y_mean = np.mean(Y)
df = pd.DataFrame({'Actual': Y, 'Predicted':y_pred, 'mean':y_mean})
  
print('SS_Res : '+ str(np.sum(np.square(df['Actual']-df['Predicted']))))
print('SS_R : '+ str(np.sum(np.square(df['Predicted']-df['mean']))))

解答

你编写的SSR计算代码是完全正确的。

SSR的定义为模型预测值与因变量均值的差的平方和,公式为:

SSR = Σ(ŷᵢ - ȳ)²

其中ŷᵢ是模型预测值,ȳ是因变量Y的平均值。你的代码中:

  • 先通过np.mean(Y)计算出Y的均值y_mean
  • 再通过np.sum(np.square(df['Predicted']-df['mean']))计算预测值与均值的差的平方和,完全匹配SSR的定义。

关于SST的计算

正如你所说,SST可以通过SST = SSR + SSE推导得出,也可以直接根据定义(总平方和是实际值与均值的差的平方和)实现:

print('SS_T : '+ str(np.sum(np.square(df['Actual']-df['mean']))))

内容的提问来源于stack exchange,提问作者Kev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:50:33