Stata入門——生成虛擬變量

sysuse auto,clear
tabulate foreign
對變量的取值以頻率表方式進行列示
summarize foreign
對變量進行描述性統(tǒng)計:最小值=0,最大值=1,滿足了0 & 1變量的分類
變量展示的值并非0或1: 因為對于該變量執(zhí)行了label標簽命令
*method 1: if?
gen dummy1 = 0 if !missing(foreign)
對于全部不缺失foreign這一變量數(shù)值的樣本,新建一個虛擬變量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_)
根據(jù)make這一變量取值的不同,生成若干個虛擬變量car_1, car_2, car_3 ….
有多少種不同的取值,就會生成多少個虛擬變量
reg price mpg trunk car_*
當進行回歸分析時,也不需要將全部虛擬變量手動輸入,直接利用*作為通配符
reg price mpg trunk i.mpg
不將虛擬變量生成為新變量,直接在回歸分析中加入mpg取值對應的虛擬變量
但這種方法僅適用于數(shù)值型,對于字符串型(如make變量)會報錯:string variables may not be used as factor variables
egen make_group = group(make)
reg price mpg trunk i.make_group
group函數(shù)根據(jù)字符串變量取值的不同生成一一對應的數(shù)值
這一方法使字符串變量在不生成新變量的情況下,在回歸分析中加入該變量取值對應的虛擬變量