问题的提出

我们最小二乘法是来拟合线性函数的,但是自然界更多的是非线性的现象,这就需要使用非线性的函数来拟合,在确定拟合函数的形式后,经过线性化处理,即可用最小二乘法得到拟合系数。在《概率论与数理统计教程》中给出了很多非线性的函数。

双曲线函数 \(\dfrac{1}y=a+\dfrac{b}{x}\)

幂函数 \(y=ax^b\)

指数函数 \(y=ae^{bx}或y=ae^{\frac {b} {x}}\)

对数函数\(y=a+b\mathrm{ln}x\)

S型曲线$ y=\dfrac1{a+be^{-x}}$

总的来说,选择是非常多。正好我这学期也在做的SRT项目需要计算变压器的铁耗,这就是个根据实验数据做非线性拟合的过程。而广泛采用的steinmentz经验公式法是用幂函数进行拟合的。为什么使用幂函数耦合呢?其他领域的非线性曲线拟合也是采用幂函数吗?带着这个问题,我进行了调研。

hedonic模型

令我意外的是,在很多的领域,对未知性质的非线性曲线的拟合都是采用幂函数形式。在经济学领域,这种方法有个专门的名字——hedonic模型。

Hedonic模型最初是1928年Waugh在文章 《影响蔬菜价格的质量因素》(Quality Factors Influencing Vegetable Prices)中提出用来研究蔬菜价格的。Griliches 和 Rosen随后将其用于汽车价格的预测,他们的文章得到了广泛的关注,自此以后Hedonic模型被广泛的运用在耐用品的价格预测领域,尤其是房地产领域。

Hedonic模型的具体形式

Hedonic模型的基本形式

在考察一个指标P时,如果这个指标受到多方面因素的影响,可以用一个函数来建模

\(P=h\left(X_{1}, X_{2}, X_{3} \ldots X_{n}\right)\)

最简单的函数形式是

\(P=\alpha+\beta_{1} X_{1}+\beta_{2} X_{2}+\ldots+\beta_{n} X_{n}\)

不过这种简单的线性函数无法准确地预测指标P的变化,Hedonic模型决定采用幂函数的形式进行拟合

\(P=\alpha X_{1}^{\beta_{1}} X_{2}^{\beta_{2}} \ldots X_{n}^{\beta_{n}}\)

两边取对数,写为

\(L n P=\alpha+\sum \beta_{i} L n X_{i}\)

这样就可以用最小二乘法算出\(\alpha与\beta_{i}\)了,下面举\(L n P=\alpha+ \beta_{1} L n X_{1}+\beta_{2} L n X_{2}为例\)

函数记作\(Y_{i}=\beta_{0}+\beta_{1} X_{1 i}+\beta_{2} X_{2 i}+\mu_{i}\)

列出误差函数

\(\sum_{i=1}^{n} e_{i}^{2}=\sum_{i=1}^{n}\left(Y_{i}-\hat{Y}_{i}\right)^{2}=\sum_{i=1}^{n}\left(Y_{i}-\hat{\beta}_{0}-\hat{\beta}_{1} X_{1 i}-\hat{\beta}_{2 i} X_{2 i}\right)^{2}\)

我们所拟合得到的系数\(\beta_{0},\beta_{1},\beta_{2}\)应该是使得误差函数最小

于是对其各个变量求偏导数,令其为0,由几个方程联立解出相应的系数。

\(\begin{array}{l} \frac{\partial \Sigma e_{i}^{2}}{\partial \hat{\beta}_{\mathrm{O}}}=-2 \Sigma\left(Y_{i}-\hat{\beta}_{\mathrm{O}}-\hat{\beta}_{1} X_{1 i}-\hat{\beta}_{2} X_{2 i}\right)=\mathrm{O} \\ \frac{\partial \Sigma e_{i}^{2}}{\partial \hat{\beta}_{1}}=-2 \Sigma\left(Y_{i}-\hat{\beta}_{\mathrm{O}}-\hat{\beta}_{1} X_{1 i}-\hat{\beta}_{2} X_{2 i}\right) X_{1 i}=\mathrm{O} \\ \frac{\partial \Sigma e_{i}^{2}}{\partial \hat{\beta}_{2}}=-2 \Sigma\left(Y_{i}-\hat{\beta}_{\mathrm{O}}-\hat{\beta}_{1} X_{1 i}-\hat{\beta}_{2} X_{2 i}\right) X_{2 i}=\mathrm{O} \end{array}\)

