matlab多元非线性回归及显着性分析(实例)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab多元非线性回归及显著性分析
给各位高手:小弟有一些数据需要回归分析(非线性)及显著性检验(回归模型,次要项,误差及失拟项纯误差,F值和P值),求大侠帮助,给出程序,不胜感激。
模型:
DA TA=... %DA TA前三列是影响因子,第四列为响应值
[2 130 75 48.61;
2 110 75 56.43;
2 130 45 61.32;
2 110 45 65.28;
1 110 45 55.80;
1 130 75 45.65;
1 110 75 50.91;
1 130 45 67.94;
1.5 120 60 74.15;
1.5 120 60 71.28;
1.5 120 60 77.95;
1.5 120 60 74.16;
1.5 120 60 75.20;
1.5 120 85 35.65;
1.5 140 60 48.66;
1.5 120 30 74.10;
1.5 100 60 6
2.30;
0.5 120 60 66.00;
2.5 120 60 75.10];
回归分析过程:
(1)MATLAB编程步骤1:首先为非线性回归函数编程,程序存盘为user_function.m function y=user_function(beta,x)
b0 = beta(1);
b1 = beta(2);
b2 = beta(3);
b3 = beta(4);
x0 = x(:,1);
x1 = x(:,2);
x2 = x(:,3);
x3 = x(:,4);
y=b0*x0+b1*x1.^2+b2*x2.^2+b3*x3.^2;
(2)MATLAB编程步骤2:编写非线性回归主程序,程序运行时调用函数user_function
x=[1 2 130 75 48.61;
1 2 110 75 56.43;
1 2 130 45 61.32;
1 2 110 45 65.28;
1 1 110 45 55.80;
1 1 130 75 45.65;
1 1 110 75 50.91;
1 1 130 45 67.94;
1 1.5 120 60 74.15;
1 1.5 120 60 71.28;
1 1.5 120 60 77.95;
1 1.5 120 60 74.16;
1 1.5 120 60 75.20;
1 1.5 120 85 35.65;
1 1.5 140 60 48.66;
1 1.5 120 30 74.10;
1 1.5 100 60 62.30;
1 0.5 120 60 66.00;
1 2.5 120 60 75.10]; %%第1列全是1,第6列是指标变量,其余列是自变量xx=x(:,1:5);yy=x(:,5); %%指定响应变量yy和自变量xx
beta0=[0.5 0.4 0.7 0.5]; %%设置初始回归系数(如何确定初值?)
[beta_fit,residual] = nlinfit(xx,yy,@user_function,beta0) %%非线性回归
结果
beta_fit =
91.3757
1.2712
-0.0009
-0.0049
residual =
-4.2935
-1.0248
-9.2044
-9.7957
-15.4620
-3.4398
-2.7311
1.2293
11.1889
8.3189
14.9889
11.1989
12.2389
-9.5678
-9.3704
-2.0767
-4.8331
5.5814
7.0540
即
y=.3757+1.2712*x1.^2-0.0009*x2.^2-0.0049*x3.^2;
matlab中nlinfit函数非线性拟合的使用方法如下:例1