matlab学习:regress函数、stepwise函数、lasso函数

做数据量化推理的大作业,考虑了几种回归模型,由于网上的资料并不多,只能借鉴部分信息,再加上自己的尝试,算是学会了matlabregress、stepwise、lasso三个函数的一些用法,分享出来。

先分享下有关regress函数的内容

>> x=xlsread('数据清洗.xlsx','Sheet1','B2:M1001');
>> y=xlsread('数据清洗.xlsx','Sheet1','A2:A1001');
>> X=[ones(size(y)),x];
>> [b,bint,r,rint,stats]=regress(y,X)

输入excel表中数据到x、y中,由于regress函数调用有点特殊,需要给x补充一个列向量形成X,并且调用时y在前X在后。
b给出一个列向量,即为回归系数
bint则是其对应的置信区间
r给出的是残差
rint则是残差的置信区间
stats给出四个回归参数,分别为R^2、F、p、MSq
R^2越接近于1,模型拟合越好;F需要符合检验;p接近于0,模型拟合较好;MSq越小说明可信度越高。
α缺省值为0.05,也可直接在函数中X后输入。

stepwise函数在matlab中有一个交互界面
直接调用即可

>> stepwise(x,y)

在这里插入图片描述得到的界面如图,这里可以鼠标直接点击左侧小圆圈选中变量,红色表示变量没被引入,蓝色表示被引入,通过逐步调整变量找到最小的RMSE即得到最终回归参数。
可以选择next step逐步点击或all steps跳过
在这里插入图片描述
这里看图说话,最终变量x8、x9、x11被保留,coeff即为其回归系数,intercept为常数项,后面的R^2与regress相同,越接近于1则拟合程度越好,其他参数同样。

这里也可用函数stepwisefit

>> [B,SE,PVAL,INMODEL,STATS,NEXTSTEP,HISTORY]=stepwisefit(x,y)

结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
即跳过了交互界面,直接给出结果,包括每一步中变量的引入等,具体各参数也没有了解太多,但简单翻译就够用了哈哈。

lasso函数在matlab中的引用网上没有太多介绍,毕竟没有太多了解算法,单纯为了数据分析,我也是借用help函数摸爬滚打简单摸索了些用法。

>> [B,FitInfo] = lasso(x,y,'Alpha',0.5,'CV',10,'PredictorNames',{'x1','x2','x3','x4','x5','x6','x7','x8','x9','x10','x11','x12'});

这里参数α为0.5、交叉验证设置CV为10,并设置各变量名称。
lasso函数会进行不断地交叉验证并返回100个结果。
FitInfo返回的是如下的结构变量
在这里插入图片描述
值得注意这里的LambdaMinMSE和IndexMinMSE,分别为验证时MSE最小值加一个标准偏差对应的λ和MSE最小值对应的λ。
通过如下代码直观看出交叉验证时的MSE图像

>> lassoPlot(B,FitInfo,'PlotType','CV');
>> legend('show')

在这里插入图片描述
实际使用时这两个点均可考虑,以选取Lambda1SE为例

>> idxLambda1SE = FitInfo.Index1SE;
>> coef = B(:,idxLambda1SE);
>> coef0 = FitInfo.Intercept(idxLambda1SE);
>> sparseModelPredictors = FitInfo.PredictorNames(B(:,idxLambda1SE)~=0);

此处coef即为对应该λ时的回归系数,coef0为常数项,并给出该λ选取时回归系数为0的变量名称。

简单调用就说这些,有空再研究具体参数。

  • 14
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值