一、问题:
给定一数据点的集合:{(xi, yi) | yi > 0, i = 1, 2, …, n }。现在使用指数函数 y = αeβx 对其进行拟合,使得拟合的对数误差平方和最小。求能达到此目标的α、β值。
注:所谓对数误差,即用拟合值的对数减去原始值的对数。对原始数据点(xi, yi),拟合其yi值为 ,即拟合数据点为(xi, )。那么,这个拟合的yi值与原始的yi值之间的对数误差为:εi = ln - ln yi。
为什么要对数误差平方和最小而不直接求能够使误差平方和最小的α、β值呢?因为对数化之后,可以很容易地求出参数α、β。
二、解:
参见《数据点的最小二乘线性拟合》。在这篇文章中,已经给出了线性回归的最小二乘参数估计,现在将指数回归转化成线性回归,问题便迎刃而解。
我们的目标是用 y = αeβx 对数据点集{(xi, yi) | yi > 0, i = 1, 2, …, n }进行拟合,即对每个 xi,用 = αeβxi 作为 yi 的估计值。对这个等式两边取对数,就有
上式是一个线性方程。令 = ln ,a = ln α,b = β 就有
由《数据点的最小二乘线性拟合》可以求出a与b的值,于是,也就得到了最终的α、β的估计值。即
α = ea
β = b
因为a与b是线性回归方程中的最小二乘估计,也就是使得线性拟合误差平方和最小的估计值,于是α、β就是使对数拟合的对数误差平方和最小的估计值。
具体来说,由《数据点的最小二乘线性拟合》求出线性拟合方程z = a + bx的a与b的估计值为:
于是,
三、应用:
知道了这个参数估计的算法,就可以很方便地将它编成程序,以后处理这类问题时,只需要直接输入数据就好了。