变量之间存在着相关关系,比如,人的身高和体重之间存在着关系,一般来说,人高一些,体重要重一些,身高和体重之间存在的是不确定性的相关关系。回归分析是研究相关关系的一种数学工具,它能帮助我们从一个变量的取值区估计另一个变量的取值。

OLS(最小二乘法)主要用于线性回归的参数估计,它的思路很简单,就是求一些使得实际值和模型估值之差的平方和达到最小的值,将其作为参数估计值。就是说,通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法可用于曲线拟合,其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

一,OLS回归

OLS法通过一系列的预测变量来预测响应变量(也可以说是在预测变量上回归响应变量)。线性回归是指对参数β为线性的一种回归(即参数只以一次方的形式出现)模型:

Yt=α+βxtt (t=1……n)表示观测数

  • Yt  被称作因变量
  • xt  被称作自变量
  • α、β 为需要最小二乘法去确定的参数,或称回归系数
  • μt  为随机误差项

OLS线性回归的基本原则:最优拟合曲线应该使各点到直线的距离的平方和(即残差平方和,简称RSS)最小:

OLS线性回归的目标是通过减少响应变量的真实值与预测值的差值来获得模型参数(截距项和斜率),就是使RSS最小。

为了能够恰当地解释OLS模型的系数,数据必须满足以下统计假设:

  • 正态性:对于固定的自变量值,因变量值成正太分布
  • 独立性:个体之间相互独立
  • 线性相关:因变量和自变量之间为线性相关
  • 同方差性:因变量的方差不随自变量的水平不同而变化,即因变量的方差是不变的

二,用lm()拟合回归模型

在R中,拟合回归模型最基本的函数是lm(),格式为:

lm(formula, data)

formula中的符号注释:

  • ~ 分割符号,左边为因变量,右边为自变量,例如, z~x+y,表示通过x和y来预测z
  • + 分割预测变量
  • : 表示预测变量的交互项,例如,z~x+y+x:y
  • * 表示所有可能的交互项,例如,z~x*y 展开为 z~x+y+x:y
  • ^ 表示交互项的次数,例如,z ~ (x+y)^2,展开为z~x+y+x:y
  • . 表示包含除因变量之外的所有变量,例如,如果只有三个变量x,y和z,那么代码 z~. 展开为z~x+y+x:y
  • -1 删除截距项,强制回归的直线通过原点
  • I() 从算术的角度来解释括号中的表达式,例如,z~y+I(x^2) 表示的拟合公式是 z=a+by+cx2
  • function 可以在表达式中应用数学函数,例如,log(z) ~x+y

对于拟合后的模型(lm函数返回的对象),可以应用下面的函数,得到模型的更多额外的信息。

  • summary() 展示拟合模型的详细结果
  • coefficients() 列出捏模型的参数(截距项intercept和斜率)
  • confint() 提供模型参数的置信区间
  • residuals() 列出拟合模型的残差值
  • fitted() 列出拟合模型的预测值
  • anova() 生成一个拟合模型的方差分析表
  • predict() 用拟合模型对新的数据预测响应变量

例如,使用基础安装包中的数据集women(包含了年龄在30-39岁之间女性的身高和体重信息),通过身高来预测体重。

1,线性拟合

使用lm()函数来拟合模型,获得模型对象fit

fit <- lm(weight~height,data=women)

使用summary()函数来查看模型的信息:

> summary(fit)Call:
lm(formula = weight ~ height, data = women)Residuals:Min      1Q  Median      3Q     Max
-1.7333 -1.1333 -0.3833  0.7417  3.1167 Coefficients:Estimate Std. Error t value Pr(>|t|)
(Intercept) -87.51667    5.93694  -14.74 1.71e-09 ***
height        3.45000    0.09114   37.85 1.09e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 1.525 on 13 degrees of freedom
Multiple R-squared:  0.991,    Adjusted R-squared:  0.9903
F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14

残差标准差(Residual standard error):表示模型用身高来预测体重的平均误差

R的平方项(Multiple R-squared):表明模型可以解释体重99.1%的方差,是实际和预测值之间相关系数的平方。

F统计量(F-statistic):检验所有的预测变量预测响应变量是否都在某个概率水平之上,

从Coefficients 组中,可以看到 Intercept(截距项)是 - 87.51667,height的系数是3.45,截距项和系数的标准差、t值和Pr(>|t|),其中,Pr(>|t|) 表示双边检验的p值

注,p值的表示方法通常有p-value,或Pr,p值是概率,表示某一事件发生的可能性大小。如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分。总之,P值越小,表明结果越显著。

因此可以得到预测等式:

Weight= - 87.51667 + 3.45 * Height

绘制拟合的直线:

> plot(women$height, women$weight,xlab='height',ylab='weight')
> abline(fit)

2,多项式拟合

使用lm(),在formula参数中使用I()函数来进行多项式拟合

> fit2 <- lm(weight~I(height^2),data=women)
> plot(women$height, women$weight,xlab='height',ylab='weight')
> lines(women$height,fitted(fit2))
> summary(fit2)Call:
lm(formula = weight ~ I(height^2), data = women)Residuals:Min      1Q  Median      3Q     Max
-1.2562 -0.7636 -0.1837  0.4622  2.2654 Coefficients:Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.390e+01  2.109e+00   11.34 4.12e-08 ***
I(height^2) 2.659e-02  4.926e-04   53.98  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 1.072 on 13 degrees of freedom
Multiple R-squared:  0.9956,    Adjusted R-squared:  0.9952
F-statistic:  2913 on 1 and 13 DF,  p-value: < 2.2e-16

非线性模型可用nls()函数进行拟合。

三,回归诊断(标准方法)

回归诊断用于评价回归模型的拟合程度,模型返回的参数多大程度上匹配原始数据。

根据OLS回归的统计假设来评价模型的拟合情况,对于lm()拟合的模型对象,使用plot()函数生成评价模型拟合情况的四幅图形,

> fit <- lm(weight~height,data=women)
> par(mfrow=c(2,2))
> plot(fit)

正态性:当预测变量值固定时,因变量成正态分布,则残差值也应该是一个均值为0的正态分布。正态QQ图(Normal Q-Q)是在正态分布对应的值下,标准化残差的概率图。若满足正态假设,那么图上的点应该落在呈45度角的直线上;若不是如此,那么久违反了正态假设。

独立性:无法判断因变量和自变量的值是否相互独立,只能从收集的数据中来验证。

线性相关性:若因变量与自变量线性相关,那么残差值与预测(拟合)值除了系统误差之外,就没有任何关联。在残差和拟合图(Residuals VS Fitted)中,可以看到一条曲线,这暗示着可能需要对拟合模型加上一个二次项。

同方差性:若满足不变方差假设,那么在位置尺度图(Scale-Location)中,水平线周围的点应该随机分布。

残差和杠杆图(Residuals VS Leverage)提供了特殊的单个观测点(离群点、高杠杆点、强影响点)的信息。

  • 离群点:表明拟合回归模型对其预测效果不佳(产生巨大的残差)
  • 高杠杆点:指自变量因子空间中的离群点(异常值),由许多异常的自变量值组合起来的,与因变量没有关系。
  • 强影响点:表明它对模型参数的估计产生的影响过大,非常不成比例。强影响点可以通过Cook距离(Cook distance)统计量来前别。

残差和杠杆图的可读性差,不够实用。

什么是高杠杆点?离群点是指对于给定的预测值

 来说,响应值 
 异常的点。相反,高杠杆(high leverage) 表示观测点 
 是异常的。例如,图1(a)左下图中的观测点41具有高杠杆值,因为它的预测变量值比其他观测点都要大。实线是对数据的最小二乘拟合,而虚线是删除观测点41后的拟合。事实上,高杠杆的观测往往对回归直线的估计有很大的影响。如果一些观测对最小二乘线有重大影响,那么它们值得特别关注,这些点出现任何问题都可能使整个拟合失效。因此找出高杠杆观测是十分重要的

四,回归诊断(car包)

car包提供了大量的函数,大大增强了拟合和评价回归模型的能力

1,正态性

qqplot()函数提供了精确的正态假设检验方法,

> library(carData)
> library(car)
> par(mfrow=c(1,2))
> fit <- lm(weight~height,data=women)
> qqPlot(fit,labels=row.names(women),id.method='identity',simulate=TRUE,main='qq-fit')
[1]  1 15
> fit2 <- lm(weight~height+I(height^2),data=women)
> qqPlot(fit2,labels=row.names(women),id.method='identity',simulate=TRUE,main='qq-fit2')
[1] 13 15

可以看到,置信区间通过虚线划定,当绝大多数点都落在置信区间时,说明正态性假设符合的很好。

2,误差的独立性

car包提供了durbinWatsonTest()函数,用于做Durbin-Watson检验,检测误差的序列相关性。

> durbinWatsonTest(fit)lag Autocorrelation D-W Statistic p-value1        0.585079     0.3153804       0Alternative hypothesis: rho != 0

p值 (p=0)不显著,误差项之间独立

3,线性相关性

通过成分残差图(component + residual plots)检查因变量和自变量之间是否呈线性关系。

crPlots(fit)

若图形存在非线性,则说明可能对预测变量的函数形式建模不够充分,那么需要添加一些曲线成分,比如多项式,对一个或多个变量进行变换(log(x)代替x),或用其他回归变体形式而不是线性回归。

4,同方差性

判断方差是否恒定,nvcTest()函数生成一个记分检验,原假设为误方差不变,备择假设为误差方差随着拟合值水平的变化而变化。若检验显著,说明存在误方差不很定。

spreadLevelPlot()函数创建了一个添加了最佳拟合曲线的散点图,展示了标准化残差绝对值与拟合值得关系。

> ncvTest(fit)
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 0.8052115, Df = 1, p = 0.36954
> spreadLevelPlot(fit)Suggested power transformation:  -0.8985826 

记分检验不显著:p=0.36954,说明满足方差不变假设,也可以通过分布水平看到这一点,点在水平的最佳拟合曲线周围呈随机分布。

五,回归诊断(gvlma包)

gvlma()函数,用于对线性模型假设进行综合验证,同事还能验证偏斜度,峰度和异方差的评价。从输出项中可以看出,假设检验的显著性水平是5%。如果p<0.05,说明违反了假设条件。从Global Stat 的Decision 栏中,可以看到数据满足OLS回归模型所有的统计假设(p=0.597)。

> library(gvlma)
> gvmodel <- gvlma(fit)
> summary(gvmodel)
.................
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance =  0.05 Call:gvlma(x = fit) Value   p-value                   Decision
Global Stat        16.5866 0.0023251 Assumptions NOT satisfied!
Skewness            1.5577 0.2119999    Assumptions acceptable.
Kurtosis            0.1019 0.7496131    Assumptions acceptable.
Link Function      14.1218 0.0001713 Assumptions NOT satisfied!
Heteroscedasticity  0.8052 0.3695398    Assumptions acceptable.

参考文档:

最小二乘线性(OLS)回归模型

数据挖掘 第四篇:OLS回归分析相关推荐

  1. R数据挖掘 第四篇:OLS回归分析

    变量之间存在着相关关系,比如,人的身高和体重之间存在着关系,一般来说,人高一些,体重要重一些,身高和体重之间存在的是不确定性的相关关系.回归分析是研究相关关系的一种数学工具,它能帮助我们从一个变量的取 ...

  2. ols残差_数据挖掘 第四篇:OLS回归分析

    变量之间存在着相关关系,比如,人的身高和体重之间存在着关系,一般来说,人高一些,体重要重一些,身高和体重之间存在的是不确定性的相关关系.回归分析是研究相关关系的一种数学工具,它能帮助我们从一个变量的取 ...

  3. 系列 | 漫谈数仓第四篇NO.4 『数据应用』(BIOLAP)

    点击上方蓝色字体,置顶/星标哦 目前10000+人已关注加入我们 本文目录CONTENTS ☞ 01.可视化BI工具 [ 开源BI,商业BI,传统BI ] ☞ 02.OLAP科普 [ ROLAP  M ...

  4. OLS回归分析原理实战及结果解析-python3

    OLS 回归 变量之间存在着相关关系,比如,人的身高和体重之间存在着关系,一般来说,人高一些,体重要重一些,身高和体重之间存在的是不确定性的相关关系.回归分析是研究相关关系的一种数学工具,它能帮助我们 ...

  5. R语言实战笔记--第八章 OLS回归分析

    R语言实战笔记–第八章 OLS回归分析 标签(空格分隔): R语言 回归分析 首先,是之前的文章,数理统计里面的简单回归分析,这里简单回顾一下: 简单回归分析的原理:最小二乘法,即使回归函数与实际值之 ...

  6. NeurIPS提前看 | 四篇论文,一窥元学习的最新研究进展

    2019 年,NeurIPS 接受与元学习相关的研究论文约有 20 余篇.元学习(Meta-Learning)是近几年的研究热点,其目的是基于少量无标签数据实现快速有效的学习.本文对本次接收的元学习论 ...

  7. spring之旅第四篇-注解配置详解

    spring之旅第四篇-注解配置详解 一.引言 最近因为找工作,导致很长时间没有更新,找工作的时候你会明白浪费的时间后面都是要还的,现在的每一点努力,将来也会给你回报的,但行好事,莫问前程!努力总不会 ...

  8. 深入理解javascript作用域系列第四篇——块作用域

    前面的话 尽管函数作用域是最常见的作用域单元,也是现行大多数javascript最普遍的设计方法,但其他类型的作用域单元也是存在的,并且通过使用其他类型的作用域单元甚至可以实现维护起来更加优秀.简洁的 ...

  9. android 测试工具,Android开源项目第四篇:开发及测试工具篇

    本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...

最新文章

  1. 7-20牛客网未知点集合
  2. 异步查询回调函数调用
  3. expat 处理xml常用函数名
  4. 职称英语与计算机考试试题,2020年职称计算机考试模拟选择试题及答案.doc
  5. 图论/暴力 Codeforces Beta Round #94 (Div. 2 Only) B. Students and Shoelaces
  6. 如何将驱动程序静态编译进内核
  7. Forms 凭票验证
  8. Jaunt和Dolby联手,为VR视频带来更带感的全景声场体验
  9. 在IDEA中调试JavaScript代码
  10. 05-信息管理系统--主页面显示当前用户实现退出功能实现
  11. asp毕业设计—— 基于asp+access的网上动态同学录系统设计与实现(毕业论文+程序源码)——同学录系统
  12. go reflect详解
  13. 关于 beyondcompare 只有FTP没有 sftp 的解决方案
  14. ffmpeg遇到Non-monotonous DTS in output stream的问题
  15. 联想小新pro13关闭自动调节亮度
  16. 我的汉字输入法编码方案
  17. Flutter 状态管理指南之 Provider
  18. R提示ERROR: dependencies ‘caret’ are not available for package ‘XXX’ 和MethylCIBERSORT的R包安装
  19. 杭州市中高级工程师职称评审条件
  20. 自我总结前端vue笔记

热门文章

  1. Happens-Before原则
  2. pom.xml详解撸一下基础
  3. 《翻转组件库之init项目》
  4. python实现数组的全组合以及全排列
  5. LCT求解最小生成树
  6. 产品读书《必然:理解将塑造你的12种技术力量》KK
  7. 华人工程师盗窃苹果商业机密,后果有多严重?
  8. 以前常用的攻击软件源代码
  9. 上饶师范学院计算机科学与技术专业就业前景,上饶师范学院毕业生就业质量年度报告.PDF...
  10. 2455. 可被三整除的偶数的平均值