加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

鲁棒拟合robustfit例子

(2018-12-29 12:51:16)
标签:

robustfit

鲁棒拟合

regress

分类: matlab
首先,以matlab提供的robustfit函数的一个例子来说明鲁棒拟合与经典拟合的差别:

 x = (1:10)';
  y = 10 - 2*x + randn(10,1); y(10) = 0;
 bls = regress(y,[ones(10,1) x]) %经典拟合
brob = robustfit(x,y)    %鲁棒拟合
 scatter(x,y)
 hold on
plot(x,brob(1)+brob(2)*x,'r-', x,bls(1)+bls(2)*x,'m:')
legend('Given','鲁棒拟合','经典拟合')

结果如下图所示,可以看到最后的异常点导致了经典拟合斜率偏小,而鲁棒拟合比较好的规避了异常点的影响。需要注意的是经典拟合命令regress在使用时需要加上一列1;而robustfit则不需要。



 x = (1:0.1:10)';
  y = 10 - 2*x + randn(91,1); y(10) = -5;
 bls = regress(y,[ones(91,1) x])
brob = robustfit(x,y)
 scatter(x,y)
 hold on
plot(x,brob(1)+brob(2)*x,'r-', x,bls(1)+bls(2)*x,'m:')
legend('Given','鲁棒拟合','经典拟合')

当数据点变多后,可以看到极少数的异常点对于经典拟合的影响已经非常小了


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有