6.常用统计分析方法——多重线性回归

目录

多重线性回归

自变量的筛选和最优模型:

一、自变量筛选的统计学标准:

二、多重共线性

 三、哑变量设置

四、交互效应

五、回归诊断


多重线性回归

多重线性回归模型(Multiple Linear Regression Model)即描述因变量Y如何随多个自变量X的改变而改变。假定对n例观察对象逐一测定了因变量Y与m个自变量X1X2、…、Xm的数值,多重线性回归模型的一般形式为:

\textrm{Y}=\beta _{0}+\beta_{1}X_{1}+\beta _{2}X_{2}+\cdot \cdot \cdot +\beta _{m}X_{m}+e

式中β0为常数项,又称截距。β1β2,…,βm称为偏回归系数(partial regression coefficient)或简称回归系数。

e则是去除m个自变量对Y的影响后的随机误差(即残差)

一、多重线性回归的条件:

  • 线性
  • 独立
  • 正态
  • 等方差

二、多重线性回归分析一般可分为两个步骤:

1. 拟合多重线性回归方程

使用lm(因变量~自变量1+自变量2+自变量3...+自变量n,data=mydata)的形成拟合线性回归方程。

2. 模型检验及评价

复相关系数

R=\sqrt{R^{2}}:称为复相关系数(multiple correlation coefficient),可用来度量因变量Y与多个自变量间的线性相关程度,亦即观察值Y与估计值之间的相关程度

如果只有一个自变量时,R=\left | r \right |r是简单相关系数。

案例:ISwR包中自带数据集cystfibr是25例囊性纤维化患者的基本信息和肺功能信息。其中包含的变量有性别、年龄、身高、体重,BMI,用力呼气量(fev1),残气量(rv),功能性残气量(frc),最大肺活量(tlc),最大呼气压力(pemax)。

library(ISwR)
data(cystfibr)
str(cystfibr)#查看数据结构类型
#分类变量因子化
cystfibr$sex <- factor(cystfibr$sex,labels = c("male","female"))

因为结局指标肺功能的参数较多,现选择其中fev1作为结局的分析指标。

cor(cystfibr[,6:10])

可以发现肺功能指标之间存在较高的相关性,因此选择其中一个作为分析。

fit1 <- lm(fev1 ~ age + sex + height + weight + bmp, data = cystfibr)
#线性拟合
summary(fit1)

多重线性的分析结果可以F统计量=3.992,p=0.012<0.05,说明回归方程的假设是有统计学差异的。在回归系数的假设检验中,只有性别的回归系数有统计学差异。female表示女性与男性相比,fev1低10.04。

自变量的筛选和最优模型:

一、自变量筛选的统计学标准:

1.残差平方和(SS_{残差})缩小或决定系数R^{2}增大   若某一自变量被引入模型后使残差平方和缩小很多或决定系数增大很多,说明该变量对Y的作用很大,可以被引入;反之,说明其中对y的作用很小,不被引入。

2. 残差的均方(MS残差)缩小或校正决定系数R^2_{ad}增大 。虽然自变量的增加可使分子位置的残差平方和减小,但同时分母位置上的自由度(n-p-1)也将减小,如果增加的自变量无统计学意义,分子中残差平方和的减少不多,而分母中自由度却减小很多,从而残差的均方并不减少。要使残差的均方缩小,必须是引入模型中的自变量对y的影响较大,使得残差平方和减少很多。

MS_{残差}=\frac{SS_{残差}}{n-p-1}

3. C_{p}统计量缩小 

C_{p}=\frac{SS_残差}{MS_残差}+2(p+1)-n

SS_{残差,p}表示p个自变量做回归时的残差平方和,MS_{残差,全}表示用全部自变量作回归时的残差均方。标准:选择C_{p}较小,并且C_{p}的值接近未知参数个数的模型作为较优模型。使C_{p}统计量较小的标准符合了统计建模的原则:一方面入选的自变量不能太多,以使方程易于理解和解释,并且降低工作量及研究经费;另一方面自变量不能太少,以保证一定的估计和预测精度。

4. 赤池信息量准则AIC

AIC越小,说明模型用较少的参数获得了足够的拟合优度。

二、多重共线性

多重共线性是指:自变量之间由于存在相关性,而使得模型估计失真或难以估计准确。

方差膨胀因子(VIF):表征自变量之间的共线性程度。

容忍度:是方差膨胀因子的倒数,如果容忍度小于0.25,则可能存在共线性问题;如果容忍度小于0.10,则提示共线性问题严重。

案例中的height(身高)、体重和BMI之间是相关的。查看相关系数

cor(cystfibr[,3:5])

 变量age对应的方差膨胀因子VIF

#比如age对应的VIF
lm.age <- summary(lm(age~sex+height+weight+bmp,data=cystfibr))
#计算VIF
VIF.age <- 1/(1-lm.age$r.squared);VIF.age

当VIF>5时,此时R_j^{2}>80%时可以认为存在多重共线性,此时用最小二乘法计算的回归系数是不准确的。

car包中的vif()函数可以快速计算所有变量对应的VIF值

library(car)
vif(fit1)

 解决多重共线性问题的方法

(1)剔除造成共线性的自变量,重新建立模型;

(2)采取主成分分析法,将一组具有共线性的自变量合并成少数不相关的变量;

(3)采用逐步回归法,限制有较强相关性的自变量同时进入方程

