function [ b, bint, r, rint, stats ] = Multiple_linear_regression( X,y,alpha )
%Multiple_linear_regression 多元线性回归
%对于输入数据(必须是去除量纲之后的数据)进行多元线性回归处理
% 输入变量
% X:由自变量组成的矩阵(第一列必须全为1)
% y:因变量(列向量)
% alpha:显著性水平(缺省时默认为0.05)
% 若X中两个原本全为变量,需第一列加上1,作为最后常数项的系数预测
% 输出变量
% b为线性回归模型Y = X*B回归系数(即斜率参数)第一个是常数项系数
% bint为b的置信区间(按行显示)
% r为残差(实际值与拟合值的差)
% rint为残差的置信区间
% stats包含如下四个统计量
% R^2统计量(越接近1,变量的线性相关性越强,说明模型有效)
% F统计量
% F(1,n-2)分布大于F的概率p值(显著性水平,判断原始假设是否正确的重要证据)
% 剩余方差s^2(主要用来比较模型是否有改进,越小则模型精度越高)
X = [ones(size(y)),X];
[b, bint, r, rint, stats] = regress(y,X,alpha);
if stats(3)<0.01
disp('F(1,n-2)分布大于F的概率p值为:');
disp( stats(3) );
disp('p值很小(P<0.001),说明拟合模型有效');
else
disp('p值较大(P>0.001),说明拟合模型效果不好');
end
%% 画出拟合效果图
figure
y_fitting = X*b;
t = 1:length(y);
plot(t,y_fitting,'r-',t,y,'b-',t,abs(y_fitting-y),'k-');
legend({'红——拟合值','蓝——实际值','黑——误差值'},'fontsize',12,'Location','NorthWest');
xlabel('点的序号','fontsize',12);
ylabel('y对应的值','fontsize',12);
set(gca, 'XGrid','on'); % X轴的网格
set(gca, 'YGrid','on'); % Y轴的网格
end
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
18.多元线性回归.zip (2个子文件)
18.多元线性回归
main.m 921B
Multiple_linear_regression.m 1KB
共 2 条
- 1
资源评论
AIDog
- 粉丝: 740
- 资源: 33
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功