方差分析线性回归.docx
《方差分析线性回归.docx》由会员分享,可在线阅读,更多相关《方差分析线性回归.docx(22页珍藏版)》请在冰豆网上搜索。
方差分析线性回归
1线性回归
1.1原理分析
要研究最大积雪深度x与灌溉面积y之间的关系,测试得到近10年的数据如下表:
使用线性回归的方法可以估计x与y之间的线性关系。
线性回归方程式:
对应的估计方程式为
线性回归完成的任务是,依据观测数据集(x1,y1),(x2,y2),...,(xn,yn)使用线性拟合估计回归方程中的参数a和b。
a,b都为估计结果,原方程中的真实值一般用α和β表示。
为什么要做这种拟合呢?
答案是:
为了预测。
比如根据前期的股票数据拟合得到股票的变化趋势(当然股票的变化可就不是这么简单的线性关系了)。
线性回归的拟合过程使用最小二乘法,
最小二乘法的原理是:
选择a,b的值,使得残差的平方和最小。
为什么是平方和最小,不是绝对值的和?
答案是,绝对值也可以,但是,绝对值进行代数运算没有平方那样的方便,4次方又显得太复杂,数学中这种“转化化归”的思路表现得是那么的优美!
残差平方和Q,
求最小,方法有很多。
代数方法是求导,还有一些运筹学优化的方法(梯度下降、牛顿法),这里只需要使用求导就OK了,
为表示方便,引入一些符号,
最终估计参数a与b的结果是:
自此,针对前面的例子,只要将观测数据带入上面表达式即可计算得到拟合之后的a和b。
不妨试一试?
从线性函数的角度,b表示的拟合直线的斜率,不考虑数学的严谨性,从应用的角度,结果的b可以看成是离散点的斜率,表示变化趋势,b的绝对值越大,表示数据的变化越快。
线性回归的估计方法存在误差,误差的大小通过Q衡量。
1.2误差分析
考虑获取观测数据的实验中存在其它的影响因素,将这些因素全部考虑到e~N(0,δ^2)中,回归方程重写为
y=a+bx+e
由此计算估计量a与b的方差结果为,
a与b的方差不仅与δ和x的波动大小有关,而且还与观察数据的个数有关。
在设计观测实验时,x的取值越分散,估计ab的误差就越小,数据量越大,估计量b的效果越好。
这也许能为设计实验搜集数据提供某些指导。
1.3拟合优度检验及统计量
拟合优度检验模型对样本观测值的拟合程度,其方法是构造一个可以表征拟合程度的指标,称为统计量,统计量是样本的函数。
从检验对象中计算出该统计量的数值,然后与某一标准进行比较,得出检验结论。
这是又会问了,最小二乘法不是保证了模型最好的拟合样本观测值了吗?
为什么还要检验拟合程度?
最小二乘法保证的是同一个样本集使用最小二乘法拟合程度最好,而拟合优度检验结果表示的是多个不同样本集各自进行拟合后对拟合效果的比较。
比如,下面的直线方程都是使用最小二乘法拟合的结果,但二者对样本观测值的拟合程度显然不同。
为构造统计量,先定义三个表达式:
通过推倒可以发现:
表示观测值y1,y2,y3,...yn与它们的平均值的离差平方和,越大,则观测值的波动越大。
因此称总离差平方和。
表示回归直线上点的纵坐标^y1,^y2,...,^yn与与观测值均值的离差平方和。
所以称为回归平方和。
反映出回归直线因素对的影响。
是最小二乘法中残差平方和Q的最小值,它是实际观测值yi与回归直线上的点(xi,^yi)的纵坐标^yi的离差平方和。
是扣除线性影响外的剩余平方和,因此称为残差平方和。
显然,一个拟合得比较好的模型,与应该比较接近,而应该尽可能的小。
因此,可以通过构造某种与的表达式作为拟合优度检验中的统计量。
∙构造统计量——相关系数
因此,构造相关系数
不同的r值有不同的线性相关表示,如下图
结论:
当|r|->0时,表示x与y之间的线性关系不明显,不适合使用线性回归建模。
反之,当|r|越接近1时,表示x与y之间的线性关系越密切。
∙构造统计量——F
F值越小表示线性关系越密切,反之线性关系越弱。
∙构造统计量——t
|t|越大,x与y之间的线性关系越密切;反之,越小,x与y之间的线性关系越微弱。
不管是相关系数,还是F,或者t,都能用于描述x与y之间的线性相关程度。
并且可以通过验证,这三种统计量用于下面的显著性检验是完全一致的。
1.4显著性检验
显著性检验,
以开头“最大积雪深度x与灌溉面积y之间的关系”的线性关系是否显著为例,使用上面构造的统计量进行显著性检验的过程如下:
在当中,计算线性回归及显著性检验使用到如下的公式,下面的公式不用记住,使用时查询即可。
相关系数的查表参见相关系数显著性检验表
1.5置信区间
回归系数α以1-α为置信度的置信区间为
回归系数β以1-α为置信度的置信区间为
其中S都为,
1.6使用Matlab做回归分析
使用最小二乘法做多元线性回归分析的函数为:
[b,bint,r,rint,stats]=regress(y,X,alpha);
%alpha为显著性水平
%bbint为回归系数估计值向量及其置信区间
%rrint为残差向量及其置信区间,可用rcoplot(r,rint)绘图
下面是一个使用Matlab做线性回归分析的实例:
EG:
x0.100.110.120.130.140.150.160.170.18
y42.041.545.045.545.047.549.055.050.0
Matlab代码如下:
clearall
clf
closeall
%绘制(X,Y)散点图
figure,
x=0.1:
0.01:
0.18;
y=[42,41.5,45.0,45.5,45.0,47.5,49.0,55.0,50.0];
plot(x,y,'+')
%线性回归分析
x1=x';
y1=y';
x2=[ones(9,1),x1];
[b,bint,r,rint,stats]=regress(y1,x2);
%绘制拟合直线
y=b
(2)*x+b
(1);
holdon,plot(x,y,'r');
%绘制残差图
figure,rcoplot(r,rint);
结果为拟合直线图和残差图如下:
在Matlab中还可以使用polyfit函数非常方便的对数据进行拟合,polyfit除了能进行线性拟合,还可以进行非线性的拟合。
使用polyfit拟合方法如下:
%绘制(X,Y)散点图
figure,
x=0.1:
0.01:
0.18;
y=[42,41.5,45.0,45.5,45.0,47.5,49.0,55.0,50.0];
plot(x,y,'+');
%绘制拟合直线
holdon,
p=polyfit(x',y',1);
y=p
(1).*x+p
(2);
plot(x,y2,'r');
拟合结果与上面的一样。
1.7回归分析的实际操作步骤
回归分析的主要内容是通过试验或观测数据,寻找相关变量之间的统计规律性,再利用自变量的值有效预测因变量的可能取值。
其实际操作的步骤是:
1.设定回归方程
2.根据误差分析,考虑搜集数据对回归方程参数的影响,有目的的搜集数据
3.确定回归系数
4.进行相关性检验
5.预测
2方差分析
2.1引入
如上图,对A1~A4共4种不同灯丝的灯泡进行抽样检测灯泡寿命,根据测试数据,现在要问:
灯泡寿命是否与灯丝材料的不同有关。
问题特点有:
∙1项指标(因变量):
寿命
∙影响指标的因素(因子):
灯丝
∙因素存在多个不同状态(水平),要求分析因素的不同状态是否对指标有显著影响
这就是方差分析问题:
用数理统计分析试验结果、鉴别各因素对结果影响程度的方法称为方差分析(AnalysisOfVariance),记作ANOVA。
2.2单因素方差分析
其它因素不变,只考虑一个因素A,因素存在多个水平,在每个水平上做若干次实验,从实验结果推断是否该因素对指标有显著影响?
这就是单因素的方差分析,上面的例子就是单因素方差分析的例子。
∙前提假设
设因素A的r个水平为A1,A1,...,Ar,每个水平下的指标服从正态分布N(u1,δ2),N(u2,δ2),...,N(ur,δ2)。
∙模型建立
实验数据的格式:
因子对指标是否有影响取决于指标的正态分布是否一致,如果有影响,则正态分布应该存在差异,而正态分布由均值和方差决定,假设中方差相同,因此各个水平下的正态分布均值直接决定因素是否对指标有影响。
所以,问题可以转化为假设检验,设
H0:
u1=u2=u3=...=ur
检验结果如果拒绝原假设,则认为因素A对指标有显著影响,否则认为无显著影响。
设
u=(1/r)\sum_1^a{ui}
αi=ui-u
则,H0假设改写成
H0:
α1=α2=α3=...=αr=0
∙构造统计量(摘自《数学建模Matlab大全》)
∙单因素方差分析表
过对上面模型中相关参数进行计算,为计算分析方便,将结果填入下表中:
表中的Pr反映的就是>F值的概率,F值通过因素A均方除以误差均方获得。
因此,有
1.如果Pr大于α,则接受H0,因素对指标无显著影响
2.如果Pr小于α,则拒绝H0,因素对指标有显著影响
Matlab的输出结果即为上面的方差分析表,因此,用matlab很容易进行方差分析。
2.3用Matlab进行单因素方差分析
能否认为这三所小学五年级男学生的平均身高相同?
取显著水平α=0.05.
假设H0:
这三所小学五年级男学生的平均身高相同。
data=[...
128.1134.1131.1138.9140.8127.4;...
150.3147.9136.8126.0150.7155.8;...
140.6143.1144.5143.7148.5146.4...
];
data=data';
P=anova1(data);%方差分析函数anova1
Matlab程序的运行结果为:
∵Pr=0.0275<α∴拒绝H0,即不能认为这三所小学五年级男学生的平均身高相同。
实验数据也可以是非平衡数据,如上,假设小学2的测试数据少一组:
此时,anova1调用格式有所改变,
p=anova1(x,group)
%x为向量,从第1组到第r组数据依次排列;group为与x同长度的向量,标志x中数
%据的组别(在与x第i组数据相对应的位置处输入整数i=1,2,..r)
此时的Matlab代码为:
x=[...
128.1134.1131.1138.9