多重线性回归 (multiple linear regression) | 变量选择 | 最佳模型 | 基本假设的诊断方法
接之前的简单线性回归文章: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) | 变量选择 | 最佳模型 | 基本假设的诊断方法的更多相关文章
- 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别
1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...
- 机器学习之多变量线性回归(Linear Regression with multiple variables)
1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...
- 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法
(一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...
- 从零单排入门机器学习:线性回归(linear regression)实践篇
线性回归(linear regression)实践篇 之前一段时间在coursera看了Andrew ng的机器学习的课程,感觉还不错,算是入门了. 这次打算以该课程的作业为主线,对机器学习基本知识做 ...
- Python 线性回归(Linear Regression) 基本理解
背景 学习 Linear Regression in Python – Real Python,对线性回归理论上的理解做个回顾,文章是前天读完,今天凭着记忆和理解写一遍,再回温更正. 线性回归(Lin ...
- 【深度学习】线性回归(Linear Regression)——原理、均方损失、小批量随机梯度下降
1. 线性回归 回归(regression)问题指一类为一个或多个自变量与因变量之间关系建模的方法,通常用来表示输入和输出之间的关系. 机器学习领域中多数问题都与预测相关,当我们想预测一个数值时,就会 ...
- Python 线性回归(Linear Regression) - 到底什么是 regression?
背景 学习 Linear Regression in Python – Real Python,对 regression 一词比较疑惑. 这个 linear Regression 中的 Regress ...
- Python - 线性回归(Linear Regression) 的 Python 实现
背景 学习 Linear Regression in Python – Real Python,前面几篇文章分别讲了"regression怎么理解","线性回归怎么理解& ...
- 机器学习之单变量线性回归(Linear Regression with One Variable)
1. 模型表达(Model Representation) 我们的第一个学习算法是线性回归算法,让我们通过一个例子来开始.这个例子用来预测住房价格,我们使用一个数据集,该数据集包含俄勒冈州波特兰市的住 ...
随机推荐
- audio google play()
<audio id="music" src="" preload loop="loop" autostart="true&q ...
- Machine Learning 第一二周
# ML week 1 2 一.关于machine learning的名词 学习 从无数数据提供的E:experience中找到一个函数使得得到T:task后能够得到P:prediction 监督学习 ...
- vuex 入坑篇
Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 这个状态自管理应用包含 ...
- Web前端培训教程:CSS3动画怎么实现的
动画 CSS3属性中有关于制作动画的三个属性: transform,transition,animation keyframes @keyframes mymove{ from{初始状态属性} to{ ...
- 接触node第一步
趁着工作不忙,今天来系统记录一下安装node环境: 1.node下载地址为:https://nodejs.org/en/,检查是否安装成功:如果输出版本号,说明我们安装node环境成功:node -v ...
- self study 权限 permission
demo 测试成功, import 'package:permission/permission.dart'; Future requirePermission()async { await Perm ...
- 创建局域网yum服务器
首先需要安装createrepo这个软件包,使用yum安装即可 创建软件库文件夹,比如mkdir -p /var/www/html/myrepo/x86_64, 将软件包拷贝到文件夹下. cd到该文件 ...
- 如何在xlwt中编写多个列的单元格?
目的,写下面的表格: ---------------- | Long Cell | ---------------- | 1 | 2 | ---------------- 如果下面这样写: sheet ...
- VC++ 实现程序重启
转载:https://blog.csdn.net/what951006/article/details/72729448 一.创建一个Win32项目 二.窗口处理函数中,Create窗口时创建一个按钮 ...
- Android中的广播基本实现及回调方法的理解
在Android中broadcast这一节的内容其实不算多主要是牵扯到一个broadcastreceiver类,这个类是一个抽象类,下面有一个抽象方法onreceiver(),可以再我们收到网络状态变 ...