一元线性回归用于研究因变量与一个自变量之间的线性关系。其回归模型为[大谦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,对它们进行一元线性回归分析。
>> 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
在命令窗口中输入下面的命令行:
>> 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)
得
p =
0.4830 -2.7394
s =
R: [2x2 double]
df: 8
normr: 2.6878
所以,回归方程为
y=0.4830x-2.7394