【Matlab】多元线性回归

多元线性回归

  • 一元线性回归
    • 绘图
    • 求参
  • 多元线性回归
    • regress函数
  • matlab 文档非常有用

一元线性回归

一个旧东西随着时间价格也在变动,数据如下:

1 2 3 4 5 6 7 8 9 10
265 1942 1493 1086 766 539 485 291 224 202

绘图

clear all
clc
x=1:10;
y=[2650,1942,1493,1086,766,539,485,291,224,202];
for i=1:10
    plot(x(i),y(i),'or');
    hold on
end
xlabel('x');
ylabel('y');

【Matlab】多元线性回归_第1张图片

由图可发现,x和y呈现指数关系,于是我们假设 z = ln ⁡ y z=\ln y z=lny,记作 z i = ln ⁡ y i z_i=\ln y_i zi=lnyi,重新绘图:

clear all
clc
x=1:10;
y=[2650,1942,1493,1086,766,539,485,291,224,202];
z=zeros(size(y));
N=length(y);
hold on
for i =1:N
    z(i)=log(y(i));
    plot(x(i),z(i),'ok');
end
xlabel('x');
ylabel('y');

【Matlab】多元线性回归_第2张图片
分析发现现在变得更拟合了。各点基本处于一条直线上,可以认为 z = a + b x z=a+bx z=a+bx

求参

clear all
clc
x=1:10;
y=[2650,1942,1493,1086,766,539,485,291,224,202];
z=zeros(size(y));
N=length(y);
for i =1:N
    z(i)=log(y(i));
end
[p,s]=polyfit(x,z,1)

返回结果:
【Matlab】多元线性回归_第3张图片
可以得出:a=8.1671,b=-0.2984,即 z = 8.1671 − 0.2984 x z=8.1671-0.2984x z=8.16710.2984x

多元线性回归

regress函数

%调用格式
[b,bint,r,rint,stats]=regress(y,x,alpha)

alpha为显著性水平,缺省设定为0.05, b表示为输出量, bint为回归系数估计值和他们的置信区间,r为残差, rint为置信区间, stats适用于检验回归模型的统计量。
案例如下:

x 1 x_1 x1 1.376 1.375 1.387 1.401 1.412 1.428 1.445 1.477
x 2 x_2 x2 0.450 0.475 0.485 0.5 0.535 0.545 0.55 0.575
x 3 x_3 x3 2.17 2.554 2.676 2.713 2.823 3.088 3.122 3.262
x 4 x_4 x4 0.8922 1.161 0.5346 0.9589 1.0239 1.0499 1.1065 1.1387
y y y 5.19 5.3 5.6 5.82 6 6.06 6.45 6.95
%开始多元回归
clear all
clc
x1=[1.376,1.375,1.387,1.401,1.412,1.428,1.445,1.477];
x2=[0.450,0.475,0.485,0.5,0.535,0.545,0.55,0.575];
x3=[2.170,2.554,2.676,2.713,2.823,3.088,3.122,3.262];
x4=[5.19,1.161,0.5346,0.9589,2.0239,1.0499,1.1065,1.1387];
y=[5.19,5.3,5.6,5.82,6,6.06,6.45,6.95];
save data x1 x2 x3 x4 y%保存数据
load data %取出数据
y=[y'];%转置矩阵
x=[ones(size(x1')),x1',x2',x3',x4'];
[b,bint,r,rint,stats]=regress(y,x)

【Matlab】多元线性回归_第4张图片
【Matlab】多元线性回归_第5张图片
根据b可以解得该函数关系式为:
y = − 20.5297 + 19.1269 x 1 + 8.0045 x 2 − 1.5867 x 3 − 0.1465 x 4 y=-20.5297+19.1269x_1+8.0045x_2-1.5867x_3 -0.1465x_4 y=20.5297+19.1269x1+8.0045x21.5867x30.1465x4

matlab 文档非常有用

文档连接:点击这里

你可能感兴趣的:(matlab实例,matlab,线性回归,开发语言)