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

高斯拟合约化卡方值远小于1的拟合技术问题咨询

拟合优度评估问题说明

开展拟合优度评估过程中发现指标异常:已知*约化卡方(原文笔误写为reduced R²)*用于表征拟合优度,理想取值应在1附近,但本次拟合得到的约化卡方值仅为0.033,现有3个待解决的技术问题:

  • 当前拟合模型中纳入实验数据不确定度的处理方式是否正确?
  • 如何调整缩放规则使约化卡方值趋近于1?查阅资料得知需选用更合理的缩放方式,若同时处理多个拟合模型,应当对每个模型独立缩放,还是所有模型采用统一缩放标准?
  • 除约化卡方、决定系数(Coefficient of determination)外,还有哪些统计参数可用于多个候选拟合模型间的最优模型判定?
实现代码与实验数据
import numpy as np
from lmfit import Minimizer, Parameters, fit_report
import scipy.constants as sc

x=np.array([-0.55140294, -0.53524022, -0.51157048, -0.46087502, -0.36867469,
       -0.36463724, -0.33394184, -0.31759441, -0.24301006, -0.19108247,
       -0.17992331, -0.15978266, -0.12565861, -0.06353306, -0.03416749,
        0.        ,  0.05381462,  0.05741924,  0.12256307,  0.13431629,
        0.15070565,  0.24975708,  0.30714032,  0.36017666,  0.36062918,
        0.44028426,  0.46225328,  0.49792282,  0.51374084,  0.54654304,
        0.5681194 ])
Data=np.array([3.10022439e-07, 5.28936553e-07, 1.08389150e-06, 4.51866520e-06,
       4.03761662e-05, 4.51393005e-05, 8.40351313e-05, 1.11528073e-04,
       3.84782855e-04, 7.40352481e-04, 8.34990761e-04, 1.01873368e-03,
       1.31826299e-03, 1.85815838e-03, 2.02222472e-03, 2.09575003e-03,
       1.98385694e-03, 1.91161400e-03, 1.40295968e-03, 1.28660846e-03,
       1.12519421e-03, 3.50500171e-04, 1.43286865e-04, 5.16806731e-05,
       4.98973395e-05, 8.13812022e-06, 4.47760445e-06, 1.66754498e-06,
       1.07843394e-06, 3.95451986e-07, 1.97595319e-07])
uncertainities=np.array([3.45420178e-06, 3.69177339e-06, 4.15460196e-06, 5.79355068e-06,
       1.25738539e-05, 1.30260341e-05, 1.69780223e-05, 1.94687535e-05,
       3.41877881e-05, 4.68776601e-05, 4.97061736e-05, 5.47758901e-05,
       6.29249004e-05, 7.43568853e-05, 7.73802945e-05, 7.85165928e-05,
       7.49519891e-05, 7.44931618e-05, 6.24757861e-05, 5.97435073e-05,
       5.57673389e-05, 3.15179837e-05, 2.03474708e-05, 1.29556740e-05,
       1.29044986e-05, 6.53164560e-06, 5.52338978e-06, 4.36260354e-06,
       3.99640819e-06, 3.45133957e-06, 3.21225716e-06])

def fGaussian(x,sig,A,xc,y0):
    y=A/((2*sc.pi)**0.5*sig)*np.exp(-(x-xc)**2/(2*sig**2))+y0
    return (y)

def fcn2min_fGauss(params, x, data, uncertainities):
    sig = params['sig']
    A= params['A']
    xc= params['xc']
    y0= params['y0']
    model = fGaussian(x,sig,A,xc,y0)
    return (model - data)/uncertainities

# 初始化高斯拟合参数
params_fGauss= Parameters()
params_fGauss.add('sig', value=10**-3, min=0)
params_fGauss.add('A', value=10**-4, min=0)
params_fGauss.add('xc', value=0, min=0)
params_fGauss.add('y0', value=0, min=0)
print ('******************** Gauss Parameters **********************')
params_fGauss.pretty_print()
print ('************************************************************')

print('fitters initiation')
fcn_args=(x, Data,uncertainities)
fitter_fGauss = Minimizer(fcn2min_fGauss, params_fGauss, fcn_args=fcn_args,nan_policy='propagate')

# 采用信赖域反射法执行最小二乘最小化
result_least_squares_Gauss = fitter_fGauss.minimize(method='least_squares',jac='3-point',loss='soft_l1')
print('fGauss fit report ---------------------------------')
print(fit_report(result_least_squares_Gauss))
拟合输出报告
[[Fit Statistics]]
    # fitting method   = least_squares
    # function evals   = 37
    # data points      = 31
    # variables        = 4
    chi-square         = 0.91407466
    reduced chi-square = 0.03385462
    Akaike info crit   = -101.238737
    Bayesian info crit = -95.5027884
[[Variables]]
    sig:  0.13202573 +/- 2.6268e-04 (0.20%) (init = 0.001)
    A:    6.9992e-04 +/- 1.6989e-06 (0.24%) (init = 0.0001)
    xc:   0.00130681 +/- 3.3337e-04 (25.51%) (init = 0)
    y0:   1.4545e-24 +/- 2.4519e-07 (16857606207555559424.00%) (init = 0)
[[Correlations]] (unreported correlations are < 0.100)
    C(sig, y0) = -0.314
    C(A, y0)   = -0.149
    C(sig, xc) =  0.124
    C(sig, A)  =  0.115

数据与拟合曲线示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:30:51