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

如何在Python中通过最优曲线拟合求数据与拟合线的标准差?

线性拟合后数据与拟合线的标准差计算方法

你当前使用的代码已经是相当直接的实现方式,但还有几种更贴合拟合流程或更灵活的方法:

  • 计算无偏估计的残差标准差
    统计中常使用除以n-p(n为数据点数量,p为拟合参数个数,线性拟合时p=2)的无偏样本标准差,而非np.std默认的总体标准差(除以n)。可以通过两种方式实现:

    y_model = f_model(x_data, *popt)
    residuals = y_model - y_data
    # 方式1:通过残差平方和计算
    stdev_unbiased = np.sqrt(np.sum(residuals**2) / (len(residuals) - len(popt)))
    # 方式2:给np.std加ddof参数直接获取
    stdev_unbiased = np.std(residuals, ddof=1)
    
  • 借助statsmodels的拟合结果直接获取
    如果你用statsmodels库做线性回归,拟合结果会直接提供残差的标准差,无需手动计算:

    import statsmodels.api as sm
    # 添加截距项
    X = sm.add_constant(x_data)
    model = sm.OLS(y_data, X).fit()
    # 获取残差的样本标准差
    stdev = model.resid.std()
    
  • 简化现有代码的可读性
    把残差计算和标准差计算拆分,代码逻辑更清晰,本质和你原代码一致:

    y_model = f_model(x_data, *popt)
    stdev = np.std(y_model - y_data)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:21:26