Matlab绘制带置信区间的拟合曲线

   曲线拟合是已知离散点上的数据集,构造一个解析函数(其图形为一曲线),使在原离散点上尽可能接近给定的值。MATLAB中与曲线拟合有关的函数主要有polyfit、polyval和polyconf。

polyfit:基于最小二乘法,用于曲线拟合的函数。

    用法:
 (1)p=polyfit(x,y,n)。
    其中,x和y为拟合数据向量,n为拟合多项式次数,缺省时默认为1次。p中的系数按降幂排列,p的长度为 n+1。
 (2)[p,s] = polyfit(x,y,n) 。
    除p外还返回一个结构体s,可用作polyval的输入来获取误差估计值。

polyval:求n次多项式p在x处的值的函数。

  用法:
  y1= polyval(p,x)。
  输入变量p=[p0 p1 p2…pn]是一个长度为n+1的行向量,由一个多项式的系数组成,多项式系数按降幂排列,缺少的幂次要用0来补齐。常和polyfit搭配使用。

polyconf:对ployfit拟合曲线进行评价和置信区间估计的函数。

  用法:
  [Y,DELTA]=polyconf(p,x,s,alpha)。
  DELTA为polyfit所得的回归多项式在x处的预测值Y及预测值的显著性为1-alpha的置信区间。alpha缺省时默认是0.05。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。p是polyfit函数的返回值;x和polyfit函数的x值相同;y和polyfit函数的y值相同。p和s可由polyfit函数的用法二获取。

代码

x=0:51;
y=rand(1,51);
[p,s]=polyfit(x,y,4);
y1=polyval(p,x);
[yfit,dy]=polyconf(p,x,s,'predopt','curve');
h1=fill([x,fliplr(x)],[yfit-dy,fliplr(yfit+dy)],[0.8706 0.9216 0.9804]);
hold on
h2=plot(x,y1,'b','linewidth',2);  
hold on
h3=plot(x,y,'r.','markersize',15);

图像

你可能感兴趣的:(Matlab绘制带置信区间的拟合曲线)