实验数据最简单、最常用的处理方法 ——可借助于AI对实验数据据建模

原创 作者 士戎


  在科学探究中,只要涉及具体实验,一般都会涉及实验数据(定性实验可能除外),当然要进行数据处理(找到数据的规律),所以对实验数据的处理,即建模是科学探究中必备的技能。在比较简单的情况下,我们所说的数据处理可以说就是对实验数据进行“拟合”(把零(离)散的实验数据连成一条线或曲面,使得在没有做实验的点的结果可以通过拟合成的曲线(面)给出)。

  我们在上一篇文章《最简单的数量规律—关于弹性定律的探究》中对实验数据,即分别将5、10、15、20克重的砝码挂在弹簧的一端(另一端固定)时弹簧依次被拉长1、2、3、4厘米。我们假定这些数据(5,1),(10,2),(15,3),(20,4)在一条直线上,或它们是线性关系,于是我们直接将它们代入直线方程去确定方程的系数(模型的参数),得到。在让同学们自己用自己的实验数据来检验这个关系时说道:(把数据代入公式)如果不完全相同时就跟同学们解释是测量数据的误差。其实这种做法和说法有一定的问题。一方面,我们对自己的数据(5,1),(10,2),(15,3),(20,4)完全相信它就是精确的数据,可以直接带到中去求解参数。实际上我们的数据也是我们测量得到数据,与同学们的数据是一样的也可能(甚至一定)带有误差。而我们(为了简单)直接用我们的数据去求解模型的参数,而把同学们得到的数据则认为不精确,有误差。比较合理的做法是将我们的数据与同学们的数据一样看待,在建立模型(在此就是求解模型参数,我不断地变换词汇是慢慢地让大家接受这次词汇的意思和关系)时不能认为我们的数据就是十分精确的。另一方面,有时在实验中即使我们测量的数据是“十分精确”的,如(5,1.01),(10,2),(15,3.003),(20,4),它们不在一条直线上,而我们为了某种目的(比如说是为了简单起见)就是要用一条直线来拟合它们。这听起来矛盾,它们明明不在一条直线上,而我们一定要用直线去拟合它们!这时“拟合”的意思不再是做一条直线使得它过上述四点,因为这是不可能的!现在“拟合”的意思是做一条直线(不一定要过这些点),使得该直线与这些点的“距离”最小,即使得这些点距离要做的直线最近。这种方法叫“最小二乘方法”,最初是高斯在给大地测量、建立地面模型时发明的(有人说不是高斯发明的,是高斯完善的)。

  1、最小二乘方法

  问题的(一种)提法是这样的:对于,求,使得最小。若使用分析的方法,对求关于的偏导数且令其为零,则,代入数据即可求解。(在构思本文时想尽可能地写的详细,举例子来说明,但后来改主意了,本文后面读者会看到问题求解很容易借助AI来做)问题的求解方法很容易找到,在此就不再赘述。

  例1、我们在前文《最简单的数量规律》中实验数据若用最小二乘方法建模求解,就是将数据(5,1),(10,2),(15,3),(20,4)代入求解,仍然得到,即拟合的直线仍然是。如果我们做实验得到对数据是(5,1.01),(10,2),(15,3.003),(20,4),我们就没有办法直接将它们代入去确定参数(因为它们根本就不在一条直线上)。这时我们使用最小二乘方法,其结果为。这个结果虽然与不同,但是它仍然是一条直线,即弹性符合线性关系。

  2、广义最小二乘方法

  在对某些对象的探究实验中,当我们测量到的实验数据很明显不在一条直线上时一定要用直线去拟合数据,即非得用一条直线去表示这些数据是不合适的。这时我们可以采用曲线去拟合。设我们的数据(我们猜测是这样)满足,即有,其系数待求。若记,则有,当诸中有三个互不相同时可逆。于是(在此我们使用的是代数的方法求解了二次三项式的系数。当然对1也可以用代数的方法)。

  要用三次或三次以上的多项式去拟合数据的方法同二次多项式是一样的,但是要求(独立)数据的组数不少于要拟合的多项式的次数。

  对于实验数据的拟合,是采用最小二乘方法(拟合成一条直线)还是采用广义最小二乘方法(拟合成一条曲线)?首先是要对数据进行观察、预判,或结合实验对象的物理特性进行判断,当然还依赖于经验。实际上在科学研究中这是一项比较困难的工作(如当年对黑体辐射实验数据的处理)。我们现在接触的都是非常简单的对象,实验数据也相对简单,如将实验数据描绘在坐标纸上,如数据基本上形成的是直线,就用直线去拟合,如明显地不在一条直线上,就用曲线去拟合。除非我们得到一个线索,数据符合某个曲线的特征,否则我们就先从最简单的二次曲线开始去试验。

