接之前的简单线性回归文章: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. android模拟器访问PC本地接口

    一般来讲PC本地接口是localhost:8080 而在安卓模拟器上用的话,他会映射模拟器本身的,也就是说,可以把模拟器也当成一个PC端来看待,这样会好理解点吧 而在模拟器上想要访问PC本地的loca ...

  2. IIS网站 由http协议改变为https协议

    https://www.cnblogs.com/boosasliulin/p/6811231.html?utm_source=itdadao&utm_medium=referral

  3. linux将apache设置为系统服务和开机自启

    1> 查看一下/etc/init.d/下是否存在httpd这个服务 ls /etc/init.d/ | grep httpd 如果没有执行下一步 2>将自己安装目录下的apachect1复 ...

  4. httpd 处理模型

    prefork 一个请求用一个进程响应 worker 一个请求用一个线程响应(启动多个进程,多个进程生成多个线程) event 一个进程,处理多个请求

  5. Truck Adblue Emulator For SCANIA

    For sale online Truck Adblue Emulator For SCANIA See the price Where to buy? Truck Adblue Emulator F ...

  6. java集合的三种遍历方式

    import java.util.ArrayList;  import java.util.Collection;import java.util.Iterator;public class Home ...

  7. vue - 列表显示(列互相影响,全选控制,更新数据)

    要实现的效果为:全选,且列A列B互相影响,列B勾选则列A一定勾选,列A取消勾选,则相应列B取消勾选 数组 vue中列表渲染有些不是相应式的 var list=[ { a:'aaaa', b:'ddd' ...

  8. mysql和oracle分页查询

    MYSQL分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实现分 ...

  9. [C++ Primer Plus] 第9章、内存模型和名称空间(二)课后习题

    一.复习题 2.using声明和using编译指令的区别 using声明: using std::cin; using std::cout; using std::endl; using编译指令:us ...

  10. Overture里镲片的使用

    在我们使用Overture进行作曲编曲时,往往会增添很多乐器设备来使我们的乐器更丰富,今天我们来一起看看Overture里镲片怎么使用以及它在Overture的什么位置呢? 镲片,是一种乐器,通常指爵 ...