lmfit的卡方值



我一直在尝试对一组图像进行像素到像素的拟合,即我在不同的图像中有不同波长的数据,并且我正在尝试为每个像素单独拟合一个函数。我使用lmfit进行了拟合,并获得了每个像素的未知参数值。现在,我想得到每个拟合的卡方值。我知道lmfit有一个名为chisqr的属性,它可以给我同样的属性,但让我困惑的是lmfit github网站上的这句话:请注意,卡方和归约卡方的计算假设返回的残差函数已根据数据中的不确定性进行了适当的缩放。为了使这些统计数据有意义,编写要最小化的函数的人员必须正确地缩放它们。我怀疑我从chisqr属性中得到的值并不完全正确,需要进行一些缩放。有人能解释一下lmfit是如何计算chisquare值的吗?我需要做什么缩放?

这是我的拟合函数的一个示例

def fcn2fit(params,freq,F,sigma):
colden=params['colden'].value
tk=params['tk'].value
model = greybodyfit(np.array(freq),colden,tk)
return (model - F)/sigma

colden和tk是自由参数,freq是自变量,F是因变量,sigma是F中的误差。返回(model-F(/sigma是否是缩放残差的正确方法,以便chisqr属性给出正确的卡方值?

卡方报告的值是拟合残差的平方和。Lmfit无法判断残差函数是否根据数据的标准误差进行了适当的缩放-如果使用lmfit.minimize,则必须在目标函数中进行缩放,如果使用lmfit.Model,则必须作为权重进行缩放。

最新更新