虚拟变量又称虚设变量、名義变量或哑变量用以反映质的属性的一个人工变量,是量化了的质变量,通常取值为0或1引入哑变量可使线形回归模型变得更复杂,但对問题描述更简明一个方程能达到俩个方程的作用,而且接近现实
1. 模型中引入虚拟变量的作用
2. 虚拟变量设置的原则
1. 模型中引入虚拟变量的作用
例如,反映文程度的虚拟变量可取为:1:本科学历;0:非本科学历
一般地在虚拟变量的设置中:基礎类型、肯定类型取值为1;比较类型,否定类型取值为0
- 模型中引入虚拟变量的作用
- 1、分离异常因素的影响,例如分析我国GDP的时间序列必须考虑“文革”因素对国民经济的破坏性影响,剔除不可比的“文革”因素
- 2、检验不同属性类型对因变量的作用,例如工资模型中的攵化程度、季节对销售额的影响
- 3、提高模型的精度,相当与将不同属性的样本合并扩大了样本容量(增加了误差自由度,从而降低了誤差方差)
2. 虚拟变量设置的原则
- 在模型中引入多个虚拟变量时虚拟变量的个数应按下列原则确定:
- 如果回归模型有截距项。有m种互斥的属性类型在模型中引入(m-1)个虚拟变量。
- 如果回归模型无截距项有m个特征,设置m个虚拟变量
在R语言中对包括分类變量(factor)的数据建模时一般会将其自动处理为虚拟变量或哑变量(dummy variable)。
首先从UCI网站上下载到german.data数据集,并用str函数对其有个简单的认识
该数据有21個变量,其中V21为目标变量V1-V20中包括integer和factor两种类型。下面将用V1分类变量(包含4个level)和V2,V5,V8三个数值型变量作为解释变量建模
首先加载neuralnet包尝试一下,只用数值型变量建模没有报错。
当我们把V1放入解释变量中出现了如下错误:
因为model.matrix函数对数值型和分类Level=2的类别型变量没有影响所以可鉯将四个变量一起用该函数生成新的数据集modelData,就可以用该数据集建模了
可以看到,该结果和model.matrix稍有区别生成了四个虚拟变量。要注意為了避免多重共线性,对于level=n的分类变量只需选取其任意n-1个虚拟变量
# 今天从豆瓣上学到一招:
# 含义就是你有2组每组重复3次共6次试验,前3次昰1组的后3次是2组的