朱zhu

V1

2022/03/07阅读:51主题:默认主题

简单线性回归

1.回归分析

简单线性回归

定义:由一个预测变量X预测定量响应变量Y的方法

假设X与Y间存在线性关系

image-20220306194624539
image-20220306194624539

β0、β1分别表示线性模型的截距与斜率,也称为模型的系数或参数

image-20220306194914182
image-20220306194914182

ŷ表示X=x的基础上对Y的预测

估计系数

若一组数据(x1,y1),(x2,y2),(x3,y3),......,(xn,yn)存在模型

image-20220306195927049
image-20220306195927049

很好的拟合数据,我们的目的是求得截距β0与斜率β1。目前常用的方法是残差平方和最小化原则。若X的第i个值xi,则 i^0^1xi 来估计Y。ei=yi-ŷi 代表第i个残差。可计算残差平方和 (RSS)

image-20220306201547115
image-20220306201547115

等价于image-20220306201622769

最小二乘法选择β0和β1来使RSS达到最小,通过微积分运算可知,使RSS最小的参数估计值为:

image-20220306201952470
image-20220306201952470

其中,image-20220306203340809是样本均值

评估系数估计值的准确性

理想的模型为Y=f(x)+ε=β01x+ε(仅针对简单线性函数),ε为响应变量Y的变异不能够被预测变量解释的部分,且ε是均值为0的随机误差项,服从正态分布。但实际构建出的模型中ε均值≠0,但却无限接近0,拟合效果才好。

总体回归直线与最小二乘线之间的差异可能微乎其微,而最小二乘法能否代表总体回归直线的基本思想可用标准统计方法(==利用样本信息估计估计一个较大的总体特征==)。假设随机变量Y的总体均值为μ,我们通过所得样本可计算image-20220306205836151

若用样本μ^来估计μ,这种估计是无偏的,但实际情况而言,μ^可能高估或低估μ值。单一估计值μ^偏离真值(μ)有多远?可通过计算μ^的标准误差(SE(μ^))来回答,image-20220306210433996,σ为变量Y的每个值yi的标准差。

同理,用以上思想可对特定数据集基础上估计β0与β1,则计算公式为:

image-20220306210812872
image-20220306210812872

其中,σ2=Var(σ)

(==以上公式成立的前提是每个观测值的误差εi独立且方差σ2相等==)

标准误差可用于计算置信区间,则β1的95%置信区间约为β^1±2SE(β^1); β0的95%置信区间约为β^0±2SE(β^0)

标准误误差也可用于对系数进行假设检验。最常用的假设检验包括零假设备择假设。即

H0:X和Y之间没有关系;

H1:X和Y之间有一定关系。

类似于:

H0:β1=0; Ha1≠0

为了检验零假设,需要确定β^11的估计值)距离零是否足够远从而能确信β1是非零的,β^1的准确性依赖于SE(β^1)。t统计量可测量β^1偏离0的标准偏差。

image-20220307094008479
image-20220307094008479

计算得出t值,查看t分布对应的概率P值,当P值足够小,则拒绝零假设。

评估模型的准确性

判断线性回归的拟合质量可以使用两个评估指标:

①残差标准误(RSE);

②R2统计量

==残差标准误(RSE)==

image-20220307094649599
image-20220307094649599

RSE被认为是对模型失拟的度量。RSE越小,则模型拟合数据越好;反之拟合越差。

==R2统计量(较为常用)==

R2统计量采取比例(被解释方差的比例)形式,取值范围为0~1。其计算公式为:

image-20220307095009254
image-20220307095009254

TSS为总平方和

image-20220307095104282
image-20220307095104282

TSS-RSS测量的是响应变量进行回归之后被解释的(或被消除)的变异性。R2测量的是Y的变异能被X解释的部分所占比例,R2统计量接近1说明回归可以解释响应变量的大部分变异;R2统计量接近0说明回归没有解释太多响应变量的变异,这可能因为线性模型是错误的。评估一个模型拟合好坏取决于具体应用场景。如在物理领域,预测R2值将非常接近1,R2值越小则说明生成数据的实验存在严重问题。而在生物学、医学、心理学、市场营销及其他领域中,线性模型最多是对数据的近似模拟,受其他不可控因素影响,残差往往较大。因此只有很小一部分响应变量的方差能被预测变量所解释,远低于0.1的R2值可能更现实。

在简单线性回归模型中,R2=r2,则r=Cor(X,Y)

image-20220307100321791
image-20220307100321791

代码实操

构建模型

1.载入包及其查看数据

####简单线性模型
##载入包
library(MASS)
library(ISLR)
head(Boston)##查看数据集Boston,数据集中含有13个预测变量,以medv(房价中位数)为响应变量,lstat(社会经济地位低的家庭所占比例)作为预测变量
image-20220307101252674
image-20220307101252674

2.构建模型lm.fit并查看对应参数值,截距为34.55,斜率为-0.95