对上述方法我们可以手工计算或者通过计算机的程序实现。


  3、将AI作为工具对实验数据拟合 

  大语言模型的能力很强,可以使得我们将我们的实验数据“交给”大语言模型去处理。比如将它交给最常用的豆包AI去处理。

  1)对前文《最简单的数量规律》中的实验数据做拟合。 我们在豆包AI下输入“请对(5,1),(10,2),(15,3),(20,4)用最小二乘方法拟合并给出程序”。它进行了分析和计算,最后给出了程序和最后的拟合结果。截图如下:

  2)对另一组数据的拟合。我们在豆包AI下输入“请对(5,1.01),(10,2),(15,3.003),(20,4)用最小二乘方法拟合并给出程序”,豆包给出了程序和拟合结果。截图如下:

图片


  3)我们在豆包AI下输入“请对(5,1.01),(10,2),(15,3.003),(20,4)用广义最小二乘方法拟合成二次曲线并给出程序”。豆包给出程序和拟合结果:。截图如下:

图片

图片

图片


  读者可能有些疑惑,同一组数据用一次直线,二次曲线都可以去拟合,在实际中我们到底应该怎么样去做。这一个好问题!实验数据是一个“客观”的存在(如果你对实验过程中的测量是比较认真的,方法正确),如何看待这些数据则是由我们自身对对象的认知、对数据的看法,经验等因素决定。如果我没有任何经验或者特别的看法,则必须去试试看。对于上述的实验数据,教师是知道数据符合线性关系,当然就要用直线去拟合。如我们不知道,则可以(从最简单的直线开始)用直线去拟合看看误差(豆包会给出拟合误差——用拟合出来的公式再去计算你原来数据中的数值,并与其做差)。再看看用二次曲线去拟合,然后看看误差,比较后决定选择直线拟合或者二次曲线拟合。显然,所得到的结论也是暂时的。

  实际上我们也可以将这个问题交给AI(当然有时可能不管用)。我们在豆包界面下输入“请对(5,1.01),(10,2),(15,3.003),(20,4)做你认为最好的拟合并给出程序”。

  豆包首先对我们所说的“最好”进行理解,它认为我所说的“最好”拟合就是“最小误差”拟合。基于上面它进行的计算,对比了一次直线和二次曲线拟合的误差后给出了结论:线性拟合就是我说的最好拟合,“其残差分布均匀且接近于0”。截图如下:


图片

图片

  我们上面讨论了用最简单的最小二乘方法对探究教学中的实验数据进行处理,即对实验数据进行拟合(成公式,或者实验规律,做这一步是我们认为或者假设实验数据满足该规律,没有“做过的实验的数据也满足该规律”),以得到没有做过实验的“实验数据”,即可以用该公式预测我们的实验结果。

  还有一点,就是任何数据的拟合我们要讨论实际的数据与拟合得到的数据的误差问题,你不知道误差是多少,你不告诉人家误差是多少,则一是我们可能不知道我们说的是什么,再一个谁敢用你的公式呢?所以误差的问题是一个很重要的问题,以后再讨论。


原文地址:https://mp.weixin.qq.com/s/RqnQPu2HrdMmlVTzMRqBzQ