数据拟合与模型选择
(正规方程)
正规方程组解的矩阵表示: 记
1 1 A 1 x1 x2 , xm
y1 y y 2 , ym
b . a
则正规方程组为
( AAT ) AT y.
若 AAT 可逆,正规方程的解为
log y 0.7231 0.1654 x
其中x是基底年,log y 是以10为底的对数,y 的单位是104磅。 由log y取指数得
数据拟合与模型选择
Curve Fit and Model Selecting
Jie Fei
MPTC June 20, 2012
引例 美国人口预测
给出美国人口从1790年到1990年间的人口如表1(每10年为 一个间隔),请估计出美国2010年的人口。
表1 美国人口统计数据
年份 人口 (×106) 年份 人口 (×106) 年份 人口 (×106)
曲线拟合的图示
y
O
x
最佳拟合准则
设有 m 个数据点(xi, yi)i=1, 2, …, m. 作散点图如下: Scatter Plot
图1 数据散点图 要想对图1所示的数据拟合模型 f (x) = a x + b. 应如何选
择 a 和 b ,使直线最好地拟合数据?即最佳拟合的原则与方 法是什么?
1790
3.9 1860 31.4 1930 122.8
1800
5.3 1870 38.6 1940 131.7
1810
7.2 1880 50.2 1950 150.7
1820
9.6 1890 62.9 1960 179.3
1830
12.9 1900 76.0 1970 203.2
1840
17.1 1910 92.0 1980 226.5
m S 2 ( yi a0 a1 xi a2 xi2 ) 2 0 a i 1 0 m S 2 xi ( yi a0 a1 xi a2 xi2 ) 2 0 i 1 a1 m S 2 xi2 ( yi a0 a1 xi a2 xi2 ) 2 0 i 1 a0
处理方法:在模型 y ae 取对数以后,变成线性模型:
bx
ln y ln a bx.
可以利用最小二乘求解。 非线性关系变成线性关系,常见形式有一下几种:
1. y x 1 1 , y , x u a bv , ax b u v
2. y ax b , u ln y, v ln x u ln a bv , 3. y ae bx , u ln y u ln a bx,
S yi f ( xi ) yi axi b
2 i 1 i 1
m
m
2
等价于下述线性方程组的最小二乘解:
ax1 b y1 ax b y 2 2 axm b ym
根据多元函数的极值理论,最优的必要条件是两个偏导数 等于0.
( AAT )1 AT y.
解得
m m m m xi yi xi yi i 1 i 1 a i 1 , 2 m m m xi2 xi i 1 i 1 m m m m 2 xi yi xi yi xi i 1 i 1 i 1 b i 1 , 2 m m 2 m xi xi i 1 i 1
散点图中数据的倾向是增的、下凸的。
幂阶梯 z2 z z
对于一个向上凹的正值函数,y = f ( x ),x > 1.
用阶梯中处于 z下方的某些变换,将y值变为 y 或 log y 或更剧烈的变化,挤压右侧尾部向下, 可能产生更接近直线的新函数。应该采用哪个 变换是反复试验、不断摸索的问题(或根据经 验)。另一种变换是改变 x 的值为 x2,x3等, 拉伸右侧的尾部向右。
则正规方程组为
( AAT )a AT y.
若 AAT 可逆,正规方程的解为
a ( AAT )1 AT y.
多项式拟合的Matlab指令为:polyfit
其调用格式为 a=polyfit(adata, ydata, n)
其中 n—拟合多项式的次数. xdata, ydate—拟合的数据,以数组方式输入.
y f (x )
i 1 i i
m
2
yi f ( xi )
i 1
m
2
最小二乘准则
给定某一函数类型 y = f (x) , 以及m个数据点(xi, yi)的集 合,极小化绝对偏差 | yi - f(xi)| 的平方和,即确定函数 y = f (x)中的参数,极小化
y f (x )
4. y ae , u ln y, v
b x
1 1 5. y , y , v e x u a bv , a be x u
1 u ln a bv , x
一般地,变换以后再进行最小二乘拟合与直接进行最小 二乘拟合的结果是不一样的。
在原始问题中,寻找曲线时,是极小化原始数据的偏差
i 1 i i
m
2
yi f ( xi )
i 1
m
2
函数中的参数作为自变量,绝对偏差的平方和作为目标函 数,利用多元函数的极值理论就可以解决。
用最小二乘准则来估计各种类型曲线参数的数学过程如下: 一、拟合直线 设预期模型的形式为 y =Ax+B,用a、b记A、B的最小二乘 估计,这时要求极小化:
S yi f ( xi ) yi ae
2 i 1 i 1
m
m
bxi
2
m S bxi bxi 2 e yi ae 0 a i 1 m S 2a ebxi xi yi aebxi 0 b i 1
这个方程组是非线性的,手工难于求解。
二、基于数据建立经验模型
1. 单项模型的选择; 2. 通过数据点的高阶多项式; 3. 低阶多项式对数据光滑化; 4. 三次样条插值。
当实际问题中不能根据一些假定提出某种模型时,就要基 于数据建立经验模型。
1. 单项模型的选择
例2. Chesapeake 海湾的收成.
作出散点图:
任务是预测蓝鱼的产量。 策略是变换数据,使得所产生的图形近似一条直线。 怎样确定这一变换呢?
a—输出参数,拟合多项式的系数.
多项式在 x处的取值y可用如下命令格式计算: y=polyval(a, x)
三、经变换的最小二乘拟合
理论上最小二乘准则可用于其它模型,方法都是对参数求 导,令其等于零,解得到的方程,求出模型的参数。但在
实践上可能有困难。 y aebx ,作最小二乘估计时需要极小化 例如要拟合模型
正规方程组解的矩阵表示: 记
1 x1 1 x2 A 1 xm
2 x1 2 x2 , 2 xm
y1 y y 2 , ym
a0 a a1 . a2
从图上看,存在两个以上点时,不能期望它们精确地处 于一直线上。数据点和直线间总存在一些纵向差异。称这 些纵向差异为绝对偏差 。
最佳拟合的准则:
(1)极小化这些绝对偏差的和. 即极小化
偏差
y f (x )
i 1 i i
m
解这一问题必须用数值最优化方法 解出模型参数a, b的估计.
图2 极小化绝对偏差的和
3. 4.
曲线拟合问题的提法
——什么是曲线拟合
( 已知一组二元数据, xi , yi ), i 1, 2,..., n, 这组数据形成
平面上的一组散点. 在某一类函数中寻找一个函数
f ( x)
使得函数曲线在某种准则下与所有数据点最为接近,
f 这种构造近似函数的方法称为曲线拟合, ( x) 称为拟合函数.
p0 –拟合参数的初值. p—拟合的参数.
若要求在 x处的取值y可用如下命令格式计算: y=Fun(p, x)
在分析一个数据集合时,有四个可能需要解决的任务: 1. 模型选择 , 线性模型, 多项式模型, 指数模型或是其它模型. 2. 按照一个或一些选出的模型类型对数据进行拟合
(确定模型中的最佳参数).
1850
23.2 1920 105.8 1990 248.7
一、数据拟合的方法
1. 2. 平面上绘出已知数据的分布图 (散点图,Scatter Plot). 通过直观观察或经验公式猜测人口随时间的变化规律 (函数关系). 利用函数拟合的方法确定拟合函数中的未知参数. 利用拟合函数估计出2010年的美国人口.
可以编写计算机程序解 a 和 b. 用Matlab编程,只要输入数据, 再输入 regress命令即可得到系数的最小二乘估计。 统计上利用最小二乘准则估计拟合直线的参数称为线性回归。
例1:弹簧的弹性系数的测定. 已知弹簧的弹力与弹簧长度有线性关系: 其中常数 a与b需要根据数据测定. y=ax+b
平方和,而在变换后的问题中,极小化变换后的变量的偏差 平方和。
非线性拟合的Matlab指令为:lsqcurvefit
其调用格式为 p= lsqcurvefit(‘Fun’, p0 , xdata, ydata)
其中 Fun—表示拟合函数的M文件或内联函数. xdata, ydate—拟合的数据,以数组方式输入.
log z 1 z 1 z 1 z2
对于蓝鱼的产量数据,将 x 的值改为阶梯向上的几种值 (x2,x3 等),不能产生有关线性图形;因此将y的值改 为阶梯向下的值 y 或 ln y 的值。经比较,选取 ln y 对 x 的模型,用最小二乘拟合下面模型: