赞
踩
回归分析是一种应用广泛的数理统计方法,它是研究变量与变量之间的相关关系,这种关系大致分为两类:确定性关系(能用函数精确描述)和非确定性关系(不能用函数描述)。
变量间的非确定性关系称为相关关系。
在回归分析中的相关关系主要分为两类:一类是随机变量之间的相关关系,另一类是随机变量和普通变量间的相关关系,本文只研究后一类。
随机变量称为因变量或响应变量,只能观测但不能控制;普通变量称为自变量或解释变量或预报变量或设计变量,是可控变量,根据需要预先确定。
本文只研究一个因变量一个自变量之间的线性关系,即为一元线性回归分析。
回归分析的主要任务是通过样本来估计回归函数y_hate(x),并利用此估计进行预测和控制。
为研究温度x对于某个化学过程生产量y的影响,收集到的数据如表所示:
x | -5 ,-4,-3,-2,-1,0,1,2,3,4,5 |
---|---|
y | 1,5,4,7,10,8,9,13,14,13,18 |
对上数据进行回归分析。
首先我们要把数据的散点图打出来,看看数据的大体分布,这对我们下面的模型建立很重要!
首先建立数组x和数组y来容纳数据然后使用plot函数绘制散点图
x=c(-5,-4,-3,-2,-1,0,1,2,3,4,5)
y=c(1,5,4,7,10,8,9,13,14,13,18)
plot(x,y)
结果如图示:
能够看出,自变量x和响应变量y之间具有明显的线性关系,即有y=a+bx,我们下面建立线性回归分析模型。
使用函数lm()建立回归分析模型,公式y~1+x代表用x和常数去拟合y,1代表常数,x代表自变量x的一次项,要是有x的N次项,其形式为“I(x^N)”(其中I是大写的i),不能直接写括号内的公式!!!将回归模型命名为test。
x=c(-5,-4,-3,-2,-1,0,1,2,3,4,5)
y=c(1,5,4,7,10,8,9,13,14,13,18)
plot(x,y)
test=lm(y~1+x)
test
其结果如下:
Call:
lm(formula = y ~ 1 + x)
Coefficients:
(Intercept) x
9.273 1.436
即系数a的估计值为9.273,系数b的估计值为1.436
使用abline()函数绘制回归直线
abline(test)
得到
可以看出直线对点的拟合效果不错。
数学的东西是不能只用眼睛去看的,我们还要用数学工具去检验我们得到的模型是否正确
方差检验:回归的显著性检验,衡量方程是否建立准确,也就是衡量本例究竟是不是一元线性回归模型。(F检验)
anova(test)
结果为
Analysis of Variance Table
Response: y
Df Sum Sq Mean SqF F value Pr(>F)
x 1 226.945 226.94 96.18 4.207e-06 ***
Residuals 9 21.236 2.36
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
x:回归平方和(SSE)
Residuals:残差平方和(SSR)
Df:自由度
Sum Sq:(sum of squares)方差总和
Mean Sq:(mean of squares)平均方差,即方差总和除以对应自由度
F value:F检验的值
Pr(>F):F检验的P值,当P值小于显著性水平α的时候,模型效果显著
”***":代表模型效果非常显著,在“Signif. codes”中给出了解释
回归系数检验:衡量方程系数是否可靠(t检验)
summary(test)
结果为
Call: lm(formula = y ~ 1 + x) Residuals: Min 1Q Median 3Q Max -2.0182 -1.1818 0.4182 1.1636 2.1636 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 9.2727 0.4632 20.021 9.00e-09 *** x 1.4364 0.1465 9.807 4.21e-06 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.536 on 9 degrees of freedom Multiple R-squared: 0.9144, Adjusted R-squared: 0.9049 F-statistic: 96.18 on 1 and 9 DF, p-value: 4.207e-06
Residuals:为残差水平的五数概括,通过它我们可以了解残差的大概水平。
(Intercept):估计值a,即估计截距
x :估计值b,即估计斜率
Estimate:估计值
Std. Error:(standard error)估计的标准差的估计
t value:检验统计量t的值
Pr(>|t|):检验的P值,当P值小于显著性水平α的时候,模型效果显著
”***":代表模型效果非常显著,在“Signif. codes”中给出了解释
Residual standard error: 1.536 on 9 degrees of freedom:9自由度的残差标准差是1.536
Multiple R-squared:拟合优度,结果越接近于1,x和y的线性相关度越大;越接近于0,x和y的线性相关度越小。必须指出的是,当拟合优度为0时候只能说明x和y不是线性关系,但是x和y还可能是其他类型的相关关系
回归系数的置信区间:使用confint()求得截距a和斜率b估计值的置信区间,默认为95%的置信度
confint(test)
结果为
2.5 % 97.5 %
(Intercept) 8.225007 10.320447
x 1.105045 1.767682
即a的95%的置信区间为[8.225007, 10.320447]
b的95%的置信区间为[1.105045 , 1.767682]
使用predict()函数进行预测。
其中pre表示要预测的点,这里必须以data.frame的形式输入,predict函数才能计算;
interval="prediction"表示给出对应的预测区间
参数level=0.95表示显著性水平。
pre=data.frame(x=0.2)
test.pre=predict(test,pre,interval="prediction",level=0.95)
test.pre
结果为
fit lwr upr
1 9.56 5.929986 13.19001
即当x=0.2时,y的预测值是9.56
在95%置信度下的y的置信区间是[5.929986, 13.19001]
需要说明的是,一元线性回归在做预测的时候,预测点的位置越近于样本点均值,预测的结果越准确,离样本点均值越远,预测的结果越不可信。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。