插值与拟合
两者都可用于对较少数据量的补充,但是一般插值用于数据量较少的情况n<=30 拟合用于数据量较多的情况 n>30。
(1)插值与拟合采用的方法
1.插值
- 拉格朗日插值
- 牛顿插值
- 分段埃尔米特插值
- 分段三次样条插值
其中牛顿插值与拉格朗日插值的龙格现象比较严重,因此一般采用分段埃尔米特插值和分段三次样条插值。
⭐️注意插值的方法可以用于短期的预测,但不推荐这样做。
2.拟合
- 使用matlab的拟合工具箱
⭐️一般情况下,拟合在保证优度相差不大的情况下,使用越简单的拟合函数越好。
(2)具体的代码操作方法
1.插值的matlab
- 使用分段三次埃尔米特插值
pchip(x,y,new_x)
其中x,y代表已知点的横纵坐标,new_x代表要插入的点的横坐标。 - 使用分段三次样条插值
spline(x,y,new_x)
其中x,y代表已知点的横纵坐标,new_x代表要插入的点的横坐标。 - n维数据的插值
interpn(x1,x2,...,xn,y,new_x1,new_x2,...,new_xn,method)
其中x1,x2…,xn是已知点的横坐标,y是已知样本点的纵坐标,new_x1,new_x2,…,new_xn代表要插入的点的横坐标,method代表使用的插值方法,选项’linear’(线性插值),‘cubic’(三次插值),‘spline’(三次样条插值),‘nearest’(最邻近插值算法)。
2.拟合的matlab
cftool
调用拟合工具箱。
- 拟合优度评价
- 拟合优度: R 2 R^2 R2
- 总体平方和 S S T SST SST: S S T = ∑ i = 1 n ( y i − y ‾ ) 2 SST=\displaystyle \sum_{i=1}^{n}(y_i-\overline{y})^2 SST=i=1∑n(yi−y)2
- 误差平方和 S S E SSE SSE: S S E = ∑ i = 1 n ( y i − y ^ ) 2 SSE=\displaystyle \sum_{i=1}^{n}(y_i-\hat{y})^2 SSE=i=1∑n(yi−y^)2这里的 y ^ \hat{y} y^是将 x x x代入拟合完成的函数后得到的值。
- 回归平方和 S S R SSR SSR: S S R = ∑ i = 1 n ( y ‾ − y ^ ) 2 SSR=\displaystyle \sum_{i=1}^{n}(\overline{y}-\hat{y})^2 SSR=i=1∑n(y−y^)2
① ① ① 对于线性的拟合评价可以使用 R 2 R^2 R2,对于线性拟合有 S S T = S S E + S S R SST=SSE+SSR SST=SSE+SSR
R 2 = S S R S S T = S S T − S S E S S T = 1 − S S E S S T ≤ 1 R^2=\dfrac{SSR}{SST}=\dfrac{SST-SSE}{SST}=1-\dfrac{SSE}{SST}\le 1 R2=SSTSSR=SSTSST−SSE=1−SSTSSE≤1
R 2 R^2 R2越接近1则拟合效果越好。
② ② ② 对于非线性的拟合不能用 R 2 R^2 R2,通过 S S E SSE SSE进行判断就可以了。