最小二乘(OLS)回归法及其在R中的…
来源:互联网 发布:医疗行业数据分析 编辑:程序博客网 时间:2024/06/05 07:08
回归分析指用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量、效标变量或结果变量)的方法。
回归包括简单线性、多项式、多元线性、多变量、Logistic回归、泊松、时间序列、非线性、非参数、稳健、Cox比例风险回归等多种形式。
下文主要介绍普通最小二乘(OLS)回归法,包括简单线性回归、多项式回归和多元线性回归。
1 OLS回归
条件:减小因变量的真实值与预测值的差值来获取模型参数,即残差平方和最小。
为了能够恰当地解释OLS模型的系数,数据必须满足以下统计假设:
(1)正态性。对于固定的自变量值,因变量值成正态分布
(2)独立性。Yi值之间相互独立。
(3)线性。因变量与自变量之间为线性相关。
(4)同方差性。因变量的方差不随自变量的水平不同而变化。
1 用lm()拟合回归模型
格式:myfit<-lm(formula, data)
其中,formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据。
表达式(formula)形式如:Y~X1+X2+…+Xk
~左边为因变量,右边为各个自变量,自变量之间用+符号分隔,表达式中还有其他符号
2 简单线性回归
R平方项(0.991)表明模型可以解释体重99.1%的方差,也是实际和预测值之间的相关系数
残差标准误(1.1525)则可认为是模型用身高预测体重的平均误差
F统计量检验所有的自变量预测因变量是否都在某个几率水平之上。对简单线性回归来说,只有一个自变量,此时F检验等同于身高回归系数的t检验。
3 多项式回归
此时代码可以写为:fit2 <-lm(weight ~ height + I(height^2), data = women)
注:多项式回归仍是线性回归
car包中的scatterplot()函数,既提供散点图、线性拟合曲线和平滑拟合(loess)曲线,还在相应边界展示了每个变量的箱线图。
4 多元线性回归
当自变量不止一个时,简单线性回归就变为多元线性回归。
多元回归分析中,第一步最好检查下变量间的相关性。——cor()函数
scatterplotMatrix( )函数默认在非对角区域绘制变量间的散点图,并添加平滑(loess)和线性拟合曲线。对角线区域绘制每个变量的密度图和轴须图。
此时代码例子为:fit<- lm(Murder ~ Population + Illiteracy + Income + Frost, data =states)
当变量系数没有显著不为0(p值较大时),表明当控制其他变量不变时,该自变量与因变量不呈线性相关。
5 有交互项的多元线性回归
此时代码例子为:fit<- lm(mpg ~ hp + wt + hp:wt, data = mtcars)
若两个自变量的交互项显著,则说明因变量与其中一个自变量的关系依赖于另一个自变量。
用effects包中的effect()函数,可以用图形展示交互项结果(即当一个变量取某个固定的值时,另一个自变量变化时因变量的变化),格式为:
plot(effect(term,mod, xlevels), multiline =TRUE)
term即模型要画的项,mod为通过lm()拟合的模型,xlevels是一个列表,指定变量要设定的常量值,multiline= TRUE选项表示添加相应直线。
例:plot(effect("hp:wt",fit, list(wt = c(2.2, 3.2, 4.2))), multiline =TRUE)
2回归诊断
虽然summary()函数对模型有了整体的描述,但是没有提供关于模型在多大程度上满足统计假设的任何信息,即没有任何输出告诉你模型是否合适。回归诊断技术提供了评价回归模型适用性的必要工具,帮助发现并纠正问题。
R中基础包中提供了函数的标准方法,car包中提供改进了的新方法。
1标准方法
最常用方法:对lm()函数返回的对象使用plot函数,可以生成评价模型拟合情况的四幅图形
Q-Q图对应正态性检验
Residualsvs Fitted(残差图与拟合图)对应线性假设,若图中有曲线关系,则可能需要对回归模型加二次项。
Scale-Location Graph(位置尺度图)对应同方差性。若水平线周围的点随机分布,则满足假设。
Residualvs Leverage(残差与杠杆图)提供可能关注的单个观测点。从图上可以鉴别出离群点、高杠杆点和强影响点。
2改进的方法
car包提供了大量函数,大大增强了拟合和评价回归模型的能力。gvlma包也提供了对所有线性模型假设进行检验的方法。以下是以car包为例。
(1)正态性
采用qqplot函数
(2)误差的独立性
car包提供了一个可做Durbin-Watson检验的函数,能够检测误差的序列相关性。对应函数为durbinwatsonTest()。
(3)线性
通过成分残差图可以观察因变量与自变量之间是否呈线性关系。对应car包中crPlot函数绘制。
(4)同方差性
Car包中提高两个有用函数。
ncvTest()函数生成一个计分检验,零假设为误差方差不变,备择假设为误差方差随着拟合值水平的变化而变化。若检验显著,则说明存在异方差性(误差方差不恒定)。
spreadLevelPlot()函数创建一个添加了最佳拟合曲线的散点图,展示标准化残差绝对值
与拟合值的关系。
3线性模型假设的综合验证
gvlama包中的gvlama()函数,除了能对线性模型假设进行综合验证,同时还能做偏斜度、峰度和异方差性的评价。
4多重共线性
多重共线性会导致模型参数的置信区间过大,使单个系数解释起来很困难。多重共线性可用统计量VIF(Variance Inflation Factor,方差膨胀因子)进行检测。VIF的平方根表示变量回归参数的置信区间能膨胀为与模型无关的预测变量的程度
Car包中vif()函数提供VIF值。一般原则下,√vif>2就表明存在多重共线性问题。
3异常观测值
1离群点
离群点指模型中预测效果不佳的观测点。它们通常有很大的、或正或负的残差(真实值-预测值)。
car包也提供了一种离群点的统计检验方法。outlierTest()函数可以求得最大标准化残差绝对值Bonferroni调整后的p值。注意,该函数只是根据单个最大(或正或负)残差值的显著性来判断是否有离群点。若不显著,则说明数据集中没有离群点;若显著,则你必须删除该离群点,然后再检验是否还有其他离群点存在。
2高杠杆值
高杠杆值观测点,即是与其他预测变量有关的离群点。换句话说,它们是由许多异常的预测
变量值组合起来的,与响应变量值没有关系。高杠杆值的观测点可通过帽子统计量(hatstatistic)判断。对于一个给定的数据集,帽子均值为p/n,其中p是模型估计的参数数目(包含截距项),n是样本量。
3强影响点
强影响点,即对模型参数估计值影响有些比例失衡的点。例如,若移除模型的一个观测点时模型会发生巨大的改变,那么你就需要检测一下数据中是否存在强影响点了。有两种方法可以检测强影响点:Cook距离,或称D统计量,以及变量添加图(added variable plot)。
4改进措施
经过回归诊断发现后,处理违背回归假设的方法有:
(1)删除观测点
(2)变量变换
(3)添加或删除变量
(4)使用其他回归方法
5选择“最佳”的回归模型
1模型比较
基础安装包中的anova()函数可以比较嵌套模型的拟合优度。
2变量选择
从大量候选变量中选择最终的预测变量有以下两种流行的方法:逐步回归法(stepwise
method)和全子集回归(all-subsets regression)。
附录:
- 最小二乘(OLS)回归法及其在R中的…
- 《机器学习实战》学习笔记-[8]-回归-普通最小二乘OLS
- 最小二乘回归
- 最小二乘回归
- 偏最小二乘回归方法r语言代码
- 牛顿法求解最小二乘问题(线性回归)
- 回归分析-(偏)最小二乘
- 偏最小二乘回归
- 白话空间统计二十三:回归分析番外-ArcGIS中的OLS(二)
- 最小二乘 岭回归 lasso回归
- 数学理论-----参数估计方法:普通最小二乘(OLS)、最大似然(ML)和矩估计(MM)
- 白话空间统计二十三:回归分析番外-ArcGIS中的OLS(一)
- 白话空间统计二十三:回归分析番外-ArcGIS中的OLS(三)
- 回归--非线性最小二乘-高斯牛顿法
- 有监督回归:最小二乘学习法
- MapReduce----线性最小二乘(线性回归)
- 偏最小二乘回归(PLS)的MATLAB实现
- 偏最小二乘回归(PLSR)算法原理
- R语言blotter包回测实例
- R语言quantstrat包
- 分类算法——K近邻算法及其R实现
- 分类算法——决策树算法及其R实现
- 主成分分析和因子分析及其在R中的…
- 最小二乘(OLS)回归法及其在R中的…
- Linux下手动配置firefox的搜索引擎
- gradle好文章
- 分类算法——决策树(1)
- 在Receiver或Server中修改主Activity对应布局中的控件
- 深入浅出SQL(1)
- 深入浅出SQL(2)——select、update…
- 深入浅出SQL(三)——表的规范化
- 欧拉路径问题 (附POJ 1041 POJ 2337)