哑变量(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进行演示。