回归(拟合)自己的总结(20100728)
1:学三条命令:polyfit(x,y,n)---拟合成一元幂函数(一元多次)
              regress(y,x)----可以多元,              nlinfit(x,y,fun,beta0)  (可用于任何类型的函数,任意多元函数,应用范围最主,最万能的)
2:同一个问题,可能这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标准的答案。相当于咨询多个专家。
3:回归的操作步骤:
(1)根据图形(实际点),选配一条恰当的函数形式(类型)---需要数学理论与基础和经验。(并写出该函数表达式的一般形式,含待定系数)
(2)选用某条回归命令求出所有的待定系数
所以可以说,回归就是求待定系数的过程(需确定函数的形式)
配曲线的一般方法是:
(一)先对两个变量xy 作n次试验观察得画出散点图
散点图
(二)根据散点图确定须配曲线的类型.
通常选择的六类曲线如下:
(1)双曲线
(2)幂函数曲线y=a, 其中x>0,a>0
(3)指数曲线y=a其中参数a>0.
(4)倒指数曲线y=a其中a>0
(5)对数曲线y=a+blogx,x>0
(6)S型曲线
(三)然后由n对试验数据确定每一类曲线的未知参数a和b.
一、一元多次拟合polyfit(x,y,n)
一元回归polyfit
多元回归regress---nlinfit(非线性)
二、多元回归分析
(其实可以是非线性,它通用性极高)
对于多元线性回归模型:
设变量n组观测值为
,则 的估计值为
排列方式与线性代数中的线性方程组相同()
拟合成多元函数---regress
使用格式: 
左边用b=或[b, bint, r, rint, stats]=
右边用regress(y, x)    或
regress(y, x, alpha)
---命令中是先y后x,
---须构造好矩阵x(x中的每列与目标函数的一项对应)
---并且x要在最前面额外添加全1列/对应于常数项
---y必须是列向量
---结果是从常数项开始---与polyfit的不同。)
其中:
  b为回归系数的估计值(第一个为常数项).
bint为回归系数的区间估计
r: 残差
rint:正则化一个五行五列的随机矩阵 残差的置信区间
stats: 用于检验回归模型的统计量,有四个数值:相关系数r2F值、与F对应的概率p和残差的方差(前两个越大越好,后两个越小越好)
alpha: 显著性水平(缺省时为0.05,即置信水平为95%)
(alpha不影响b,只影响bint(区间估计)。它越小,即置信度越高,则bint范围越大。显著水平越高,则区间就越小)
(返回五个结果)---如有n个自变量-有误(n个待定系数),则b 中就有n+1个系数(含常数项,---第一项为常数项)
(b---b的范围/置信区间---残差r---r的置信区间rint-----
点估计----区间估计
此段上课时不要:---- 如果的置信区间(bint的第行)不包含0,则在显著水平为时拒绝的假设,认为变量是显著的*******(而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是函数值,一定是只有一列。
也即目标函数的形式是由矩阵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名成年女子的身高与腿长所得数据如下:
身高
143
145
146
147
149
150
153
154
155
156
157
158
159
160
162
164
腿长
88
85
88
91
92
93
93
95
96
98
97
96
98
99
100
102

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