在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,[引文需要],而不是一个单一的标量变量。)
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
回归分析中有多个自变量:这里有一个原则问题,这些自变量的重要性,究竟谁是最重要,谁是比较重要,谁是不重要。所以,spss线性回归有一个和逐步判别分析的等价的设置。
原理:是F检验。spss中的操作是“分析”~“回归”~“线性”主对话框方法框中需先选定“逐步”方法~“选项”子对话框
如果是选择“用F检验的概率值”,越小代表这个变量越容易进入方程。原因是这个变量的F检验的概率小,说明它显著,也就是这个变量对回归方程的贡献越大,进一步说就是该变量被引入回归方程的资格越大。究其根本,就是零假设分水岭,例如要是把进入设为0.05,大于它说明接受零假设,这个变量对回归方程没有什么重要性,但是一旦小于0.05,说明,这个变量很重要应该引起注意。这个0.05就是进入回归方程的通行证。
下一步:“移除”选项:如果一个自变量F检验的P值也就是概率值大于移除中所设置的值,这个变量就要被移除回归方程。spss回归分析也就是把自变量作为一组待选的商品,高于这个价就不要,低于一个比这个价小一些的就买来。所以“移除”中的值要大于“进入”中的值,默认“进入”值为0.05,“移除”值为0.10
如果,使用“采用F值”作为判据,整个情况就颠倒了,“进入”值大于“移除”值,并且是自变量的进入值需要大于设定值才能进入回归方程。这里的原因就是F检验原理的计算公式。所以才有这样的差别。
结果:如同判别分析的逐步方法,表格中给出所有自变量进入回归方程情况。这个表格的标志是,第一列写着拟合步骤编号,第二列写着每步进入回归方程的编号,第三列写着从回归方程中剔除的自变量。第四列写着自变量引入或者剔除的判据,下面跟着一堆文字。
这种设置的根本目的:挑选符合的变量,剔除不符合的变量
注意:spss中还有一个设置,“在等式中包含常量”,它的作用是如果不选择它,回归模型经过原点,如果选择它,回归方程就有常数项。这个选项选和不选是不一样的。
在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。这些模型被叫做线性模型。最常用的线性回归建模是给定X值的y的条件均值是X的仿射函数。不太一般的情况,线性回归模型可以是一个中位数或一些其他的给定X的条件下y的条件分布的分位数作为X的线性函数表示。像所有形式的回归分析一样,线性回归也把焦点放在给定X值的y的条件概率分布,而不是X和y的联合概率分布(多元分析领域)。
线性回归是回归分析中第一种经过严格研究并在实际应用中广泛使用的类型。这是因为线性依赖于其未知参数的模型比非线性依赖于其位置参数的模型更容易拟合,而且产生的估计的统计特性也更容易确定。
线性回归有很多实际用途。分为以下两大类: 如果目标是预测或者映射,线性回归可以用来对观测数据集的和X的值拟合出一个预测模型。当完成这样一个模型以后,对于一个新增的X值,在没有给定与它相配对的y的情况下,可以用这个拟合过的模型预测出一个y值。这是比方差分析进一步的作用,就是根据现在,预测未来。虽然,线性回归和方差都是需要因变量为连续变量,自变量为分类变量,自变量可以有一个或者多个,但是,线性回归增加另一个功能,也就是凭什么预测未来,就是凭回归方程。这个回归方程的因变量是一个未知数,也是一个估计数,虽然估计,但是,只要有规律,就能预测未来。 给定一个变量y和一些变量X1,...,Xp,这些变量有可能与y相关,线性回归分析可以用来量化y与Xj之间相关性的强度,评估出与y不相关的Xj,并识别出哪些Xj的子集包含了关于y的冗余信息。 线性回归模型经常用最小二乘逼近来拟合,但他们也可能用别的方法来拟合,比如用最小化“拟合缺陷”在一些其他规范里(比如最小绝对误差回归),或者在桥回归中最小化最小二乘损失函数的惩罚.相反,最小二乘逼近可以用来拟合那些非线性的模型.因此,尽管“最小二乘法”和“线性模型”是紧密相连的,但他们是不能划等号的。
数据组说明线性回归
以一简单数据组来说明什么是线性回归。假设有一组数据型态为 y=y(x),其中
x={0, 1, 2, 3, 4, 5}, y={0, 20, 60, 68, 77, 110}
如果要以一个最简单的方程式来近似这组数据,则用一阶的线性方程式最为适合。先将这组数据绘图如下
图中的斜线是随意假设一阶线性方程式 y=20x,用以代表这些数据的一个方程式。以下将上述绘图的MATLAB指令列出,并计算这个线性方程式的 y 值与原数据 y 值间误差平方的总合。
>> x=[0 1 2 3 4 5];
>> y=[0 20 60 68 77 110];
>> y1=20*x; % 一阶线性方程式的 y1 值
>> sum_sq = sum((y-y1).^2); % 误差平方总和为 573
>> axis([-1,6,-20,120])
>> plot(x,y1,x,y,'o'), title('Linear estimate'), grid
如此任意的假设一个线性方程式并无根据,如果换成其它人来设定就可能采用不同的线性方程式;所以必须要有比较精确方式决定理想的线性方程式。可以要求误差平方的总和为最小,做为决定理想的线性方程式的准则,这样的方法就称为最小平方误差(least squares error)或是线性回归。MATLAB的polyfit函数提供了 从一阶到高阶多项式的回归法,其语法为polyfit(x,y,n),其中x,y为输入数据组n为多项式的阶数,n=1就是一阶 的线性回归法。polyfit函数所建立的多项式可以写成
从polyfit函数得到的输出值就是上述的各项系数,以一阶线性回归为例n=1,所以只有 二个输出值。如果指令为coef=polyfit(x,y,n),则coef(1)= , coef(2)=,...,coef(n+1)= 。注意上式对n 阶的多 项式会有 n+1 项的系数。看以下的线性回归的示范:
>> x=[0 1 2 3 4 5];
>> y=[0 20 60 68 77 110];
>> coef=polyfit(x,y,1); % coef 代表线性回归的二个输出值
>> a0=coef(1); a1=coef(2);
>> ybest=a0*x+a1; % 由线性回归产生的一阶方程式
>> sum_sq=sum((y-ybest).^2); % 误差平方总合为 356.82
>> axis([-1,6,-20,120])
>> plot(x,ybest,x,y,'o'), title('Linear regression estimate'), grid