本篇描述分类变量如何进行回归(翻译自http://www.sthda.com/english/articles/40-regression-analysis/163-regression-with-categorical-variables-dummy-coding-essentials-in-r/)

分类变量(也称为因子或定性变量)是可以将观测数据分组的变量。它们有有限数量的不同值,称为水平。例如,性别作为一个分类变量,它有两个水平:男性或女性。

回归分析需要数值变量。因此,当研究者希望在回归模型中包含一个分类变量时,需要其他步骤使结果具有可解释性。

在这些步骤中,分类变量被重新编码成一组单独的二元变量。这种编码被称为“哑变量编码”,并创建一个称为contrast matrix的表。这是由统计软件自动完成的,如R。

在这里,您将学习如何构建和解释带有分类预测变量的线性回归模型。我们还将在R中提供实际的例子。

加载需要的R包

便于数据操作和可视化的tidyverse

数据集示例

我们将使用Salaries数据集[car package],它包含美国一所大学的助理教授、副教授和教授2008-2009年内9个月的工资。这些数据的收集目的是监测男性和女性教师之间的工资差异。


两个水平的分类变量

回想一下,在预测变量(x)的基础上预测结果变量(y)的回归方程可以简单地写成y = b0 + b1*x。b0和b1为回归系数,分别表示截距和斜率。

假设,我们希望调查男性和女性之间的工资差异。

基于性别变量,我们可以创建一个新的哑变量,取值为:

并将该变量作为回归方程的预测变量,得到如下模型:
这些系数可以解释为:

(1)b0是女性的平均工资,
(2)b0 + b1是男性的平均工资,
(3)b1是男性和女性的平均工资差异。

为了演示,下面的例子通过计算一个简单的关于 Salaries 数据集[car包]的线性回归模型来模拟男性和女性之间的工资差异。R自动创建虚拟变量:


从上面的输出可以看出,女性的平均工资估计为101002,而男性的平均工资估计为101002 + 14088 = 115090。哑变量sexMale的p值非常显著,这表明两性之间的平均工资存在显著差异。

contrasts() 函数的作用是:返回R用来创建哑变量的编码:


R创建了一个sexMale哑变量,如果性别是男性,则值为1,否则值为0。将男性编码为1,女性编码为0(基线)的决定是任意的,这对回归计算没有影响,但是会改变对系数的解释。

可以使用relevel()函数将基线类别设置为males,如下所示:

之后回归拟合的输出为:


事实上,在回归输出中性别女性的系数是负的,这表明作为女性与薪水(相对于男性)的减少有关。

现在b0和b1的预测值分别为115090和-14088,再次得出男性的平均工资为115090,女性的平均工资为115090 -14088 = 101002。

另外,我们可以创建一个哑变量-1(男性)/1(女性),而不是0/1编码方案。这导致模型:

具有两个以上水平的分类变量

一般来说,一个有n个水平的分类变量会转化为n-1个各有2个水平的哑变量。这n-1个新变量包含的信息与单个变量相同。

例如, Salaries 数据中的**‘‘rank’’**有三个水平:“AsstProf”、“AssocProf”和“Prof”。这个变量可以伪编码成两个变量,一个叫AssocProf,一个叫Prof:

这个哑变量编码由r自动执行。出于演示目的,您可以使用函数model.matrix()为一个因子变量创建一个 contrast matrix :


在建立线性模型时,有不同的方法来编码分类变量,称为对比编码系统。R中的默认选项是使用因子的第一个水平作为参考,并解释相对于该水平的其余水平。

注意,ANOVA(方差分析)只是线性模型的一种特殊情况,其中的预测因子是分类变量。而且,因为R理解ANOVA和回归都是线性模型的例子,它允许您使用R base anova()函数或*ANOVA()*函数[car包]从您的回归模型中提取经典的ANOVA。我们通常推荐Anova()函数,因为它会自动处理不平衡设计。
使用多元回归方法预测工资的结果如下:


取其他变量(yrs.service, rank and discipline),可以看出分类变量性别不再与个体间薪酬差异显著相关。重要变量是rank和discipline.。

如果你想解释分类变量的对比,输入:

例如,我们可以看到,来自discipline B( applied departments) 的员工相对于discipline A(theoretical departments)平均工资增长13473.38,这是显著相关的。

讨论

在这一篇章中,我们描述了分类变量是如何包含在线性回归模型中的。由于回归需要数字输入,分类变量需要被重新编码成一组二元变量。

我们提供了实际的例子,你有两个或两个以上水平的分类变量的情况。

注意,对于具有大量水平的分类变量,将一些水平组合在一起可能是有用的。

有些类别变量的级别是有序的。它们可以转换为数值并按原样使用。例如,如果教授等级(“AsstProf”、“AssocProf”和“Prof”)有特殊的含义,您可以将它们转换为数值,从低到高排序。

欢迎关注我的公众号:聊无的学习笔记

分类变量回归: R语言中哑变量编码本质相关推荐

  1. R语言中哑变量的设置

    原文来源:https://www.sohu.com/a/199698358_489312 在构建回归模型时,如果自变量X为连续性变量,回归系数β可以解释为:在其他自变量不变的条件下,X每改变一个单位, ...

  2. 有序分类logistic回归-R语言

    有序分类logistic回归 正如字面理解,包含两个方面:一是有序性,如调研中常用的满意度常用李克特量表,即有序的因变量:二是logistic分类,如1代表优秀.2代表良好.3代表一般等等. 因变量为 ...

  3. @value 静态变量_C/C++语言中的变量的4种存储类型

    所有的数据都有两种类型 (1)数据类型: : 如 int,float 等. (2)存储类型: : 总共有四种存储类型的变量,分别为自动变量(auto).静态变量(static).外部变量(extern ...

  4. r语言 分类变量 虚拟变量_R语言中的变量

    r语言 分类变量 虚拟变量 R语言| 变数 (R Language | Variables) In the previous tutorial, we have come across the bas ...

  5. R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据

    原文链接:http://tecdat.cn/?p=20828 本文使用lasso或非凸惩罚拟合线性回归,GLM和Cox回归模型的正则化,特别是_最小_最_大凹_度_惩罚_函数_(MCP)_和光滑切片绝 ...

  6. 在c语言中 使用变量的要求,关于C语言中变量的探讨

    摘 要: 在所有的计算机高级语言中,都存在着变量这样一个重要的概念.变量是计算机高级语言程序的重要成分之一.与其他语言中的变量相比,C语言中的变量所包含的内容更为丰富,包括变量的定义.数据类型.变量数 ...

  7. 如何用R语言做工具变量回归(未完工版本

    在计量经济学中的回归中,可能会遇到遗漏变量偏误.测量误差.双向因果等问题,那么工具变量是解决此类内生性问题的几大利器之一.本文用Stock&Waston课本章节为例,展示如何在R语言中进行工具 ...

  8. R语言的Copula变量相关性分析

    在工程.水文和金融等各学科的研究中,总是会遇到很多变量,研究这些相互纠缠的变量间的相关关系是各学科的研究的重点.虽然皮尔逊相关.秩相关等相关系数提供了变量间相关关系的粗略结果,但这些系数都存在着无法克 ...

  9. R语言创建新变量方法

    R语言创建新变量方法 在数据分析中,可能需要对数据进行求和.求均值等处理,并且将处理后的数据重新保存到原来的数据框中,这里提供三种可供解决的方法: 数据框$变量名 <- 表达式.若原数据框中含有 ...

最新文章

  1. Linux下怎么诊断网站性能异常
  2. scrapy创建以及启动项目步骤!
  3. Cannot load 64-bit SWT libraries on 32-bit JVM
  4. numpy中的matrix矩阵处理
  5. Navicat120_premium_cs_x64
  6. springboot---request 中Parameter,Attribute区别
  7. python数据类型之元组类型
  8. 【CSS】font样式简写(转)- 不是很建议简写
  9. 数据结构之自建算法库——链栈
  10. 简单的方式优化mysql
  11. 细说新一代HTML5/JavaScript的UI控件wijmo5 的新架构
  12. Tomcat如果默认8080被占用修改端口号和查询端口号地址
  13. c中static的含义
  14. 计算机专业的描述,计算机专业描述怎么写
  15. tushare基本用法
  16. 漂泊在汉语视界中的蒙古歌者
  17. python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...
  18. PS作业【利用新蒙版再生图像】的一些经验和提示
  19. 智力题集锦与详解——持续更新
  20. 计算机专业英语1500词TXT,电脑专业英语1500词

热门文章

  1. 移动端web开发( 01)
  2. 互联网也可以这样玩,爱锁屏红包受到广大2级城市用户青睐
  3. 报表服务器项目交叉表,交叉表
  4. mysql开通远程连接不上去_MySQL本地可以连接,远程连接不上的问题_夜风的BLOG-CSDN博客_mysql远程连接不上...
  5. yota3+ wifi 4g图标显示小叉号问题
  6. 金融信创扛大旗|优炫软件联合发起成立金融信创协同汇
  7. 在工程中加入第三方库
  8. pg_hba.conf 和 pg_ident.conf
  9. JavaScript打印和预览等
  10. CMD永久删除指定文件夹和文件