变量选择

  • what is that
  • How to do that
    • stepwise
      • backward elimination
      • forward selection
      • stepwise selection
    • All subset selection
      • Radj2/σ^2R^2_{adj}/\hat{\sigma}^2Radj2​/σ^2:
      • AIC/BIC
      • CV
      • CpC^pCp

what is that

对于一个模型,其含有的协变量数量和性质的关系如下图:

MSE[y^(x0)]=Bias[y^(x0)]2+Var[y^(x0)]MSE[\hat{y}(x_0)] = Bias[\hat{y}(x_0)]^2 + Var[\hat{y}(x_0)]MSE[y^​(x0​)]=Bias[y^​(x0​)]2+Var[y^​(x0​)]

所以,在极端的情况下,我们可以牺牲一点偏差(方差)换来更小的方差(偏差)

实际上,变量选择的过程就是权衡取舍的过程

How to do that

stepwise

backward elimination

步骤:
1)将所有可能的协变量一起拟合一个模型,之后再进行所有单个变量的 t 检验,将最不相关的协变量消除;
2)再进行拟合,再消除新的拟合中最不相关的变量
3)重复上述,直到模型中所有变量的 p 值小于某一预设的 α,此时认为所有的变量都是重要的

forward selection

当样本量小于变量数时(n < p)backward不适用,此时可用 forward
(很明显,此时模型甚至无法拟合)

1)所有协变量都进行一次单变量拟合(包含β0\beta_0β0​),将 p 值最小,且小于 α 的变量加入模型作为第一个变量
2)再将剩余的变量,每个都单独与模型中的变量一起进行拟合,再进行检验,选择 p 值最小的变量加入模型(小于α)
3)重复上述,直到剩余的变量的 p 值都大于 α

stepwise selection

上述两种方式都有一个共同的问题,一旦将某一变量剔除(加入)后,就不再考虑他是否在后续中仍然不相关(相关),而stepwise方法可以让同一个变量反复进出模型

1)先进行forward选择,当选择一个变量后,(若没有选择则算法结束)
2)进行backward,
若没有进行剔除,则再进行forward;
若需要剔除,则持续剔除直到没有可以再剔除的变量,再回到forward
3)算法结束条件:当forward中没有变量可选,并且后续的backward也没有变量可以剔除

All subset selection

以上三种方法没有优劣可言,因为他们实际上都没有将所有的变量组合进行比较,因此他们都是次最优的

若将所有的变量组合都进行比较,可获得 “最优” 的(slides里面就加了引号),

将所有可能的组合,进行拟合,再两两比较,取最优

数量:C1p+C2p+C3p+...Cpp=2p−1C^p_1+C^p_2+C^p_3+...C^p_p=2^p-1C1p​+C2p​+C3p​+...Cpp​=2p−1

在此之前,我们需要确定如何去两两比较,同时,这步也就是不同方法的区别:

 惩罚函数不同

Radj2/σ^2R^2_{adj}/\hat{\sigma}^2Radj2​/σ^2:

R2=SSregSStotal=1−SSresSStotalR^2 =\frac{SS_{reg}}{SS_{total}}= 1 −\frac{SS_{res}}{SS_{total}}R2=SStotal​SSreg​​=1−SStotal​SSres​​

因为SStotalSS_{total}SStotal​,是不会随着模型中变量的多少而变化,仅与样本本身有关,所以比R2R^2R2实际上相当于比较SSresSS_{res}SSres​

但未经调整的R方是不可用的:

因为随着模型中变量的增加,R2R^2R2必然增大

所以应使用调整后的 Radj2=1−SSres/(n−1−q)SStotal/(n−1)R^2_{adj} = 1-\frac{SS_{res}/(n − 1 − q)}{SS_{total}/(n − 1)}Radj2​=1−SStotal​/(n−1)SSres​/(n−1−q)​作为判断依据

(其中对SSresSS_{res}SSres​除以(n-1-q)是对R2R^2R2增大的惩罚)

最大化Radj2R^2_{adj}Radj2​的模型就是最优的(等价于σ^2\hat{\sigma}^2σ^2)

AIC/BIC

AIC=nlog(SSres/n)+2(q+1)AIC = n log (SS_{res}/n) + 2(q + 1)AIC=nlog(SSres​/n)+2(q+1)
BIC=nlog(SSres/n)+log(n)(q+1)BIC = n log (SS_{res}/n) + log(n)(q + 1)BIC=nlog(SSres​/n)+log(n)(q+1)

nlog(SSres/n)=−2maxlog−likelihoodn log (SS_{res}/n)= −2 max log-likelihoodnlog(SSres​/n)=−2maxlog−likelihood

AIC/BIC最小者为最优

同样的,这两种标准也是以SSresSS_{res}SSres​为基础的,另外注意SSres和R2SS_{res}和R^2SSres​和R2的增减相反

