【转】使用matlab做回归分析

标签:
杂谈 |
分类: Matlab |
[B,BINT,R,RINT,STATS] = REGRESS(Y,X,alpha)
函数的返回值中,B是回归系数向量,BINT是B在95%置信度下的置信区间,R是残差序列,RINT是残差在5%显著性水平下的矩阵,可用于判断模型的有效性,STATS是一个包含模型统计变量的向量,该函数的详细信息如下表:
回归函数regress的特征 |
|||
|
变量 |
变量含义 |
变量特征 |
输出参数 |
Y |
因变量 |
nx1的矩阵 |
X |
自变量 |
带常数项时须将第一列置为全1 |
|
alpha |
置信度,默认为5% |
|
|
输出参数 |
B |
模型估计值beta向量 |
|
R |
模型残差序列 |
|
|
BINT |
beta的置信区间 |
置信区间受alpha控制,默认为95% |
|
RINT |
残差序列的置信区间 |
||
STATS |
模型的统计信息,包括四项,分别为拟合度R2,模型显著性F值,P值,残差的标准差 |
更多的信息,如变量的t值,需要使用regstats函数 |
执行如下命令:
>>[B,BINT,R,RINT,STATS]=regress(price2ret(flipud(CPI)),[ones(49,1) price2ret(flipud(M2))])
得出如下结果:
B =[0.00027982
BINT =[ -0.0031271
STATS =[0.0016017
该模型的拟合度R2只有0.0016,F值也只有0.075,显然该模型是不合理的,我国近年来CPI的变化无法用M2解释,真是怪现象。
第三步是像Eviews一样输出详细、可读性强的结果。
模型估计过之后,像eviews里那样,也可以很方便的得到残差图。只需如下代码:
Plotyy(1
看到了这个图之后,就知道这个模型根本没必要做了,用线性模型没法分析它们之间的关系。
第四步:保存数据、保存程序,留作后用。
有些数据是我们辛辛苦苦导入到Matlab环境里去的,将来可能还会需要重复使用,有没有办法不用每次都复杂地从excel里导入呢?Matlab提供了非常方便的方法来实现这一点,使用save命令就可以把当前工作环境中的全部变量保存到文件中去:save datafilename。这样,你的数据就使用mtalab的一种mat文件格式保存起来了,关闭了matlab之后依然存在。下次需要使用时,只需load datafilename就可以将里面的变量加载到当前工作环境了。
如果你是在matlab里用命令行窗口不断修改、调试你的模型,到最后别忘了把工作成果保存起来,把导入数据,模型分析和模型结果的图形显示集成起来,编写成一个良好的.m文件,如果能改写成function就更好了。