R笔记:哑变量

转自个人微信公众号【Memo_Cleon】的统计学习笔记:R笔记:哑变量。哑变量(Dummy Variables)也称虚拟变量,在回归中是一个很重要的概念。哑变量的引入使得回归模型变得更复杂,但对问题描述更简明而且接近现实。对于二分类变量,实际在模型中的取值只有“0”和“1”两个值,无论是以连续型还是哑变量变量纳入模型结果都是一样的,无非是参照水平是0还是1的问题。对于无序多分类的变量,其赋值大小并不代表自变量间的次序或者程度差异,因此需要将其设置成哑变量,相当于将有n个水平的分类变量设置成为n-1哑变量,结果呈现形式上类似将有n个水平的分类变量拆分为n-1个二分类变量。对于有序多分类变量,应该以哑变量还是以连续性变量引入模型需要视情况而定,需要对两种模型进行比较做出判断。哑变量需要遵循同进同出的原则,即在一个模型中同一个多分类变量的所有哑变量要么全部纳入模型,要么全部不纳入模型。利用R进行回归分析时,大部分函数会把字符变量和因子变量直接按哑变量处理,这一点还是比较方便的,省去了单独设置哑变量的步骤。还有一点,各种函数在处理因子变量时,往往会把低水平作为参照水平,这与SPSS默认高水平为参照水平是不同的,这就要求我们在定义因子的时充分利用levels的属性,具体参见<<因子>>一文。即便在回归中往往不需要我们单独对多分类变量进行哑变量的设置,我们还是要花一点时间来看下R中如何进行哑变量设置。很多函数都可以实现哑变量的设置,如dummy.c {misty}、model.matrix {stats}、dummy {dummies}、class.ind{nnet}等,我们以dummy.c和model.matrix进行演示。数据:<<因变量二分类资料的Probit回归>>dummy.c {misty}:creates k - 1 dummy coded 0/1 variables for a vector with k distinct values.dummy.c(x, ref = NULL, names = "d", as.na = NULL, check = TRUE)x:a numeric vector with integer values, character vector or factor.ref:a numeric value or character string indicating the reference group. By default, the last category is selected as reference group.names:a character string or character vector indicating the names of the dummy variables. By default, variables are named "d" with the category compared to the reference category (e.g., "d1" and "d2"). Variable names can be specified using a character string (e.g., names = "dummy_" leads to dummy_1 and dummy_2) or a character vector matching the number of dummy coded variables (e.g. names = c("x.3_1", "x.3_2")) which is the number of unique categories minus one.as.na:a numeric vector indicating user-defined missing values, i.e. these values are converted to NA before conducting the analysis.check:logical: if TRUE, argument specification is checked.

library(readxl)dumv<-read_excel("D:/Temp/bsrdata.xlsx")library(misty)dummy.c(dumv$race, reference = 1, names = "race_d")

dumv文件中的变量race已经被转换成了哑变量,哑变量以第一水平为参照水平,生成的两个哑变量名称为race_2和race_d3。model.matrix {stats}:creates a design (or model) matrix, e.g., by expanding factors to a set of dummy variables (depending on the contrasts) and expanding interactions similarly.可将对象中的因子变量转换成0/1哑变量。model.matrix(object, ...)model.matrix(object, data = environment(object),contrasts.arg = NULL, xlev = NULL, ...)object:an object of an appropriate class. For the default method, a model formula or a terms object.data:a data frame created with model.frame. If another sort of object, model.frame is called first.contrasts.arg:a list, whose entries are values (numeric matrices, functions or character strings naming functions) to be used as replacement values for the contrasts replacement function and whose names are the names of columns of data containing factors.xlev:to be used as argument of model.frame if data is such that model.frame is called....:further arguments passed to or from other methods.

