没有合适的资源?快使用搜索试试~ 我知道了~
(word完整版)matlab多元非线性回归.doc
需积分: 11 0 下载量 54 浏览量
2022-10-24
02:07:03
上传
评论
收藏 283KB DOC 举报
温馨提示
试读
22页
(word完整版)matlab多元非线性回归.doc
资源推荐
资源详情
资源评论
(word 完整版)matlab 多元非线性回归
matlab 回归(拟合)总结
前言
1、学三条命令
polyfit(x,y,n)-—-拟合成一元幂函数(一元多次)
regress(y,x)—-—-可以多元,
nlinfit(x,y,’fun’,beta0) (可用于任何类型的函数,任意多元函数,应用范围最主,最万能的)
2、同一个问题,这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标
准的答案。相当于咨询多个专家。
3、回归的操作步骤:
根据图形(实际点),选配一条恰当的函数形式(类型)—--需要数学理论与基础和经验。(并写出该函
数表达式的一般形式,含待定系数)---——-选用某条回归命令求出所有的待定系数。所以可以说,回归就
是求待定系数的过程(需确定函数的形式)
一、回归命令
一元多次拟合 polyfit(x,y,n);一元回归 polyfit;多元回归 regress-—-nlinfit(非线性)
二、多元回归分析
对于多元线性回归模型(其实可以是非线性,它通用性极高):
exxy
pp
�����
���
�
110
设变量
1 2
, , ,
p
x x x yL
的 n 组观测值为
1 2
( , , , ) 1, 2, ,
i i ip i
x x x y i n=L L
记
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
npnn
p
p
xxx
xxx
xxx
x
�
�����
�
�
21
22221
11211
1
1
1
,
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
n
y
y
y
y
�
2
1
,则
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
p
�
�
�
�
�
1
0
的估计值为排列方式与线性代数中的线性方
程组相同(),拟合成多元函数—-—regress
使用格式:左边用 b=[b, bint, r, rint, stats]右边用=regress(y, x)或 regress(y, x, alpha)
-——命令中是先 y 后 x,
—--须构造好矩阵 x(x 中的每列与目标函数的一项对应)
--—并且 x 要在最前面额外添加全 1 列/对应于常数项
---y 必须是列向量
(word 完整版)matlab 多元非线性回归
-—-结果是从常数项开始—--与 polyfit 的不同。)
其中: b 为回归系数,
�
的估计值(第一个为常数项),bint 为回归系数的区间估计,r: 残差 ,rint:
残差的置信区间,stats: 用于检验回归模型的统计量,有四个数值:相关系数 r2、F 值、与 F 对应的概率 p
和残差的方差(前两个越大越好,后两个越小越好),alpha: 显著性水平(缺省时为 0。05,即置信水平为 95
%),(alpha 不影响 b,只影响 bint(区间估计)。它越小,即置信度越高,则 bint 范围越大.显著水平越高,
则区间就越小)(返回五个结果)—-—如有 n 个自变量-有误(n 个待定系数),则 b 中就有 n+1 个系数(含
常数项,———第一项为常数项)(b---b 的范围/置信区间-—-残差 r-—-r 的置信区间 rint——-——点
估计---—区间估计
此段上课时不要:———- 如果
i
b
的置信区间(bint 的第
1i +
行)不包含 0,则在显著水平为
a
时拒绝
0
i
b
=
的假设,认为变量
i
x
是显著的.*******(而 rint 残差的区间应包含 0 则更好)。b,y 等均为列
向量,x 为矩阵(表示了一组实际的数据)必须在 x 第一列添加一个全 1 列.—-—-对应于常数项-—----—而
nlinfit 不能额外添加全 1 列。结果的系数就是与此矩阵相对应的(常数项,x1,x2,……xn)。(结果与参数
个数:1/5=2/3---——y,x 顺序—-—x 要额外添加全 1 列)
而 nlinfit:1/3=4—-—---x,y 顺序—--x 不能额外添加全 1 列,———需编程序,用于模仿需拟合的
函数的任意形式,一定两个参数,一为系数数组,二为自变量矩阵(每列为一个自变量)
有 n 个变量———不准确,x 中就有 n 列,再添加一个全 1 列(相当于常数项),就变为 n+1 列,则结果
中就有 n+1 个系数.
x 需要经过加工,如添加全 1 列,可能还要添加其他需要的变换数据。
相关系数 r2 越接近 1,说明回归方程越显著;(r2 越大越接近 1 越好)F 越大,说明回归方程越显著;
(F 越大越好)与 F 对应的概率 p 越小越好,一定要 P〈a 时拒绝 H0 而接受 H1,即回归模型成立。乘余(残
差)标准差(RMSE)越小越好(此处是残差的方差,还没有开方)(前两个越大越好,后两个越小越好)
regress 多元(可通过变形而适用于任意函数),15/23 顺序(y,x———结果是先常数项,与 polyfit
相反)y 为列向量;x 为矩阵,第一列为全 1 列(即对应于常数项),其余每一列对应于一个变量(或一个含
变量的项),即 x 要配成目标函数的形式(常数项在最前)x 中有多少列则结果的函数中就有多少项
首先要确定要拟合的函数形式,然后确定待定的系,从常数项开始排列,须构造 x(每列对应于函数中的
一项,剔除待定系数),拟合就是确定待定系数的过程(当然需先确定函数的型式)
重点:
regress(y,x) 重点与难点是如何加工处理矩阵 x。
y 是函数值,一定是只有一列.
(word 完整版)matlab 多元非线性回归
也即目标函数的形式是由矩阵 X 来确定
如 s=a+b*x1+c*x2+d*x3+e*x1^2+f*x2*x3+g*x1^2,
一定有一个常数项,且必须放在最前面(即 x 的第一列为全 1 列)
X 中的每一列对应于目标函数中的一项(目标函数有多少项则 x 中就有多少列)
X=[ones, x1, x2, x3, x1。^2, x2.*x3,x1.ˆ2] (剔除待定系数的形式)
regress: y/x 顺序,矩阵 X 需要加工处理
nlinfit: x/y 顺序,X/Y 就是原始的数据,不要做任何的加工。
(即 regress 靠矩阵 X 来确定目标函数的类型形式(所以 X 很复杂,要作很多处理) 而 nlinfit 是靠程
序来确定目标函数的类型形式(所以 X 就是原始数据,不要做任何处理)
例 1
测 16 名成年女子的身高与腿长所得数据如下:
身高
14
3
14
5
14
6
14
7
149
15
0
15
3
15
4
15
5
15
6
157
15
8
15
9
16
0
16
2
16
4
腿长
88
85
88
91
92
93
93
95
96
98
97
96
98
99
10
0
10
2
配成 y=a+b*x 形式
〉〉 x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]';
>〉 y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]';
〉〉 plot(x,y,’r+')
>> z=x;
〉〉 x=[ones(16,1),x];-——-常数项
140 145 150 155 160 165
84
86
88
90
92
94
96
98
100
102
(word 完整版)matlab 多元非线性回归
〉> [b,bint,r,rint,stats]=regress(y,x);-——处结果与 polyfit(x,y,1)相同
〉〉b,bint,stats
得结果:b = bint =
—16。0730 -33。7071 1。5612-----—每一行为一个区间
0。7194 0。6047 0.8340
stats = 0.9282 180。9531 0.0000
即
7194.0
ˆ
,073.16
ˆ
10
���
��
;
0
ˆ
�
的置信区间为[—33。7017,1.5612],
1
ˆ
�
的置信区间为[0。6047,0。
834]; r
2
=0。9282, F=180.9531, p=0。0.p〈0。05, 可知回归模型 y=-16.073+0。7194x 成立。
>> [b,bint,r,rint,stats]=regress(Y,X,0.05);---—-结果相同
>> [b,bint,r,rint,stats]=regress(Y,X,0。03);
〉> polyfit(x,y,1)-———-当为一元时(也只有一组数),则结果与 regress 是相同的,只是
命令中 x,y 要交换顺序,结果的系数排列顺序完全相反,x 中不需要全 1 列。
ans =0。7194 -16.0730——此题也可用 polyfit 求解,杀鸡用牛刀,脖子被切断。
3、残差分析,作残差图:
〉〉rcoplot(r,rint)
从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这
说明回归模型 y=—16。073+0.7194x 能较好的符合原始数据,而第二个数据可视为异常点(而剔除)
4、预测及作图:
>〉 plot(x,y,’r+') >〉 hold on
〉> a=140:165; >〉 b=b(1)+b(2)*a;
〉> plot(a,b,’g’)
2 4 6 8 10 12 14 16
-5
-4
-3
-2
-1
0
1
2
3
4
Residual Case Order P lot
Residuals
Case Number
(word 完整版)matlab 多元非线性回归
例 2
观 测 物 体 降 落 的 距 离 s 与 时 间 t 的 关 系 , 得 到 数 据 如 下 表 , 求 s 关 于 t 的 回 归 方 程
2
ˆ
ctbtas ���
t (s)
1/30
2/30
3/30
4/30
5/30
6/30
7/30
s (cm)
11.86
15。67
20.60
26.69
33.71
41.93
51.13
t (s)
8/30
9/30
10/30
11/30
12/30
13/30
14/30
s (cm)
61.49
72.90
85。44
99.08
113.77
129.54
146。48
法一:直接作二次多项式回归
t=1/30:1/30:14/30;
s=[11。86 15。67 20.60 26.69 33.71 41.93 51。13 61。49 72.90 85.44 99。08 113。77 129。54
146.48];
>〉 [p,S]=polyfit(t,s,2)
p =489.2946 65.8896 9.1329
得回归模型为 :
1329.98896.652946.489
ˆ
2
��� tts
方法二--—-化为多元线性回归:
2
ˆ
ctbtas ���
t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26。69 33.71 41.93 51。13 61。49 72。90 85。44 99.08 113。77 129。54
140 145 150 155 160 165
84
86
88
90
92
94
96
98
100
102
剩余21页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3650
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功