进行一元线性回归

一元线性回归用于研究因变量与一个自变量之间的线性关系。其回归模型为[大谦MATLAB,dqmatlab点com]

y=b0+b1x

在上式中,y为因变量,x为自变量,b0和b1为待定参数(b0被称为常数项,b1被称为回归系数)。

通常采用最小二乘法来确定这两个待定参数,即要求观测值与利用上述回归模型得到的拟合值的差值的平方和最小。将差值平方和达到最小时的模型参数作为待定参数的最终取值,代入模型中,便可以确定回归方程。

用regress函数进行一元线性回归。

b = regress(y, X):返回X处y的最小二乘拟合值。y为n1的向量,X为np的矩阵。

[b, bint, r, rint, stats] = regress(y, X):在b中返回系数的估计,在p2的向量bint中返回系数的95%置信区间。r为残差,在n2的向量rint中返回每一个残差的95%置信区间。stats向量包含R2统计量、回归的F值和p值。

[b, bint, r, rint, stats] = regress(y, X, alpha):给出bint和rint的100(1-alpha)%置信区间。例如,当alpha = 0.2时,给出80%置信区间。

下面生成X和随机的y,对它们进行一元线性回归分析。

code.matlab
>> X = [ones(10,1) (1:10)']
X =
     1     1
     1     2
     1     3
     1     4
     1     5
     1     6
     1     7
     1     8
     1     9
     1    10
>> y = X * [10;1] + normrnd(0,0.1,10,1)
y =
   11.1165
   12.0627
   13.0075
   14.0352
   14.9303
   16.1696
   17.0059
   18.1797
   19.0264
   20.0872
>> [b,bint] = regress(y,X,0.05)
b =
   10.0456
    1.0030
bint =
    9.9165   10.1747
    0.9822    1.0238

得到的结果为:y=10.0456+1.0030

也可以用polyfit函数实现一元线性回归。对于给定的数据,该函数返回一元线性回归方差的系数。

为研究在某个化学反应过程中,温度x对产品得率y的影响,测得数据如下:

温度x 100 110 120 130 140 150 160 170 180 190

得率y 45 51 54 61 66 70 74 78 85 89

在命令窗口中输入下面的命令行:

code.matlab
>> x=[100 110 120 130 140 150 160 170 180 190];
>> y=[45 51 54 61 66 70 74 78 85 89];
>> [p,s]=polyfit(x,y,1)

code.matlab
p =
    0.4830   -2.7394
s =
        R: [2x2 double]
       df: 8
    normr: 2.6878

所以,回归方程为

y=0.4830x-2.7394