接之前的简单线性回归文章:regression | p-value | Simple (bivariate) linear model | 线性回归 | 多重检验 | FDR | BH | R代码

再读ISL

R代码层面的能力:

1. 会用简单的一元线性回归,拟合、解读结果、绘图;

2. 能给出系数的置信区间;

3. 预测新的结果,并给出预测结果的置信区间;

4. 模型基本假设的检验,残基、正态性等;

--------

5. 多重线性回归的拟合,结果的解读,哪些变量无关;

6. variance inflation factors检测;

7. 代码层面从模型中去掉无关变量;

8. 引入interaction项;

9. 自变量的非线性转换;

10. 定性变量的回归;dummy variables


multiple要注意区分,是multiple linear regression,还是multiple testing。

前者是说线性回归的变量有多个,后者是说要做多个线性回归,也就是多个检验。


P133,这是第二次作业,考察多重线性回归。这个youtube频道真是精品,用R做统计。这里是R代码的总结

连续变量和类别型变量总要分开讨论;

多重线性回归可以写成矩阵形式的一元一次回归;相当于把多变量当成列向量压缩一下;矩阵有着非常优美的简单的计算法则,大大简化了计算的复杂度;

在建多重线性回归模型时我们会遇到很多问题:

  • 选哪些变量建模,一元的很简单,可以判断有无显著性,多元就复杂了,我们收集的很多变量可能和因变量之间没有关系,必须过滤;
  • 哪些变量之间有相关性,必须把相关性考虑进模型;
  • 如何检测是否存在多次的关系?

ANOVA;partition variability into different parts with different explanations that add up to a total that is related to overall variance.

If the null hypothesis is true, then the Model SS should be just random variation, so that both the Model MS and Residual MS become estimates of the same variance, so the ratio will be around 1. However, if the null is false, the ratio should be large.
So this explains why our test statistic is: F=Model MS/Residual MS

多重线性回归ANOVA分析会有一个总的F统计下的p-value,如果这个都不显著,那就没有必要继续往下做了。

显著了那就继续往下做:如何选出最合适的变量呢?

有两种方法:

  • forwards stepwise regression,就是不断的往里面加变量,使得t statistic最显著;缺点很明显:1.多次检验,会加入过多变量;2.找不出复杂搭配的模型,因为是一个一个添加的;
  • backward stepwise regression,全部引入,然后一个一个的减;缺点:1.共线性;
  • mixed stepwise

Diagnostics方法,如何确定我们的基本假设是对的,假设都不对,建模就是扯淡;(Checking Linear Regression Assumptions in R | R Tutorial 5.2 | MarinStatsLectures,讲得比较透彻)

  • residuals
  • influence or leverage

我们一开始会检验各个变量之间的相关性,看一下大致的拟合情况。

用R的话,一般我们都是先构建full model,然后构建全部的reduced models,然后用ANOVA来检验,reduced model的RSS是否显著降低了,如果没有那么说明full model并没有比这个reduced model好,那我们就可以否定full model,选用这个reduced model。这也是符合Occam's razor法则的。

Assignment 2
Use the dataset below (which is tab delimited) on different brands of cigarettes – you
want to predict CO (Carbon Monoxide output) given the other variables.
1. Fit all seven possible linear models with CO as the dependent variable (i.e. with
all possible sets of independent variables except for no independent variables) and
summarise the results in a table.
2. Identify what you think is the best model for predicting CO and explain why you
think it is good.
3. Include a summary of diagnostic checks that you try for your best model (please
do at least one check).
# save to file: data.txt
Tar Nictn Wt CO
14.1 0.86 0.9853 13.6
16 1.06 1.0938 16.6
29.8 2.03 1.165 23.5
8 0.67 0.928 10.2
4.1 0.4 0.9462 5.4
15 1.04 0.8885 15
8.8 0.76 1.0267 9
12.4 0.95 0.9225 12.3
16.6 1.12 0.9372 16.3
14.9 1.02 0.8858 15.4
13.7 1.01 0.9643 13
15.1 0.9 0.9316 14.4
7.8 0.57 0.9705 10
11.4 0.78 1.124 10.2
9 0.74 0.8517 9.5
1 0.13 0.7851 1.5
17 1.26 0.9186 18.5
12.8 1.08 1.0395 12.6
15.8 0.96 0.9573 17.5
4.5 0.42 0.9106 4.9
14.5 1.01 1.007 15.9
7.3 0.61 0.9806 8.5
8.6 0.69 0.9693 10.6
15.2 1.02 0.9496 13.9
12 0.82 1.1184 14.9

