爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 33595|回复: 27

[程序设计] 用Matlab做回归分析

[复制链接]

新浪微博达人勋

发表于 2013-4-4 16:10:49 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 Aires 于 2013-4-4 16:56 编辑

这里简单介绍一下如何用Matlab做回归分析。
一、多元线性回归
regress函数:
比较复杂的输出用法:
[b bint r rint stats]=regress(y,X)
当然还可以设置信度(alpha).

Matlab对列资料矩阵处理,所以在开始准备数据的时候应该把预报量y和预报因子X矩阵放成列资料矩阵。在X矩阵的第一列应放置全是1的数,则求得的回归系数中包含常数项。
b是求得的回归系数(如果你在X矩阵左边加了一列1,则b中包含常数项b0),bint是回归系数95%的置信区间,r是残差,rint是残差95%的置信区间,stats包含4个参数:判定系数R方,F统计量的观测值,检验的p值,误差方差的估计值。
二、用Matlab实现逐步回归
用Matlab做逐步回归,非常的简单,如果你不设置特殊参数的话,只需要一步即可完成

函数stepwise:
stepwise(X,y,inmodel,penter,premove)
X和y也是竖资料阵,在用stepwise函数的时候不需要在X矩阵的第一列加入全是1的数。该函数会自动加1。inmodel可以是一个与X列数相等的逻辑变量,也可以是一个下标变量。penter表示指定变量进入模型的最大显著性水平(默认值为0.05),小于这个值的变量不能被引入该模型。premove表示从模型中剔除变量的最小显著性水平(默认为penter和0.1的最大值),p值大于premove的变量被剔除。penter必须小于等于premove。

用这个函数做逐步回归非常的简单,可做交互式逐步回归分析。
首先准备X和y,把它们变成竖资料阵。然后调用stepwise函数。在界面中的具体各参数的意义就不多说了,有兴趣的可以help学习查看。
下面给出个例子。我用x1~x4 四个预报因子和预报量y做逐步回归分析。调用函数后如果你不关心中间过程,只需要点击右边的All steps,即可完成逐步回归。
QQ截图20130404150039.jpg
图中可以看到,左侧有蓝线和红线,最左侧是预报因子x1~x4,蓝色表示引入的因子,而红色表示剔除的因子,所以x3因子被剔除。所得到的回归方程的系数为coeff.一列的数,常数项bo为下面的intercept。所以最后用逐步回归求得的回归方程为:
y^=-31.8001-0.421296x1+1.12928x2+0.53148x4

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-4 20:05:45 | 显示全部楼层
matlab还做了出图显示  R里面直接step就可完成逐步回归  
请问小A  matlab里面剔除因子 是根据最小AIC准则吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-4 21:39:53 | 显示全部楼层
请问楼主是如何调出step regression的图形界面的呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-7 20:50:04 | 显示全部楼层
想问一下版主,X和Y必须要是相同的size对吗?老师要求我把EOF分解出来的时间系数回归到空间场上,这个怎么实现回归呢?请求指导
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-8 10:26:03 | 显示全部楼层

不好意思,这几天没电没网一直没看到= =
matlab应该是根据F统计量或者p值检验的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-8 10:27:12 | 显示全部楼层
kongfeng0824 发表于 2013-4-4 21:39
请问楼主是如何调出step regression的图形界面的呢?

命令窗口下运行stepwise函数就可以了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-8 10:28:08 | 显示全部楼层
若兰 发表于 2013-4-7 20:50
想问一下版主,X和Y必须要是相同的size对吗?老师要求我把EOF分解出来的时间系数回归到空间场上,这个怎么实 ...

这是多元线性回归,x和y怎么可能是一样的size呢,列数就不一样啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-8 10:54:54 | 显示全部楼层
Aires 发表于 2013-4-8 10:26
不好意思,这几天没电没网一直没看到= =
matlab应该是根据F统计量或者p值检验的。

今天又弄了点统计的东西...发现..我完蛋了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-8 11:54:01 | 显示全部楼层
topmad 发表于 2013-4-8 10:54
今天又弄了点统计的东西...发现..我完蛋了

怎么呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-8 12:10:22 | 显示全部楼层

各种迷糊啊...快闹不清楚了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表