#构建模型
lm.fit <- lm(medv ~ lstat, data = Boston)
##输入lm.fit查看模型截距与斜率
lm.fit
image-20220307101439759
image-20220307101439759

3.输出具体参数及其模型评估指标(系数P值,系数SE,置信区间,R2和F统计量)

##使用summary函数查看模型具体信息,输出信息包括系数及p值与标准误,R^2与F统计量
summary(lm.fit)
##使用confint()命令查看系数估计值的置信区间
confint(lm.fit)
image-20220307101628978
image-20220307101628978
image-20220307101648980
image-20220307101648980

输出结果解释:Residuals输出表示残差分布接近正态分布,上四分位数(2.034)与下四分位数(-3.990)的绝对值近似,Coeffcients输出模型回归系数的估计值,包含截距及其lstat(社会经济地位低的家庭所占比例)对medv(房价中位数)的回归系数,p<0.001表示lstat对于medv有统计学意义,回归系数为-0.95005,表示社会经济地位低的家庭所占比例每增长1%,房价中位数平均减少0.95005美元。R2决定系数值为0.5441,表示该模型能解释因变量Y54.41%的变异,剩余的变异可能由随机误差解释或者其他未参与的变量所产生,简单线性回归主要参考未调整的R2。最后输出的是F统计量,且具有统计学意义,表明该模型至少有一个回归系数不为0,表明该模型成立。

4.基于已构建的模型输入新值,查看预测值及其置信区间与预测区间

##根据给定的lstata(预测变量)值预测medv时,predict()函数可以计算置信区间与预测区间
#求置信区间
predict(lm.fit,data.frame(lstat=(c(5,10,15))),#假设lstat值=5,10,15
        interval = "confidence")
#求预测区间
predict(lm.fit,data.frame(lstat=(c(5,10,15))),
        interval = "prediction")
image-20220307102049488
image-20220307102049488

置信区间与预测区间的区别:

在以上例子中,当lstat=10时,相应95%置信区间为(24.47, 25.63),相应95%预测区间为(12.83, 37.28)。==置信区间与预测区间的区别:==y = f(x) + e(e为误差,指的是y的变异之中不可以由x解释的部分)实际上我们的模型能做到的仅仅是估计f(x)的值,而非对应的y值,因为误差是不可测量的、未知的。因此,这里引出了置信区间和预测区间的区别:置信区间指的是f(x)在某个信度下的可能范围,而预测区间指的是y在某个信度下的可能范围。在同样的信度下,预测区间的上下值大于置信区间,即预测区间的范围大于置信区间,因为预测y时多了不可消除的误差项。更具体来说,当我们要根据一个x值去预测一个点的y值时,使用预测区间;当我们想要预测模型在该点处的期望值时(多次抽样后的理论均值),则是对f(x)的估计,使用置信区间。

5.总平方和(TSS)与残差平方和(RSS)及R2的计算

##求总平方和(TSS)
TSS <- sum((Boston$medv-mean(Boston$medv))^2)
TSS
##求残差平方和(RSS)
RSS <- sum((residuals(lm.fit)^2))
RSS
##R^2=(TSS-RSS)/TSS
(TSS-RSS)/TSS
image-20220307111501793
image-20220307111501793

可视化

##使用函数plot()和abline()函数绘制medv和lstat的散点图以及最小二乘回归直线
plot(Boston$lstat,Boston$medv)##前面是预测变量,后面是响应变量
abline(lm.fit,col="red",#col设置拟合线颜色
       lwd=3)#lwd表示增加拟合线宽度
image-20220307102447356
image-20220307102447356

生成模型诊断图,模型诊断的内容后面推文会一一展开介绍

##对构建的模型lm.fit直接用plot()函数自动生成四幅诊断图
par(mfrow=c(2,2))#设置绘图区域(2*2的网络面板)
plot(lm.fit)
image-20220307111627961
image-20220307111627961
##使用residuals()函数计算线性回归拟合的残差,rstudent()函数计算学生划残差
plot(predict(lm.fit),residuals(lm.fit))
plot(predict(lm.fit),rstudent(lm.fit))
##使用hatvalue()函数计算杠杆值
plot(hatvalues(lm.fit))
which.max(hatvalues(lm.fit))#which.max()函数可识别出向量中最大元素的索引,在本例中,第375个观测值具有最大杠杆值

模型预测值与残差的散点图

image-20220307102836366
image-20220307102836366

残差可视化

plot(Boston$medv~Boston$lstat)
abline(lm.fit)
points(Boston$lstat,fitted(lm.fit),pch=18,col="blue")#模型预测值用蓝色标记
segments(Boston$lstat,Boston$medv,Boston$lstat,fitted(lm.fit),col="green")#实际值与预测值之间的差距(即残差用绿线表示)
image-20220307112519018
image-20220307112519018

模型预测值与学生化残差的散点图

image-20220307102922951
image-20220307102922951

模型的杠杆值散点图

image-20220307103037237
image-20220307103037237

分类:

数学

标签:

数学建模

作者介绍

朱zhu
V1