三个自变量,所有多重线性回归有7中可能的模型。

解释哪一个模型最好。

diagnostic checks。

答案:

最极端的那个不是outlier,这个残基的随着Y在变,所以这个拟合关系不是线性的。下面的q-q plot也确认了这点。

需要用非线性的模型来拟合CO和Tar,参见R语言非线性回归入门

多重线性回归 (multiple linear regression) | 变量选择 | 最佳模型 | 基本假设的诊断方法的更多相关文章

  1. 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别

    1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...

  2. 机器学习之多变量线性回归(Linear Regression with multiple variables)

    1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...

  3. 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法

    (一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...

  4. 从零单排入门机器学习:线性回归(linear regression)实践篇

    线性回归(linear regression)实践篇 之前一段时间在coursera看了Andrew ng的机器学习的课程,感觉还不错,算是入门了. 这次打算以该课程的作业为主线,对机器学习基本知识做 ...

  5. Python 线性回归(Linear Regression) 基本理解

    背景 学习 Linear Regression in Python – Real Python,对线性回归理论上的理解做个回顾,文章是前天读完,今天凭着记忆和理解写一遍,再回温更正. 线性回归(Lin ...

  6. 【深度学习】线性回归(Linear Regression)——原理、均方损失、小批量随机梯度下降

    1. 线性回归 回归(regression)问题指一类为一个或多个自变量与因变量之间关系建模的方法,通常用来表示输入和输出之间的关系. 机器学习领域中多数问题都与预测相关,当我们想预测一个数值时,就会 ...

  7. Python 线性回归(Linear Regression) - 到底什么是 regression?

    背景 学习 Linear Regression in Python – Real Python,对 regression 一词比较疑惑. 这个 linear Regression 中的 Regress ...

  8. Python - 线性回归(Linear Regression) 的 Python 实现

    背景 学习 Linear Regression in Python – Real Python,前面几篇文章分别讲了"regression怎么理解","线性回归怎么理解& ...

  9. 机器学习之单变量线性回归(Linear Regression with One Variable)

    1. 模型表达(Model Representation) 我们的第一个学习算法是线性回归算法,让我们通过一个例子来开始.这个例子用来预测住房价格,我们使用一个数据集,该数据集包含俄勒冈州波特兰市的住 ...

随机推荐

  1. json对象组按某个字段排序

    JS排序 键值对 var sortBy=function (filed,rev,primer){ rev = (rev) ? -1 : 1; return function (a, b) { a = ...

  2. 装饰者模式 Decorator

    项目:咖啡计费系统 背景:现有系统中有一个抽象类Beverage,有2个抽象方法GetDescription和Cost. namespace DecoratorPattern { /// <su ...

  3. (转载记录)Active Directory 灾难恢复

    部分适用于Windows Server 2003. 在IT环境中谁也不能保证软硬件永远没有故障:那么就需要我们IT能够未雨绸缪,尽量避免故障发生,如果故障发生了,我们需要把损失降到最小:那么就需要我们 ...

  4. jbe 可以用来修改Java class的字节码,配合jd-gui 使用

    jbe  可以用来修改Java class的字节码,配合jd-gui 使用

  5. [批处理]守护NodeJS进程

    背景: 日常进行CI过程中,使用NodeJs方式:GIT更新->检测是否需要编译->调用IncrediBuilder编译->读取编译日志判断是否通过->调用7z打包 问题: 持 ...

  6. HTTP劫持和DNS劫持

    HTTP劫持和DNS劫持 首先对运营商的劫持行为做一些分析,他们的目的无非就是赚钱,而赚钱的方式有两种: 1.对正常网站加入额外的广告,这包括网页内浮层或弹出广告窗口: 2.针对一些广告联盟或带推广链 ...

  7. mysql授权grant

    本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删 ...

  8. php 当前日期加一天和指定日期加一天

    1.给当前时间加一天?一小时? <?phpecho "今天:",date('Y-m-d H:i:s'),"<br>";echo "明 ...

  9. 【ubuntu】-桌面假死的解决办法

    第一,通过ctrl+art+F1(1-6),启动本地终端 切换到了字符界面tty1 第二,查询进程,ps -e |grep tty7 得到tty7的pid号 第三,杀死tty7的进程 , kill 9 ...

  10. 内存管理 re模块

    # 内存垃圾回收机制: # 工作原理:引用计数 # 引用就+1 释放就是-1 当计数为0时 就会被垃圾回收机制回收 # 标记清除:解决循环引用导致的内存泄漏 # 标记:GC roots可以直接或间接访 ...