解出的结果为

\(\begin{array}{l} \hat{\beta}_{0}=\bar{Y}-\hat{\beta}_{1} \bar{X}_{1}-\hat{\beta}_{2} \bar{X}_{2} \\ \hat{\beta}_{1}=\frac{\left(\sum y_{i} x_{1 i}\right)\left(\sum x_{2 i}^{2}\right)-\left(\sum y_{i} x_{2 i}\right)\left(\sum x_{1 i} x_{2 i}\right)}{\left(\sum x_{1 i}^{2}\right)\left(\sum x_{2 i}^{2}\right)-\left(\sum x_{1 i} x_{2 i}\right)^{2}} \\ \hat{\beta}_{2}=\frac{\left(\sum y_{i} x_{2 i}\right)\left(\sum x_{1 i}^{2}\right)-\left(\sum y_{i} x_{1 i}\right)\left(\sum x_{1 i} x_{2 i}\right)}{\left(\sum x_{1 i}^{2}\right)\left(\sum x_{2 i}^{2}\right)-\left(\sum x_{1 i} x_{2 i}\right)^{2}} \end{array}\)

当然,这是较为简单的二元线性回归的方式,更多元的回归的计算是要靠origin等软件进行的。

Hedonic模型在各个领域的应用

宏观经济领域,林伯强在文章中建立了Hedonic模型分析电力消费与中国经济增长的关系,列出的函数为\(Y_{t}=f\left(K_{t}, L H_{t}, E_{t}\right)\),用\(\begin{aligned}\ln \left(Y_{t}\right)=& \beta_{1} \ln \left(K_{t}\right)+\beta_{2} \ln \left(L H_{t}\right) +\beta_{3} \ln \left(E_{t}\right) \end{aligned}\)

其中Y为GDP,K为资本存量,LH为劳动力数量乘上平均上学年龄,E为电力消费量

微观经济领域,马特用Hedonic模型分析药品价格受本身质量、市场竞争因素、地区管制因素的影响,马思新等学者用Hedonic模型分析房价与物业费用、区位、厨卫装修标准之间的关系

在电力领域,变压器的铁耗主要和磁通密度\(B\)和频率\(f\)相关,损耗公式是用Hedonic模型拟合出的结果,在电气领域被称为steinmentz经验公式法。在工频下,变压器铁耗公式为\(p=CB^{2}f^{1.3}\),在高频下,损耗公式需要根据具体的磁芯材料参数及实验数据确定。张宁在《非正弦激励下磁心损耗的计算方法及实验验证 》中用steinmentz经验公式法拟合出\(P_c=1.4445\times 10^{-6}B_m^{2.472}f^{1.306}\times V_c(磁芯体积)\)

在化学领域,Nernst方程对反应电动势的修正也是以类似的方式进行的,Nernst方程虽然说不上是完全的Hedonic模型,但是在形式上也有着很大的相似之处。例如,将Nernst方程进行变换,可以写为

\(E=E^{\ominus}-\frac{R T}{z F} \ln \prod_{\mathrm{B}} \frac{x_{\mathrm{P}}^{v_{\mathrm{p}}}}{x_{\mathrm{R}}^{v_{\mathrm{R}}}}\)

\(e^{-\frac{zF}{RT}(E-E^{\ominus})}= \prod_{\mathrm{B}} \frac{x_{\mathrm{P}}^{v_{\mathrm{p}}}}{x_{\mathrm{R}}^{v_{\mathrm{R}}}}\)

Hedonic拟合的实例——对变压器铁耗的拟合

这是那个表格的代码

![]( 400x300)

分割线

我对这个数据进行了三种方式的拟合

指数函数拟合
设\(P=e^{aB+bf+c}\),两边取对数,得\(lnP=aB+bf+c\),这就转化为二元线性拟合问题了。将相应数据代入origin软件进行处理,结果为\(lnP=5.52495B+2.1259\times 10^{-4}f-4.8368\)

Hedonic模型(steinmentz经验公式法)
设\(P=AB^{\alpha}f^{\beta}\)
拟合结果为\(P_c=1.4445\times 10^{-6}B_m^{2.472}f^{1.306}\times 23.04\)

