matlab多元线性回归
1.matlab多元回归示例如下:
解决问题:油价预测
方法:多元线性回归
实现:matlab regress()函数
技巧:通过增加X1^2,X2^2,或者X1*X2等构造的特征项,可以提高回归模型的拟合准确度;但计算代价增大。
function result=reg_new_month(XX1_bu,YYnum) y=YYnum; a=XX1_bu; %由于alldata_pca已经进行归一化了;所以在回归分析中直接用就行 %a=load('alldata.txt'); x1=a(:,1) ; x2=a(:,2) ; x3=a(:,3) ; x4=a(:,4) ; x5=a(:,5) ; x6=a(:,6) ; x7=a(:,7) ; x8=a(:,8) ; x9=a(:,9) ; x11=x1.^2; x12=x2.^2; x13=x3.^2; x14=x4.^2; x15=x5.^2; x16=x6.^2; x17=x7.^2; x18=x8.^2; x19=x9.^2; x21=x1.*x2; x22=x2.*x3; x23=x3.*x4; x24=x4.*x5; x25=x5.*x6; x26=x6.*x7; x27=x7.*x8; x28=x8.*x9; x29=x9.*x1; X=[ones(length(y),1), x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x14,x15,x16,x17,x18,x19, x21,x22,x23,x24,x25,x26,x27,x28,x29]; [b,bint,r,rint,stats]=regress(y,X); % b; 相关系数 % bint % r;残差 %rint : 置信区间 % stats; 检验回归模型的统计量:分别为 rcoplot(r,rint) %画残差图
XXnum为原数据所有特征X;
YYnum为原数据所有目标值Y;
XX1_bu:是补全后的数据特征;
2.结果如下:
2.1残差图
2.2 指标
stats=[0.8259, 22.0910 ,1.2622e-33, 3464.8205]
R=stats(1)=0.82,越接近1则代表拟合得越好;
F=1.26e-33;F<0.05代表回归模型可用;
3 利用多元线性回归进行预测
输入测试X_test(若有多个X_test,可用循环或矩阵实现);
调用多元回归m函数;
输出Y_pred。
参考资料:
1.https://www.cnblogs.com/Mayfly-nymph/p/10539106.html ,作者:Hk_mayfly
2. https://zhuanlan.zhihu.com/p/45149297 ,一个大学生的日常笔记,回归分析