示例:最小二乘样条
Spline2、Binterp 和 DWS
使用
Spline2 函数可求解一组
Binterp 所需的、用于计算最小二乘样条插值的最优节点。
1. 定义数据集。
w 是权重矢量,给出了 y 中任意误差的估计标准差。
2. 定义所需样条多项式的次数。
3. 调用 Spline2 函数。
矢量 b 的第一个元素是 B 样条函数的阶。第二个元素为间隔数 (knots - 1)。下一个元素为节点值。其余元素包含 B 样条基函数的系数。
自动生成时,第一个和最后一个节点与原始 x 数据的端点匹配:
4. 调用 Binterp 函数生成一系列符合 x 范围的值。
spline1 的行 i 包含被插入值、以及在 i 范围内所定义点处的一阶、二阶和三阶导数。
5. 绘制原始数据和插值样条图像。
最优节点数及其间距由 Durbin-Watson 统计量确定。为了获得较好的拟合效果,此统计量应约等于 2。该统计量可通过使用
DWS 函数或从矩阵
b 中提取相关元素来获得:
6. 使用 Spline2 的最后一个自变量 (可选) 为 Durbin-Watson 检验提供显著性水平或拒绝度,该自变量为其值介于 0 和 1 之间的百分比。
一般来说,较高的拒绝度会生成更多节点且计算时间更长,但并非总是如此。
7. 计算 Spline2 使用的节点数。
8. 调用 DWS 函数来计算 Durbin-Watson 统计量。
9. 绘制两种插值样条图像。
插值时可以不使用权重:
插值时可以不使用权重,但使用拒绝度:
样条导数
绘制插值样条的前三阶导数图像。
提供您自己的节点
可以为 B 样条插值提供您自己的节点。
1. 定义节点串。
2. 绘制插值样条图像。
可以提供不使用权重矢量的节点:
离群值
可以查看移除样条插值离群值后的效果。
在第二个数据峰的最顶部有一个可疑点。
2. 从数据集中和权重函数中移除该点。
3. 调用 Spline2 函数来生成一个新数据集。
按照 Durbin-Watson 统计量,拟合效果已得到改进:
4. 比较可疑数据值处的插值结果:
移除离群值后,样条曲线稍有下降。