EViews 6 Beta具有依据分类变量自动生成虚拟变量的函数
编译自EViews 6.0 beta 的“EViews 6 Beta Documentation”的281页。
EViews 6 Beta 中提供了自动生成虚拟变量以及防止“虚拟变量陷阱”的函数。
自动虚拟变量(Automatic dummy variables)
1、功能
函数@expand表达式作为回归元添加到估计式中,依据指定的分类序列自动生成虚拟变量。
2、语法
表达式: @expand(ser1[, ser2, ser3, ...][, drop_spec])
建立一组虚拟变量,这些虚拟变量与给定的分类序列ser1, ser2,...中各个分类值相对应。
表达式中的drop_spec选项的功能是从生成的虚拟变量中放弃指定的一个或多个虚拟变量,即不要它们参与到估计之中。drop_spec选项可以包含关键词"@DROPFIRST"(指明放弃代表第一个分类的虚拟变量),和关键词"@DROPLAST"(指明放弃代表序列最后一个分类的虚拟变量),还可直接指定要放弃的虚拟变量,例如:
@DROP(val1[, val2, val3,...])
其中每一个指定的虚拟变量名与@EXPAND中序列的某一分类相对应。采用通配符"*"代表所有的分类使表达式更简洁。
3、举例
今有如下两个分类变量:
SEX是一个取值为1和0的数值序列,表示观察对象的性别。
REGION是一个字符序列,取值共4类分别是"North", "South", "East", 和 "West"。
例1.命令:
eq.ls income @expand(SEX) age
估计一个名为eq的方程,采用最小二乘法进行估计,因变量是income,自变量中不包含截距(无C),指定了两个回归元@expand(SEX)和age,但实际上是income关于两个代表性别的虚拟变量和代表年龄的变量age进行回归。
“eq.ls income @expand(SEX) age”命令等同于手动设置如下方程:
例2.命令:
eq.ls income @expand(SEX, region) age
则在估计表达式中创建了8个虚拟变量,即income与8个虚拟变量和age进行最小二乘估计。这8个虚拟变量分别是:
SEX=0, region="North"
SEX=0, region="South"
SEX=0, region="East"
SEX=0, region="West"
SEX=1, region="North"
SEX=1, region="South"
SEX=1, region="East"
SEX=1, region="West"
例3.表达式:
@expand(***, region, @dropfirst)
也创建了与上例相同的8个虚拟变量,但是从中删去了第一个虚拟变量"SEX=0, REGION="North""。
例4.表达式:
@expand(SEX, region, @droplast)
则从中删去了最后一个虚拟变量"SEX=1, REGION="WEST""。
例5. 表达式:
@expand(SEX, region, @drop(0,"West"), @drop(1,"North"))
在创建的8个虚拟变量中删去指定的两个虚拟变量:"SEX=0, REGION="West"" 和 "SEX=1,REGION="North""。
例6.表达式:
@expand(SEX, region, @drop(1,*))
从创建的8个虚拟变量中删去了包含"SEX=1"组合的4个虚拟变量。
位于第二位的“*”代表REGION所有4个取值。
4、关于“虚拟变量陷阱”的问题
例1中,因为没有设置表示截距的C,所以代表性别SEX的两个虚拟变量之和是一个取值全为1的序列。不会与C完全多重共线性。
注意,例2中也没有设置C,所以也不会引致两性别虚拟变量之和与C共线,以及4地区虚拟变量之和与C共线。
例3-例6由于删除了虚拟变量,不言自明了。
所谓“虚拟变量陷阱”来自虚拟变量与C完全多重共线性,引致X'X是一个奇异矩阵,逆矩阵不存在,得不到参数的最小二乘估计量。
此外,“虚拟变量陷阱”与“最优虚拟变量组合”不是同一个命题。
|