有时候我们在使用matlab进行数据计算的时候,线性回归模型不满足需要,需要建立非线性回归模型,怎么建立呢,下面来分享一下方法
工具/原料
1
matlab
2
建立非线性回归模型
方法/步骤
1
第一步我们在建立非线性回归模型的过程中,首先需要知道matlab中非线性回归的命令是“[beta,r,J]=nlinfit(x,y,'modelfun', beta0)”,模型预测和误差命令是“[Y,DELTA]=nlpredci('modelfun', x,beta,r,J)”,具体各个参数的意思,如下图所示:
2
第二步下面通过实例来介绍非线性回归模型建立的过程,在matlab中创建一个modelfun函数,带beta和x两个参数,并确定非线性回归公式“yhat=beta(1)*exp(beta(2)./x)”,如下图所示:
3
第三步在matlab中创建一个test2脚本,输入x,y,beta0数据,通过“[beta,r ,J]=nlinfit(x',y',@modelfun,beta0)”代码进行非线性回归,这里需要注意的是加'是转置,将行向量转置为列向量,x,y,bat0必须为列向量,如下图所示:
4
第四步运行test2脚本,我们可以看到beta=[11.6036 -1.0641],得到的非线性回归模型如下图所示:
5
第五步我们也可以通过代码[YY,delta]=nlpredci('modelfun',x',beta,r ,J),进行非线性回归预测,查看非线性回归模型的效果,如下图所示:
6
第六步运行test2脚本,可以看到非线性回归模型预测的效果还是比较好的,曲线代表预测值,黑色点代表实际值,黑色点离曲线较近,如下图所示:
注意事项
如果你觉得这篇对你有用的话,请投一下票