欢迎光临散文网 会员登陆 & 注册

Stata入门——生成虚拟变量

2023-07-15 14:01 作者:是Nemo呀_  | 我要投稿

sysuse auto,clear

tabulate foreign

对变量的取值以频率表方式进行列示


summarize foreign

对变量进行描述性统计:最小值=0,最大值=1,满足了0 & 1变量的分类

变量展示的值并非0或1: 因为对于该变量执行了label标签命令


*method 1: if 

gen dummy1 = 0 if !missing(foreign)

对于全部不缺失foreign这一变量数值的样本,新建一个虚拟变量dummy1,且取值为0

replace dummy1 = 1 if foreign == 1 & !missing(foreign)

对于其中foreign 取值为 1的样本,替代虚拟变量的值为1


*method 2:cond

gen dummy2 = cond(foreign == 1, 1,0)

replace dummy2 = . if foreign == .

若foreign == 1,dummy2=1,否则dummy2=0

若 foreign 为缺失值,则设置dummy2=缺失

局限性:若变量的取值有多个,手动添加若干个虚拟变量很麻烦


*method 3:tab (tabulate的简写)

tab make , gen(car_)

根据make这一变量取值的不同,生成若干个虚拟变量car_1, car_2, car_3 ….

有多少种不同的取值,就会生成多少个虚拟变量


reg price mpg trunk car_*

当进行回归分析时,也不需要将全部虚拟变量手动输入,直接利用*作为通配符


reg price mpg trunk i.mpg

不将虚拟变量生成为新变量,直接在回归分析中加入mpg取值对应的虚拟变量

但这种方法仅适用于数值型,对于字符串型(如make变量)会报错:string variables may not be used as factor variables


egen make_group = group(make)

reg price mpg trunk i.make_group

group函数根据字符串变量取值的不同生成一一对应的数值

这一方法使字符串变量在不生成新变量的情况下,在回归分析中加入该变量取值对应的虚拟变量

Stata入门——生成虚拟变量的评论 (共 条)

分享到微博请遵守国家法律