Matlab使用nlinfit函数进行多元非线性回归,并且绘制曲线拟合的误差区间...

Matlab使⽤nlinfit函数进⾏多元⾮线性回归,并且绘制曲线拟合误差区间Matlab 使⽤nlinfit 函数进⾏多元⾮线性回归,并且绘制曲线拟合的误差区间
⼀、前⾔
这个也是最近我接到的⼀个⼩项⽬⾥的内容:
有⼀组数据x、y:
x=[20002001200220032004200520062007200820092010201120122013201420152016201720182019]
y=[320224335529802196633854340461647524597443149305770557655105468697065586177]
参考⽂献后发现需要利⽤这组数据拟合成特定的函数形式:
因此,使⽤MATLAB中多元⾮线性回归nlinfit 函数进⾏⾃定义函数的拟合,并且绘制出置信度95%下的拟合误差阴影,效果如下:无纺布挂历
下⾯是回归具体拟合过程和置信区间下的误差阴影绘制。
⼆、nlinfit函数使⽤
1、函数语法
2、拟合⽰例:
x=[20002001200220032004200520062007200820092010201120122013201420152016201720182019];
y=[320224335529802196633854340461647524597443149305770557655105468697065586177];
%内联函数创建⾃定义函数 beta为参数数组
mymodel =inline('beta(1)./(1+exp(-(beta(2)).*(x-beta(3))))','beta','x');
%定义参数初始值
beta0=[50012006];
%进⾏拟合
[beta,r,J]=nlinfit(x,y,mymodel,beta0);
%打印拟合参数值
fprintf("拟合结果为:K=%f a=%f b=%f\n",vpa(beta(1)),vpa(beta(2)),vpa(beta(3)));
三、误差阴影绘制
%Y是预测值 delta是置信度为95%的拟合误差
尺寸检测[Y,delta]=nlpredci(mymodel,x,beta,r,J);
figure
x=x;
Y=Y';
delta=delta';
%绘制置信区域
fill([x x(end:-1:1)],[Y+delta Y(end:-1:1)-delta(end:-1:1)],[204/255204/255204/255],'EdgeColor','none');
hold on
无动力清扫器
plot(x,y,'ko',x,Y,'k');
xlabel("xx");
ylabel("y");
title("Title")
四、整体源码
x=[20002001200220032004200520062007200820092010201120122013201420152016201720182019];
y=[320224335529802196633854340461647524597443149305770557655105468697065586177];
%内联函数创建⾃定义函数 beta为参数数组
mymodel =inline('beta(1)./(1+exp(-(beta(2)).*(x-beta(3))))','beta','x');
阳光天井%定义参数初始值
beta0=[50012006];
%进⾏拟合
[beta,r,J]=nlinfit(x,y,mymodel,beta0);
%打印拟合参数值
fprintf("拟合结果为:K=%f a=%f b=%f\n",vpa(beta(1)),vpa(beta(2)),vpa(beta(3)));
%Y是预测值 delta是置信度为95%的拟合误差
[Y,delta]=nlpredci(mymodel,x,beta,r,J);
figure
x=x;
Y=Y';
delta=delta';
%绘制置信区域
fill([x x(end:-1:1)],[Y+delta Y(end:-1:1)-delta(end:-1:1)],[204/255204/255204/255],'EdgeColor','none');
hold on
plot(x,y,'ko',x,Y,'k');
xlabel("xx");
ylabel("y");
title("Title")
多功能烧烤车运⾏结果如前⾔所⽰(当然x轴的⽂字是另外修改的)
五、思考
关于⾃定义函数的拟合:⼀开始我⽤的matlab拟合⼯具箱,拟合结束后发现只能得到拟合参数的值和⼀些描述拟合结果的误差,不能绘制出来误差阴影图,搜索之后发现多元⾮线性回归可以实现这个需求,详见【参考博客1】。
关于95%置信区间误差阴影绘制:有很多博客写到了多项式拟合以及拟合之后的95%置信区间误差阴影绘制,我对此进⾏了参考,详见【参考博客2】。
关于其余置信区间误差区域计算、绘制例如90%,只需要nlpredci函数中设定’Alpha’,0.1即可。详见MATLAB【help-
nlpredc】。
参考博客
1、
2、
欢迎各位留⾔交流
保健杯同时,如果各位在作图⽅⾯有需要可以闲鱼搜索⽤户:Man⼩洁,欢迎交流。

本文发布于:2024-09-23 02:25:53,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/288388.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:麻将原代码
标签:拟合   误差   函数   绘制   定义   阴影   回归
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议