michael 2007-11-20 13:20
拟合中的 Dependency 和 Overparameterized
(这个之前写于研学论坛,问题颇具有普遍性,故转载在这里,偷个懒)
Origin 的 Fitter 对话框中有个 Dependency 选项(见下图),很多朋友不知道什么意义,也没有留意,其实这个值表明了拟合的模型是否过参数化了(overparameterized)。
先看一个例子:
y = a+b*x (1)
这是最简单的线性模型。但如果把上面的模型定义为:
y = a+b+c*x (2)
会怎么样呢?公式 (2) 就属于过参数化的模型。(2) 中的 a 和 b 其实可以合成一个参数,而拟合这样类似的模型的时候,a、b 可以取任意值,也就是说,如果 a 变了,b 也跟着变,那我们就无法找到一个固定的 a、b 值。这样,就是过参数化了。
Depedency of Parameters 就是衡量 overparameterization 的程度。其取值范围是 [0, 1],越接近 1,则越表明该参数有可能过参数化了。这个时候,用户就要考虑拟合的模型是否正确了,是否可以简化模型,除去一些参数。
大多数情况下,过参数化的模型都应该认真审视,但并不是所有的过参数化的模型都是坏的模型。比如说,绝大多数的指数方程都是这样的模型 (参见 Exponential 下的所有的 Functions)。例如,Origin 的 ExpDecay1 方程:
y = y0 + A1*exp(-(x-x0)/t1) (3)
这里,A1 、x0 和 t1 就是属于过参数化的参数(数学上我们总能把 t1 拿出来,与 A1 合并)。用户可以拿 \Samples\Data\Expdecay.dat 这个数据来拟合一下,可以看到这些参数的 Dependency 值都很高。但这些值是有物理意义的,尽管 overparameterization 了,但我们却不能删除某个参数。这个时候,一种办法是用户固定下某个值(看到 Vary 那个 check box 了吗?),来减少 Dependency 的程度。
拟合是一个复杂的过程,涉及的问题很多。得到拟合参数的数值只是拟合过程中的一小部分。用户应该对自己研究的模型有充分的了解,才能在实际应用中知道应该怎么处理。 一句话,多看 paper 才是王道。
[attach]1423[/attach]