回归(拟合)自己的总结(20100728)
1:学三条命令:polyfit(x,y,n)---拟合成一元幂函数(一元多次)
regress(y,x)----可以多元, nlinfit(x,y,’fun’,beta0) (可用于任何类型的函数,任意多元函数,应用范围最主,最万能的)
2:同一个问题,可能这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标准的答案。相当于咨询多个专家。
3:回归的操作步骤:
(1)根据图形(实际点),选配一条恰当的函数形式(类型)---需要数学理论与基础和经验。(并写出该函数表达式的一般形式,含待定系数)
(2)选用某条回归命令求出所有的待定系数
所以可以说,回归就是求待定系数的过程(需确定函数的形式)
配曲线的一般方法是:
(一)先对两个变量x和y 作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: 用于检验回归模型的统计量,有四个数值:相关系数r2、F值、与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小时内删除。
发表评论