library(readxl)dumv<-read_excel("D:/Temp/bsrdata.xlsx")dumv$race<-factor(dumv$race) #将变量race设置为因子变量dumv$smoke<-factor(dumv$smoke)dumv$ht<-factor(dumv$ht)dumv$ui<-factor(dumv$ui)dumlized<-model.matrix(bwt~age+lwt+race+smoke+ptl+ht+ui+ftv,data=dumv)dumlized

对象中的因子变量已经全部转换成了因子变量。哑变量编码通常取值为0或1,在SPSS中对因子的处理常使用哑变量编码方式。除了哑变量编码(dummy coding)外,常用的另外一种编码方式是效应编码(effect coding),编码取值1、0和-1。编码方式不同,具体参数的意义也会有差别,因此参数估计值会有不同,在JMP中对因子的编码方式常常采用效应编码。转自个人微信公众号【Memo_Cleon】的统计学习笔记:R笔记:哑变量。… E N D …

(0)

相关推荐

  •  Wscript.shell 详解

    Wscript.shell Wscript.shell是Wshshell的ProID Wshshell 是一个对象,存放在windows系统中的wshom.ocx文件 中,可供在windows上运行的 ...

  • R语言实战.3

    分别是向量形式输入数据 显示对象的结构 显示对象的统计概要 首先,以向量的形式输入数据➊.然后,将diabetes和status分别指定为一个普通因子和一个有序型因子.最后,将数据合并为一个数据框.函 ...

  • R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用

    原文链接:http://tecdat.cn/?p=22805 为什么需要虚拟变量? 大多数数据都可以用数字来衡量,如身高和体重.然而,诸如性别.季节.地点等变量则不能用数字来衡量.相反,我们使用虚拟变 ...

  • 回归分析哑变量设置了吗? | 30天学会医学统计与SPSS公益课程(D30)

    30天学会医学统计与SPSS 本课程是高校医学统计学教授的公益.免费公开课!如假包换!我将每天推送视频和文字教程,讲授基于医学数据的各种统计分析策略.如果你能跟得上节奏,我相信在一个月后,您将会掌握医 ...

  • R笔记:全子集回归 | 最优子集筛选

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:R笔记:全子集回归|最优子集筛选. 在进行多因素回归(多重线性回归.logistic回归.Cox回归等)时,为了得到简洁有效的模型,我们会做变 ...

  • 如何在SPSS中设置逻辑回归的哑变量

    哑变量,是一个人为设定的变量,通常取值为0到N,以职业分类来说,0代表学生,1代表工人,2代表老师等等,哑变量就是通过这种取值方式,以此来反映某个变量的不同属性. 哑变量的设置在各个回归模型中都非常重 ...

  • R语言工具变量与两阶段最小二乘法

    原文链接:http://tecdat.cn/?p=5374 我们要估计的模型是 其中 是解释变量, 和 是我们想要估计的系数.x是控制变量,d是治疗变量.我们对我们治疗d对y的影响特别感兴趣. 生成数 ...

  • 回归模型中的哑变量是个啥?何时需要设置哑变量?

    在构建回归模型时,如果自变量X为连续性变量,回归系数β可以解释为:在其他自变量不变的条件下,X每改变一个单位,所引起的因变量Y的平均变化量:如果自变量X为二分类变量,例如是否饮酒(1=是,0=否),则 ...

  • 当自变量为哑变量时,你的实证操作空间有多大?

    图片来源:网络 在大部分的实证研究中,我们常常去关注两个变量之间的相关性关系,或者A对B的影响因果关系以及这种因果关系在不同场景中的变化,但实际上,这些关系的分析和挖掘都建立在我们准确掌握因变量和自变 ...

  • R笔记:多重线性回归(四)_稳健回归

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:R笔记:多重线性回归(四)_稳健回归. [1-3]数据导入>>数据初步考察与处理>>拟合多重线性回归模型 [4]适用条 ...

  • 一行pandas代码生成哑变量

    一. 数据 import pandas as pd df = pd.read_csv('data.csv', usecols=['Name', 'Info']) df.head() 二.任务 现在我想 ...