Stata編程小筆記3——可忽視&不忽視的缺失值
2022-04-09 15:35 作者:deepwaterqh | 我要投稿
在跑回歸的過程中,面對(duì)缺失值,一個(gè)常見的做法是直接忽視,因?yàn)閟tata會(huì)自動(dòng)忽略有缺失值的那行觀測(cè)值。

但在數(shù)據(jù)預(yù)處理的過程中,直接忽視缺失值卻有可能導(dǎo)致變量計(jì)算錯(cuò)誤。這些情況包括(但不限于):
(1)判斷語(yǔ)句
例子:
gen b=(a>2) :生成虛擬變量b,當(dāng)a>2時(shí),b取值為1,否則b取值為0。但由于Stata默認(rèn)缺失值比任何值都大,即a等于缺失值時(shí)b也取值為1,這顯然不對(duì),所以此時(shí)需要將b替換成缺失值。
(2)變量橫向相加
例子:
結(jié)果顯示如下:

可見,變量橫向相加時(shí),只要有一個(gè)變量含有缺失值,則計(jì)算結(jié)果為缺失值。如果不想讓計(jì)算結(jié)果為缺失值,則需要先將a=.替換成a=0。

而如果使用egen命令,則無(wú)論是橫向相加,還是縱向相加,stata都會(huì)把缺失值當(dāng)成0來(lái)計(jì)算。
(1)橫向相加。
使用egen計(jì)算橫向相加,有一個(gè)好處:多個(gè)變量相加時(shí),但這些變量的名字有共同部分,則可使用通配符,大大減少變量名的書寫負(fù)擔(dān)。
(2)縱向相加。
計(jì)算結(jié)果并不是缺失值,而是如下:


回到最開始的問題,究竟需不需要把缺失值替換為0?這需要結(jié)合自己的研究問題而定。
標(biāo)簽: