- 10
- 0
- 约4.34千字
- 约 6页
- 2023-05-08 发布于天津
- 举报
算法:
一、移动窗口最小二乘多项式平滑(Savitzky-GolaySmoothing)
假设数据(光谱或者是色谱等)为X,选定的平滑窗口大小为m(其必须为奇数,这里以7为例),多项式次数为n,这里以3为例,当前平滑的点为x0,前3个点分别记为:x3,x_2,X1,以及后三个点记为:X1,x2,x3。
X-3X-2X-1-移动窗口最小二乘多项式平滑就是利用中心点以及其前3个点和后3个点进行最小二乘拟和。每一个点可以表示为不同的多项式的结果,从而7个点可以表示成为含有n+1(下面的例子是4
X
-3
X
-2
X
-1
TOC\o1-5\h\z=b+b*(-3)+b*(-3)2+b*(-3)3=b-3b+9b-27b+b*(-2)+b*(-2)2+b*(-2)3=b-2b+4b-8b0123012=b+b*(-1)+b*(-1)2+b*(-1)3=b-b+b-b0123012x=b+b*(-0)+b*(-0)2+b*(-0)3=b001230x=b+b*(1)+b*(1)2+b*(1)3=b+b+b+X23=b+b*(2)+b*(2)2+b*(2)3=b+2b+4b+8b+b*(3)+b*(3)2+b*(3)3=b+3b+9b+27b011-3
XX23
1
-3
9
-27、
(X)
-3
1
-2
4
-8
-
rb)
X
-2
1
-1
1
-1
0
X
b
-1
1
0
0
0
*
1
——
X
b
0
1
1
1
1
2
X
b
1
1
2
4
8
3,
X
2
.1
3
9
27/
IX3J
(2)
⑶
(4)
即:
A*b=x因而采用最小二乘法运算,得到一个b的解析解b*:b*=(At*A)-1*At*x从而得到这个方程组的最小二乘解为:
,X)一3x一2x一1X0X1X2如果将方程(
,X)
一3
x
一2
x
一1
X0
X
1
X
2
如果将方程
(b)b
-1
-6
5.5
9-16.75
18
-14.5
21
0
18
14.5
9
16.75
-6)
-5.5
b
63
3.75
0
-2.25
-3
-2.25
0
3.75
b
*-1.75
1.75
1.75
0
-1.75
-1.75
1.75/
(5)
x=—*(39x+8x-4x-4x+x+4x-2x)TOC\o1-5\h\z-342-3-2-10123x=-L*(8x+19x+16x+6x-4x-7x+4x)-242-3-2-10123x=-L*(-4x+16x+19x+12x+2x-4x+x)-142-3-2-101231…x=一*(-4x+6x+12x+14x+12x+6x-4x)(6)042-3-2-10123x=—*(x-4x+2x+12x+19x+16x-4x)42-3-2-10123x=一*(4x-7x-4x+6x+16x+19x+8x)42-3-2-10123x=_L*(-2x+4x+x-4x-4x+8x+39x)42-3-2-10123
(6)
从这个里面我们可以发现,它们其实都是这个窗口内部各个点的线性组合,即7个点由不同的权值进行加权而得,对于我们需要的点x0也是由7个点加权而得。因此从本质上说,移动窗口多项式平滑其实就是利用窗口内部各个点之间的加权来计算平滑后的新值。
计算过程中,中间部分我们只需要x0这个点的值即可,即从第四个点开始仅需要计算x0这个点的值。而对于开始的三个点和最后的三个点,没有很好的处理办法,因此我们还是利用式子(6)来计算:开始的三个点用(6)式中的x-3,x-2,x-1计算式计算,最后的三个点用(6)式中的x『x2,x3计算式计算。
详细解释也可见分析化学手册第十分册。
二、粗糙惩罚(RoughnessPenaltySmoothing)
粗糙惩罚其实为了克服最小二乘法不稳健而引入的一个方法。设平滑后的各个点为y*(i),最小二乘法的目标函数是想让最后的结果与原始数据之间的差别最小:
〃2minz(y(i)—y*(i))i=1然而在实际情况中,如果有很多异常点的话,这个标准并不能代表我们模型的准确性,有时候反而会产生非常大的误差,比如说色谱中如果噪声水平很高的话,平滑效果并不好。因此,Silverman在1994出版的一本书中提出了粗糙惩罚算法,其就是在最小二乘目标函数后面加上一个惩罚项:
(8)min£(y(i)-y*(i))+人j(52f(x))2d(x)i=1式中,人是惩罚系数,其越大,则说明对这个数据点的惩罚越严重。后面的积分项是对函数在x处的求二次导(这里的x并不是我们的数据点x(i)),这个也就是高等数学里面的曲线的曲率。现在的问题是如何优化这个目标函数?
(8)
目标函数中前一个式子就是最小二乘拟和,可以通过回归得到(
原创力文档

文档评论(0)