两种方法的惩罚项不同,在n较大时,log(n)>2
在n→∞n\to∞n→∞时,BIC能保证找到真值,AIC不行

CV

交叉检验
每次去掉一个样本,用去掉的样本去检验剩余样本拟合的模型,遍历所有样本后求和作为判断依据

怎么还是这么多个模型,打错了吧

CpC^pCp


variable selection相关推荐

  1. UA MATH574M 统计学习 Variable Selection:Cross Validation

    UA MATH574M 统计学习 Variable Selection:Cross Validation LOOCV LOOCV score的计算 K-fold CV Generalized CV 故 ...

  2. UA MATH574M 统计学习V Variable Selection: LASSO

    UA MATH574M 统计学习V Variable Selection: LASSO 基本概念 Oracle Property Penalized Regularization Framework ...

  3. UA MATH574M 统计学习V Variable Selection简介

    UA MATH574M 统计学习V Variable Selection简介 两个基础方法 Ranking Variables Best Subset Algorithm 对基础方法的改进 Gener ...

  4. Variable Selection via Nonconcave PenalizedLikelihood and its Oracle Properties 论文解析-特征选择的Oracle特性-1

    本文为正则化相关特征选择提供了重要的判定标准和选择方法,对于特征选择方面的研究和算法应用有重要价值,本节将首先介绍论文的前半部分,主要是一些基础概念和方法的比较. 最小二乘的惩罚项和特征选择 考虑带惩 ...

  5. 闲话Variable Selection和Lasso

    原文:https://www.wengbi.com/thread_80323_1.html 闲话Variable Selection和Lasso 最近在看变量选择(也叫subset selection ...

  6. 课堂笔记(7) Model fit and variable selection 模型拟合和变量选择 —— Adjusted ​R^2、Cp、全子集回归

    目录 Basic knowledge Model fit criteria The ​R^2 statistic Selection criteria for comparing models - A ...

  7. 通过Model-X Knockoffs控制variable Selection

    通过Model-X Knockoffs控制variable Selection 使用R中的knockoffs包 第一个例子 用户定义的测试统计信息 用户定义的knockoff生成函数 近似与完全SDP ...

  8. Cox回归之变量筛选的R实现 (Stepwise Variable Selection in R)

    参考链接:http://finzi.psych.upenn.edu/R/library/My.stepwise/html/My.stepwise.coxph.html package install. ...

  9. 机器学习Machine Learning:特征选择Feature Selection 与 数据降维Dimension Reduction的区别?

    为什么会有降维和特征选择??? 我们知道机器学习的终极目标就是为了预测,当然预测前我们要对数据进行训练.通常我们不会拿原始数据来训练,为什么呢?可能有些人觉得原始信息(original data)包含 ...

  10. Paper:可解释性之VI/PFI《All Models are Wrong, but Many are Useful: Learning a Variable’s Importance》翻译与解读

    Paper:可解释性之VI/PFI<All Models are Wrong, but Many are Useful: Learning a Variable's Importance by ...

最新文章

  1. 干货丨从硬件配置到框架选择,请以这种姿势入坑深度学习
  2. Theano - Numpy 新手
  3. 简单的横向ListView实现(version 3.0)
  4. PHP获取MySQL执行sql语句的查询时间
  5. 。net面试题(2)
  6. python3多进程写时拷贝_Python实现多进程的详解(附示例)
  7. 摊牌了,我 HTTP 功底贼好!
  8. CentOS7 正确安装mysql(亲测)
  9. 线性表的Java实现--链式存储(双向链表)
  10. Visual Studio 2017 15.4 正式发布,那些你必须知道的新特性!
  11. Android studio 常用的插件
  12. Elasticsearch6.3.0安装Ansj分词插件
  13. python代码_Python发送邮件基础知识与代码讲解!
  14. python一行代码太长_一行代码让python的运行速度提高100倍,你信吗?
  15. 深入理解栈(Stack)
  16. 快来带您了解中秋节的前世今生
  17. 基于JQuery网页漂浮广告窗口Js详解
  18. 跑握手包需要什么显卡?|跑包显卡配置
  19. SCA连载GDPR 数据处理案件分析 | 德国数据保护局vs德国学术机构,谁是数据控制者?
  20. node文件系统 常用文件处理方法

热门文章

  1. MySQL设计一个图书馆数据库_设计一个图书馆数据库
  2. 大型网站技术架构-第4篇 架构师
  3. ThoughtWorks的敏捷测试
  4. 对于拖延症的最好方法
  5. 用计算机修改图片或照片,【如何更改图片像素】电脑上如何改照片像素
  6. 稳态误差,超调与PID的关系
  7. sqlserver 提示“用户sa 登录失败 18456”问题解决过程
  8. 华为路由器DDNS设置and NAT内网映射 and SSH
  9. R统计绘图-VPA(方差分解分析)
  10. jquery Boxy的使用方法