数据拟合与模型选择

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由log y取指数得
y 5.2857(1.4635)x
数据拟合效果图:
例3. 估计蓝蟹.
作出散点图: 散点图中数据的倾向是增的、上凸的。
对于一个向上凸的正值函数,y = f ( x ),x > 1.
这次尝试改变 y 的值成为 y2、y3 等来拉伸右侧 尾部向上而线性化。另一种可能是尝试改变x的
人口 (×106)
表1 美国人口统计数据
1790 1800 1810 1820 1830 1840 1850
3.9 1860 31.4 1930
5.3 1870 38.6 1940
7.2 1880 50.2 1950
9.6 1890 62.9 1960
12.9 1900 76.0 1970
17.1 1910 92.0 1980
用阶梯中处于 z下方的某些变换,将y值变为 y
或 log y 或更剧烈的变化,挤压右侧尾部向下, 可能产生更接近直线的新函数。应该采用哪个 变换是反复试验、不断摸索的问题(或根据经 验)。另一种变换是改变 x 的值为 x2,x3等, 拉伸右侧的尾部向右。
幂阶梯 M z2 z
z log z
1 z 1 z 1 z2 M
23.2 1920 105.8 1990
122.8 131.7 150.7 179.3 203.2 226.5 248.7
一、数据拟合的方法
1. 平面上绘出已知数据的分布图 (散点图,Scatter Plot). 2. 通过直观观察或经验公式猜测人口随时间的变化规律
(函数关系). 3. 利用函数拟合的方法确定拟合函数中的未知参数.
多项式在 x处的取值y可用如下命令格式计算: y=polyval(a, x)
三、经变换的最小二乘拟合
理论上最小二乘准则可用于其它模型,方法都是对参数求
导,令其等于零,解得到的方程,求出模型的参数。但在
实践上可能有困难。
例如要拟合模型 y aebx ,作最小二乘估计时需要极小化
m
S
m
yi f (xi ) 2
2
(
i 1
yi
a0
a1xi
a2 xi2 )2
0
S
a1
m
2
i 1
xi
(
yi
a0
a1xi
a2 xi2 )2
0
S
a0
m
2
i 1
xi2
(
yi
a0
a1xi
a2 xi2 )2
0
正规方程组解的矩阵表示:

1
A
1 M
x1 x2 M
x12 x22
M
,
1
xm
xm2
y1
y
y2
,
yi aebxi 2
i 1
i 1
S 2 m ebxi
a
i 1
yi aebxi
0
S
b
2a
m i 1
ebxi xi
yi aebxi
0
这个方程组是非线性的,手工难于求解。
处理方法:在模型 y aebx取对数以后,变成线性模型:
ln y ln a bx. 可以利用最小二乘求解。 非线性关系变成线性关系,常见形式有一下几种:
.
解得
m
m
m
m xi yi xi yi
wenku.baidu.com
a
i 1
i1 i1
m
m
xi2
m
xi
2
,
i 1
i1
m
m
m
m
b
xi2 yi xi yi xi
i 1
i 1
i 1
i 1
m
m
xi2
m
xi
2
,
i 1
i1
可以编写计算机程序解 a 和 b. 用Matlab编程,只要输入数据, 再输入 regress命令即可得到系数的最小二乘估计。
从图上看,存在两个以上点时,不能期望它们精确地处 于一直线上。数据点和直线间总存在一些纵向差异。称这 些纵向差异为绝对偏差 。
最佳拟合的准则:
(1)极小化这些绝对偏差的和.
偏差
即极小化
m
yi f (xi )
i 1
解这一问题必须用数值最优化方法
解出模型参数a, b的估计.
图2 极小化绝对偏差的和
对于蓝鱼的产量数据,将 x 的值改为阶梯向上的几种值 (x2,x3 等),不能产生有关线性图形;因此将y的值改 为阶梯向下的值 y 或 ln y 的值。经比较,选取 ln y 对 x 的模型,用最小二乘拟合下面模型:
log y ax b
找出拟合的曲线
log y 0.7231 0.1654x
其中x是基底年,log y 是以10为底的对数,y 的单位是104磅。
怎样评价一个好模型?
评估模型是否很好地拟合了数据的途径是:计算残差。即 计算模型点与实际点间的偏差。 要回答哪个模型最好时要以考虑模型的目的、实际情况要 求的精度、数据的准确性以及使用模型时独立变量的值的 范围等因素。
二、基于数据建立经验模型
1. 单项模型的选择; 2. 通过数据点的高阶多项式; 3. 低阶多项式对数据光滑化; 4. 三次样条插值。
当实际问题中不能根据一些假定提出某种模型时,就要基 于数据建立经验模型。
1. 单项模型的选择
例2. Chesapeake 海湾的收成.
作出散点图:
任务是预测蓝鱼的产量。 策略是变换数据,使得所产生的图形近似一条直线。 怎样确定这一变换呢?
散点图中数据的倾向是增的、下凸的。 对于一个向上凹的正值函数,y = f ( x ),x > 1.
值成为 x 或log x ,或更剧烈的变换梯步(变
换阶梯表的下部),来使右侧尾部向左。 注意,阶梯表中log 以下的变换有时会把一个增 函数逆转为减函数,这是不希望的。因此数据 分析时常加一个负号,以保持变换的数据与原 数据有相同的增减性。
变换阶梯
M z3 z2 z
z
log z 常
1
用 变
z换
1
z
1
m
m
b
i 1
xi
m
i 1 m
xi yi
a xi mb yi
i 1
i 1
(正规方程)
正规方程组解的矩阵表示:

1 x1
A 1
x2
,
M M
1
xm
y1
y
y2
,
M
ym
则正规方程组为 ( AAT ) AT y.
若 AAT 可逆,正规方程的解为
( AAT )1 AT y.
b a
1. y x , y 1 , x 1 u a bv, ax b u v
2. y axb , u ln y,v ln x u ln a bv,
3. y aebx , u ln y u ln a bx,
4.
b
y ae x , u ln y, v
1
u ln a bv,
5 10 15 20 25 30
二、拟合多项式
设预期模型的形式为 y f ( x) a0 a1 x L an xn , n是固定的.
最小二乘估计即要求极小化(以n=2为为例)
m
S ( yi a0 a1 x a2 x2 )2 i 1
S对参数求偏导,令其等于零得方程:
S a0
m
i 1
i 1
等价于下述线性方程组的最小二乘解:
ax1 b y1
ax2
b M
y2
axm b ym
根据多元函数的极值理论,最优的必要条件是两个偏导数 等于0.
S a
m
2
i 1
xi
(
yi
axi
b)2
0
S b
m
2
(
i 1
yi
axi
b)2
0
整理得正规方程:
a
m i 1
xi2
i 1
i 1
函数中的参数作为自变量,绝对偏差的平方和作为目标函 数,利用多元函数的极值理论就可以解决。
用最小二乘准则来估计各种类型曲线参数的数学过程如下: 一、拟合直线
设预期模型的形式为 y =Ax+B,用a、b记A、B的最小二乘
估计,这时要求极小化:
m
m
S yi f (xi )2 yi axi b2
(2)极小化所有点的最大偏差.
即极小化
偏差
Max| yi – f (xi) |, i =1,2, ,m
解这个问题可能需要高级的数学 方法,或者需要计算机的数值算 法。简单情形,会转化成一个线 性规划问题。
图3 极小化最大绝对偏差
(3) 极小化这些绝对偏差的平方和(最小二乘原则)
即极小化
(Least-Squares Criterion)
m
m
yi f (xi ) 2 yi f (xi )2
i 1
i 1
最小二乘准则
给定某一函数类型 y = f (x) , 以及m个数据点(xi, yi)的集 合,极小化绝对偏差 | yi - f(xi)| 的平方和,即确定函数 y = f (x)中的参数,极小化
m
m
yi f (xi ) 2 yi f (xi )2
z2
M
试图改变y的值为 y2 或 y3 和改变x的值成为 x 或log x 等,
最后选择一条过原点的直线
yk x
由最小二乘法得到
y 158.344 x
其中 x 是基底年,y的单位是104磅蓝蟹。
曲线拟合效果图: 曲线似乎是可取的。
模型验证:对每一对数据计算残差和相对误差。 模型预测:预测2010年海湾收成 蓝鱼 y 5.2857(1.4635)14 1092.95(104磅) 10.9百万磅. 蓝蟹 y 158.344 14 592.469(104 磅) 5.92百万磅. 这些简单的单项模型应该用于内插,而在作外推时误差较大。
数据拟合与模型选择
Curve Fit and Model Selecting
Jie Fei
MPTC June 20, 2012
引例 美国人口预测
给出美国人口从1790年到1990年间的人口如表1(每10年为 一个间隔),请估计出美国2010年的人口。
年份
人口 (×106) 年份
人口 (×106) 年份
统计上利用最小二乘准则估计拟合直线的参数称为线性回归。
例1:弹簧的弹性系数的测定.
已知弹簧的弹力与弹簧长度有线性关系: y=ax+b 其中常数 a与b需要根据数据测定.
下表给出了悬挂不同重量的物体时弹簧的长度,试由这 组数据推测弹簧的弹性系数.
5
10
15
20
25
30
长度(cm) 7.25 8.12
8.95
9.90 10.90 11.80
输入 Matlab 指令如下: x=5:5:30; y=[7.25 8.12 8.95 9.90 10.90 11.80]; x1=[ones(length(x),1),x']; regress(y',x1) 得到最佳拟合直线为: y= 0.1831 x+ 0.6827 拟合效果图:
其中 Fun—表示拟合函数的M文件或内联函数. xdata, ydate—拟合的数据,以数组方式输入. p0 –拟合参数的初值. p—拟合的参数.
若要求在 x处的取值y可用如下命令格式计算: y=Fun(p, x)
在分析一个数据集合时,有四个可能需要解决的任务: 1. 模型选择 , 线性模型, 多项式模型, 指数模型或是其它模型. 2. 按照一个或一些选出的模型类型对数据进行拟合 (确定模型中的最佳参数). 3. 对拟合模型的评价 (不同模型之间的优劣). 4. 根据收集的数据做出预报, 评价预报的效果.
4. 利用拟合函数估计出2010年的美国人口.
曲线拟合问题的提法
——什么是曲线拟合
已知一组二元数据,(xi , yi ), i 1, 2,..., n,这组数据形成
平面上的一组散点. 在某一类函数中寻找一个函数 f (x)
使得函数曲线在某种准则下与所有数据点最为接近,
这种构造近似函数的方法称为曲线拟合,f (x) 称为拟合函数.
x
5.
y
1 a be x
,y
1 ,v ex u
u a bv,
一般地,变换以后再进行最小二乘拟合与直接进行最小 二乘拟合的结果是不一样的。
在原始问题中,寻找曲线时,是极小化原始数据的偏差 平方和,而在变换后的问题中,极小化变换后的变量的偏差 平方和。
非线性拟合的Matlab指令为:lsqcurvefit 其调用格式为 p= lsqcurvefit(‘Fun’, p0 , xdata, ydata)
小结:构造一个预测模型时,细心分析收集到的数据,看 数据存在什么样的倾向?是否有明显处于倾向外的数据点? 如果这样的异常值存在,是否抛弃它?如果是实验观察到 的,重复该实验以检查数据。当某一种倾向确实清楚存在 时,找到一个将数据变换成一直线(近似地)的函数。
M
ym
则正规方程组为 ( AAT )a AT y.
若 AAT 可逆,正规方程的解为
a ( AAT )1 AT y.
a0
a
a1
.
a2
多项式拟合的Matlab指令为:polyfit 其调用格式为 a=polyfit(adata, ydata, n)
其中 n—拟合多项式的次数. xdata, ydate—拟合的数据,以数组方式输入. a—输出参数,拟合多项式的系数.
曲线拟合的图示
y
O
x
最佳拟合准则
设有 m 个数据点(xi, yi)i=1, 2, …, m. 作散点图如下: Scatter Plot
图1 数据散点图 要想对图1所示的数据拟合模型 f (x) = a x + b. 应如何选 择 a 和 b ,使直线最好地拟合数据?即最佳拟合的原则与方 法是什么?
相关文档
最新文档