R笔记:多重线性回归(一)_模型拟合

转自个人微信公众号【Memo_Cleon】的统计学习笔记:R笔记:多重线性回归(一)_模型拟合。

多重线性回归模型的最终建立不仅仅拟合个方程就完事了,还需要进行适用条件的考察、模型的诊断以及改进模型的再评估等。

(1)拟合多重线性回归模型;

(2)适用条件考察:线性、独立性、正态性、同方差性;

(3)模型诊断:强影响点、离群值、杠杆值、多重共线等;

(4)模型改进与再评估。

由于篇幅较长,我们分几次笔记来介绍这些实现这些步骤的方法。此次笔记初步建立多重线性回归模型并对结果进行解读。

示例

原案例是来示例二分类的logistic回归的。

1989年Hosmer和Lemeshow研究了低出生体重婴儿的影响因素的数据,结局变量为是否分娩低出生体重儿(变量名low,0:低出生体重,即婴儿出生体重<2500克;1:正常),同时给出了每个新生儿的具体体重(bwt,g),考虑的影响(自变量)有:产妇妊娠前体重(lwt,磅)、产妇年龄(age,岁)、产妇在妊娠期间是否吸烟(smoke,0=未吸、1=吸烟)、本次妊娠前早产次数(ptl,次)、是否患有高血压(ht,0=否、1=是)、子宫对按摩、催产素等刺激引起收缩的应激性(ui,0=无、1=有)、妊娠前三个月社区医生随访次数(ftv,次)、种族(race,1=白人、2=黑人、3=其他民族)。

示例来源:SPSS统计分析高级教程/张文彤,董伟主编.—2版.—北京:高等教育出版社,2013.3.

我们选取其中的变量以体重(g)为响应变量示例多重线性回归。这个示例自变量大部分是分类变量,其实可以考虑将体重转换成二分类变量进行二分类的logistic回归。或者干脆直接考虑带有协变量的多因素方差分析,当然多因素方差分析只是多重线性回归模型的一种变体而已。数据可能并不太合适,我们只做步骤的演示,不过现实案例又有多少完全理想的数据呢。

【1】数据导入

library(haven)

lmdata<-read_sav("D:/Temp/logistic_step.sav")

【2】数据初步考察与处理

lr1<-lmdata[,3:11] #lr1<-lmdata[,-1:-2]

library(car);library(carData)

scatterplotMatrix(lr1) #拟合直线、均值或中位值的拟合线及方差范围线,相当于默认的scatterplotMatrix(lr1,smooth = TRUE,regLine = TRUE,ellipse = FALSE).很多函数可以实现散点图矩阵的绘制,比如scatterplotMatrix {car}pairs {graphics}scatterplot {SSRA}scatterplot {miscor}pairsVIM {VIM}sel.pairs {SeleMix},推荐使用scatterplotMatrix {car}:provides a convenient interface to the pairs function to produce enhanced scatterplot matrices, including univariate displays on the diagonal and a variety of fitted lines, smoothers, variance functions, and concentration ellipsoids. spm is an abbreviation for scatterplotMatrix.

种族、是否吸烟、是否患有高血压和是否有应激性属于分类变量,我们暂时不管它们。在年龄、孕前体重和新生儿体重大体正态分布,而本次妊娠前早产次数和产前随访次数呈明显的偏态分布。注意这里说的是单个变量的分布,并不是我们要考察的残差哦。

更重要的是各个自变量与因变量以及各个自变量间的关系都可以通过散点图矩阵大体判断。由于自变量较多,散点图矩阵较大,各散点图细节展示不足。年龄、孕前体重、早产次数、随访次数与新生体重的线性关系我们可以进一步展示:

lr2<-lmdata[,c("age","lwt","ptl","ftv","bwt")]

scatterplotMatrix(lr2,smooth=TRUE,regLine=TRUE,ellipse=TRUE)

直观来看,年龄与新生儿体重关系并不明显,可能存在异常值;孕前体重与新生儿体重存在一定的相关关系,但相关强度不大;大部分个体早产次数集中在0次和1次,2次仅2例,3次只有1例,宜合并为二分类变量进行分析;随访次数与新生儿体重的关系也不密切;另各自变量间可能存在一定的相关关系,关系也并不是太密切,当然这些需要我们做检验。

需要特别说明一下,如果自变量为二分类变量,只有两个均值,两个均值一定呈直线关系,但当自变量是多分类时,按照分类变量的赋值来确定自变量与结局的关系大多数情况下是不合理的,因为靠线性模型得到的结果只是随着自变量的变化结局的平均变化幅度(斜率),为了更精确的表示真实的变化值,我们需要将分类变量设置为哑变量。哑变量主要用于多分类变量与因变量是非线性关系的时候。种族属于无序多分类变量,需要设置哑变量;是否患有高血压、应激性属于二分类分类变量,二分类变量不论你怎么赋值,最终进行模型分析的时候都是按照0和1来分析的,因此二分类变量在模型中以连续型变量(取值0和1)和以哑变量纳入结果是一致的;早产次数ptl考虑到样本量的问题,该变量宜合并为二分类变量。
在R中将分类变量设置成因子后,模型会自动将其按哑变量处理。因子设置可参见《因子》。本例几个分类变量的因子设置如下:

lmdata$race<-factor(lmdata$race)

