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

Python最小二乘拟合中如何由标准差转换为标准误?

最小二乘拟合中标准差与标准误的转换问题

首先要明确:你当前计算出的std已经是拟合参数的标准误(SE),不需要再用SE = STD/sqrt(N)的公式额外转换。

代码逻辑拆解

你给出的计算代码已经包含了最小二乘参数标准误的完整推导:

std = np.sqrt(np.diagonal(np.linalg.inv(J.T @ J) * (res_lsq.fun.T @ res_lsq.fun / (res_lsq.fun.size - res_lsq.x.size))))

其中:

  • res_lsq.fun.size:就是你疑惑的N,即数据点总数(对应每个观测值的残差数量,也就是拟合时输入的样本点个数)
  • res_lsq.x.size:待拟合的参数个数(比如拟合直线y=ax+b时,参数数量为2)
  • res_lsq.fun.T @ res_lsq.fun / (res_lsq.fun.size - res_lsq.x.size):这是残差方差的无偏估计(用残差平方和除以自由度n-p,n是数据点数量,p是参数个数)
  • np.linalg.inv(J.T @ J):参数的协方差矩阵的核心部分
  • 最终取对角线元素开平方,得到的就是每个拟合参数的标准误

关于SE = STD/sqrt(N)的误区

你记忆的这个公式是针对样本均值标准误的计算逻辑,不适用于最小二乘参数估计的场景。最小二乘参数的标准误是直接从协方差矩阵推导而来,已经包含了样本量、参数数量的校正,不需要再额外除以sqrt(N)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 12:25:04