自变量筛选常用的算法:

  1. 前进法:自变量由少到多,一个一个引入方程。将部分回归平方和最大且能使F检验拒绝H0者入选为第一个自变量;规定一个界值F_{引入},接着将余下的变量中部分回归平方和最大,并使F检验拒绝H0者入选为第二个自变量,如此不断引入新的自变量,直到不能拒绝H0为止。
  2. 后退法:自变量由多到少,一个一个从方程中剔除。首先对全部候选变量进行总的回归,每次剔除一个部分回归平方和最小,而使F检验不能拒绝H0者,直到不能再剔除时为止。
  3. 逐步法:将上述两种法结合起来,在向前引入的每一步之后,都要考虑从已引入方程的变量中剔除相形见绌者。事先规定两个界值F_{引入}F_{剔除}F_{引入}>F_{剔除}),当方程外侯选变量中部分回归平方和最大者F值大于等于F_{引入}时,引入相应的变量;当方程内变量中部分回归平方和最小者F值小于等于F_{剔除}时,剔除相应的变量。如此引入和剔除交替进行,直到方程外无可引入的变量,而方程也无可剔除的变量时为止。
  4. 最优子集回归法:对于p个自变量的线性回归问题,所有可能的自变量子集作回归方程,共有(2^{p}-1)个。根据某种变量的选择准则,通过比较各子集符合准则的程度,从中选择出一个或几个最优的回归子集。仅适合于自变量个数不多的情况。

函数drop1( )可以从包含所有自变量的模型中手动一次剔除一个变量以进行逐步回归。。依据AIC准则,在较少的参数情况下实现足够的拟合度

drop1(fit1)

结果说明:在不踢除的任何自变量,模型AIC值为113.81,剔除age自变量,模型AIC为111.83,以此类推。比较所有的AIC值可知,需要剔除变量age。

另外可以通过设置drop1函数中参数test得到似然比检验或F检验的结果,

drop1(fit1,test = "F")

根据结果可以看到提出sex后,p有统计学差异,其余变量剔除没有统计学差异,age对应的p值最大,所以可以考虑先剔除age,再次使用drop1()判断哪一个变量需要从模型中剔除

函数step()可以根据AIC值进行逐步回归自动选择最优模型,其中参数direction可以设置为默认的both(逐步法)、forward(向前法)、backward(向后法)

fit2 <- step(fit1)

最后生成只包含sex和bmp的指标时模型AIC最小。

summary(fit2)

没有剔除之前的决定系数为0.5123,只保留sex和bmp的决定系数为0.507,总体的决定系数相差不大,但调整后的决定系数明显提高,回归系数的检验p都具有统计学差异。

函数confint()计算回归系数的置信区间:

confint(fit2)

回归模型的假设检验:

上述的t检验只表明回归系数与0的差异有无统计学意义,要想检验变量对于模型有无统计学意义,需要进行F检验的结论,这在自变量是多个水平的分类变量时尤为必要

anova(fit2)

 三、哑变量设置

多重线性回归分析中的自变量可以是连续型的变量,也可以是二分类变量,但不能把无序多分类变量直接纳入模型。必须先将无序多分类变量变换成为多个二分类变量之后,才能将她们引入回归模型。若某个无序多分类变量有k各可能的类别,则可用(k-1)个二分类变量而取而代之,这个过程称为“哑元化”,得到的(k-1)个二分类变量称为“哑变量”。

四、交互效应

具体判断有无交互效应可以参考简单线性回归中的分层线性回归。

五、回归诊断

使用gvlma包中的gvlma( )函数对模型进行综合检测

#install.packages("gvlma")
library(gvlma)
gvlma(fit2)

global stat及其他检验都大于0.05,说明满足回归条件。如果有p>0.05,则用简单线性回归中提到的残差分析几种方式来判断哪些假设没有被满足。

第二种方法:残差图

res <- fit2$residuals
hist(res)#样本量较小难以评价
qqnorm(res)#QQ图
qqline(res)
shapiro.test(res)#正态性检验
plot(fitted(fit2),res,xlab = "Fitted values",pch=15,col="blue") #绘制残差图
abline(h=0,col="red")

最终的模型可以用epiDisplay包中的regress.display()汇总输出
regress.display(fit2)
write.csv(regress.display(fit2)$table,file = "线性回归练习模型输出版.csv")

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一元线性回归是SPSS中常用统计分析方法之一。它用于研究自变量与因变量之间的线性关系,并通过回归方程描述这种关系。下面以某医院的病人年龄和其住院天数为例进行一元线性回归分析。 首先,我们收集了100位病人的数据,其中自变量是病人的年龄,因变量是病人的住院天数。我们将这些数据输入SPSS软件进行分析。 在SPSS软件中,首先选择"回归",然后选择"线性",将因变量(住院天数)拖放到"因变量"栏中,将自变量(年龄)拖放到"解释变量"栏中。 在回归分析结果中,我们关注回归方程的系数、显著性和决定系数R^2。 回归方程的系数是关键指标之一,它告诉我们自变量(年龄)对因变量(住院天数)的影响程度。如果系数为正数,则表示自变量的增加与因变量的增加有正相关关系;如果系数为负数,则表示自变量的增加与因变量的减少有负相关关系。通过系数的大小,我们可以判断自变量对因变量的影响强弱。 显著性水平是判断系数是否统计上显著的指标。在假设检验中,一般认为当p值小于0.05时,系数是显著的,即存在影响关系;当p值大于0.05时,系数是不显著的,即没有影响关系。 决定系数R^2可以解释回归方程的拟合程度,其取值范围在0到1之间。R^2的值越接近1,说明回归方程可以更好地解释因变量的变异;R^2的值越接近0,说明回归方程对因变量的解释能力较弱。 通过分析回归方程的系数、显著性和决定系数R^2,我们可以得出结论:病人的年龄对住院天数有显著影响,且年龄与住院天数呈正相关关系。这些可以为医院制定合理的住院时间和医疗方案提供科学依据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值