铁耗分离法
磁芯的损耗由涡流损耗、磁滞损耗、剩余损耗组成,其中剩余损耗非常小,在计算中可以忽略不计。磁滞损耗与涡流损耗可以由电磁场的知识推导出基本的表达式,磁滞损耗为\(P_{磁滞}=C_1B^{\alpha}f\),其中\(\alpha\)是磁芯的参数,由磁芯的出厂数据中得到,该实验纳米晶的\(\alpha\)为2.47,涡流损耗为\(C_2B^2f^2\)。

令\(X=B^{\alpha}f\),令\(Y=B^2f^2\),这样损耗可以被写为\(P=C_1X+C_2Y\),又转化为一个二元线性回归问题。将相应数据代入origin软件中进行拟合,可以得到\(P_{c}=3.7 \times 10^{-4} B_{m}^{247} f+1.5 \times 10^{-8} B_{m}^{2} f^{2}\)。

三类方法的拟合效果

由于铁耗分离法最接近磁芯铁耗的物理本质,所以它的准确性最高,适用范围也最广,在对比拟合方法好坏时,应该以它作为标准。

我发现,在不同范围内,拟合的效果有着非常大的差异。

放一大堆图

关于结果的分析与讨论

非凸型曲线

为什么指数函数的拟合效果在长期内不如幂函数呢?我认为原因在于指数函数缺乏凸型曲线。无论是\(e^x\)还是\(e^{-x}\)都是凹型曲线,难以拟合凸型曲线。如果使用\(y=ae^{b/x}\),那就大大增加了拟合计算的复杂度。

之所以说凸型曲线重要,是因为凸型曲线能反映出边际收益递减的原理,在其他量不变(如区位、物业条件)的条件下,不断地增加一个量(如装修),获得的收益(如房价的提升)只会越来越少,因为它受到了其他因素的制约。在垃圾场附近一座装修不错的房子能比装修很差的房子高不少钱,但是装修得富丽堂皇的房子可能并不会比装修的不错的房子高出太多钱,原因就在于“垃圾场”这个区位因素限制了其成为一座能卖出高价的房子。在化学平衡领域,同样有着边际收益递减原理的体现,如勒夏特列原理。在化学平衡\(\mathrm{N}_{2}+3 \mathrm{H}_{2} \rightleftharpoons 2 \mathrm{NH}_{3}\)中,增加氮气浓度可以将平衡往右推动,但是一味地增加氮气的浓度却并不能取得像开始加一点氮气那样的收益,到后面可能加的很多很多却只能推动平衡的一点的移动。在电磁领域,楞次定律也有很相似的结论。

从Hedonic模型中可获得的信息

hedonic模型既可以拟合凸型曲线(\(x^{\alpha}(\alpha<1)\)),也可以拟合非凸型曲线(\(x^{\alpha}(\alpha>1)\)),并且从参数\(\alpha\)中可以看出该因素对结果到底是正反馈还是负反馈,对结果的影响因素有多大。如张伯强用Hedonic模型分析资本、劳动力、电力对GDP的影响,对应的系数分别为2.5186、0.800、0.3167,可以看出,资本对GDP的影响最大,且成正反馈,电力的系数是正的且较大,因此“经济发展,电力现行”的策略是有道理的。马思新、李昂通过Hedonic模型推出 \(北京房价=8.207721 物业费用 ^{0.40048}\cdot{区 位}^{0.24867} \cdot 装修标淮^{0.09769}\),通过比较系数,我们可以知道各个因素对房价的影响程度大小(值得一提的是,该论文作于2003年,现在的情况与当时可能发生了较大的变化)。

总结

总的来看,凸型曲线是自然界广泛存在的负反馈现象在数学上的表达。Hedonic模型能较好的拟合凸型和非凸型曲线,并且从拟合结果里可以读出不同变量对结果的影响程度的大小,能得出一些有意义的结论,我想这就是它得到广泛的应用的原因。当然,并不是其他函数就不能适用于曲线的拟合。例如在拟合磁芯铁耗方面很糟糕的指数函数模型就被研究人员应用在预测路基的沉降方面,取得了很好的效果。在如果曲线拟合之前,要先对问题的物理背景有一定的研究,然后才选择恰当的拟合函数,这样预测的适用范围和精确度才能令人满意。