lmdata$smoke<-factor(lmdata$smoke) #二分类变量赋值0和1,即使不进行因子设置而是直接以连续变量纳入,结果是一致的,只是参照水平可能会变化

lmdata$ptl <-ifelse(lmdata$ptl>0,1, 0) #修改lmdata数据框中的变量ptl赋值,当原ptl值>0时,新的ptl赋值为0,其他情况下(原ptl<=0)时则赋值为0

lmdata$ptl<-factor(lmdata$ptl)

lmdata$ht<-factor(lmdata$ht)

lmdata$ui<-factor(lmdata$ui)

【3】多重线性回归建模

lmfit<- lm(bwt~age+lwt+race+smoke+ptl+ht+ui+ftv,data=lmdata)

summary(lmfit) #提取回归分析结果

结果显示:年龄(P=0.755)、早产史(P=0.135)及随访次数(P=0.946)对新生儿体重的影响无统计学意义;孕前体重每增加1磅,新生儿体重增加3.73g(P=0.033);相比白人,黑人的新生儿体重轻474.53g(P=0.002),其他种族的新生儿轻359.14g(P=0.002);吸烟者比不吸烟者的新生儿体重轻329.13g(P=0.003);高血压患者比不患高血压者的新生儿体重轻564.16g(P=0.006);具有应激性者比没有应激性者的新生儿体重轻454.07g(P=0.001)。

整个模型具有统计学意义(F=6.116,P<0.001),即至少有一个自变量的系数不为0,但结局变量的总变异中可由回归模型中解释变量解释的部分仅占23.52%(决定系数R2=0.2352)。除了决定系数、校正的决定系数外,赤池信息准则(AIC)、残差均方(MSE)、Cp统计量也是模型优劣的标准。
有时候我们除了想知道参数估计值,还想直接看一下以方差分析表形式呈现的各个变量的总体检验结果(主效应检验结果),比如SPSS中会直接在参数估计表前面给出这部分内容,R中则可以通过函数anova()来实现。

anova(lmfit) #以方差分析表形式呈现的各个变量的总体检验结果(主效应检验结果)

方差分析表跟参数估计表的检验结果是一致的。

建立回归方程实际上是整个回归分析里面最简单的一部分,但数据适不适合采用线性回归,回归模型对数据的拟合性如何还需要更进一步的考察验证。我们将在下一次的R笔记中再示例多重线性回归适应条件(线性、独立性、正态性、同方差性)的考察。

转自个人微信公众号【Memo_Cleon】的统计学习笔记:R笔记:多重线性回归(一)_模型拟合。

待续……

(0)

相关推荐

  • 一元线性回归分析

    在生产实践中和科学实践中,经常会遇到一些相互关联.相互制约的变量,它们之间客观上存在着一定的关系,为了揭示其内在联系,往往需要确定这些变量的关联程度.通常情况下,我们把变量之间的关系大致分为两类,一类 ...

  • 数据挖掘:基于R语言的实战 | 第6章:线性模型与广义线性模型

    第6章给大家介绍实际场景中最常用的两种统计模型,线性模型和广义线性模型.本章首先在6.1节中介绍线性模型,然后在6.2节中介绍广义线性模型,在6.3节再介绍线性模型和广义线性模型中的变量选择.本章最后 ...

  • R笔记:多重线性回归(四)_稳健回归

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:R笔记:多重线性回归(四)_稳健回归. [1-3]数据导入>>数据初步考察与处理>>拟合多重线性回归模型 [4]适用条 ...

  • R笔记:多重线性回归(三)_模型评估与诊断

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:R笔记:多重线性回归(三)_模型评估与诊断. 在前面的两次R笔记中,我们已经介绍了多重线性回归的 <模型拟合>和<适用条件的 ...

  • R笔记:多重线性回归(二)_适用条件考察

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:R笔记:多重线性回归(二)_适用条件考察.书接上回--我们在<<多重线性回归(一)_模型拟合>>一文中已经建立了回归模 ...

  • R笔记:全子集回归 | 最优子集筛选

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:R笔记:全子集回归|最优子集筛选. 在进行多因素回归(多重线性回归.logistic回归.Cox回归等)时,为了得到简洁有效的模型,我们会做变 ...

  • 技术贴 | R语言:线性回归、geom_text添加回归方程

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛.回 ...

  • R语言用线性回归模型预测空气质量臭氧数据

    原文链接:http://tecdat.cn/?p=11387 尽管线性模型是最简单的机器学习技术之一,但它们仍然是进行预测的强大工具.这尤其是由于线性模型特别容易解释这一事实.在这里,我将讨论使用空气 ...

  • R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

    原文链接:http://tecdat.cn/?p=11878 Nelson-Siegel- [Svensson]模型是拟合收益曲线的常用方法.它的优点是其参数的经济可解释性,被银行广泛使用.但它不一定 ...

  • R语言中的copula GARCH模型拟合时间序列并模拟分析

    原文链接:http://tecdat.cn/?p=23115 在这个文章中,我们演示了copula GARCH方法(一般情况下). 1 模拟数据 首先,我们模拟一下创新分布.我们选择了一个小的样本量. ...

  • R语言基于线性回归的资本资产定价模型(CAPM)

    原文链接:http://tecdat.cn/?p=20031 简介 资本资产定价模型(CAPM) 是用于确定是否在一个特定资产的投资是值得的.本质上,问题是:"该资产的回报是否值得投资?&q ...