我可以看到你安装了曲线拟合工具箱,这很好,因为你需要它才能使下面的代码工作.
示例数据的基本拟合
让我们定义一些示例数据和一个可能的拟合函数. (我也可以在这里使用poly2,但我想保持它更一般.)
xdata = (0:0.1:1)'; % column vector!
noise = 0.1*randn(size(xdata));
ydata = xdata.^2 + noise;
f = fittype('a*x.^2 + b');
fit1 = fit(xdata, ydata, f, 'StartPoint', [1,1])
plot(fit1, xdata, ydata)
旁注:plot()不是我们通常的绘图功能,而是method of the cfit-object fit1.
拟合参数的置信区间
我们的拟合使用数据来确定基础模型f(x)= ax2 b的系数a,b.你已经这样做了,但为了完整起见,你可以在这里读出任何置信区间系数的不确定性.系数按字母顺序排列,这就是为什么我可以使用ci(1,:)作为a,依此类推.
names = coeffnames(fit1) % check the coefficient order!
ci = confint(fit1, 0.95); % 2 sigma interval
a_ci = ci(1,:)
b_ci = ci(2,:)
默认情况下,Matlab使用2σ(0.95)置信区间.有些人(物理学家)更喜欢引用1σ(0.68)区间.
信心和预测带
在数据周围绘制confidence bands or prediction bands是一个好习惯 – 特别是当系数相关时ÿ