通过stata查看缺失值可以总结为四种方法,个人按照可操作性的难易程度排序的话,大致是如下结果:mdesc最简单,codebook其次,nmissing或npresent次之,missing最后。(掌握之后会发现都非常简单~)
mdesc
// 输入命令即可看到所有变量存在的缺失值的情况,包括变量缺失值个数、缺失值占比。
mdesc x1 x2
// 查看指定变量x1 x2的缺失值情况:缺失值数量、缺失值占比。
codebook x1 x2
// 统计x1 x2变量的详细缺失值情况。首先列示x1的缺失值情况,变量类型、变量形式、缺失值个数和占比等,然后列示x2的相关信息。
ssc install nmissing
nmissing
// 自行安装nmissing命令,然后输入nmissing,直接查看缺失值。相比于mdesc较为麻烦之处就在于需要提前安装外部命令。
ssc install npresent
npresent
// 自行安装npresent命令,然后输入npresent,查看非缺失值。npresent与nmissing是结果互补的关系,两者皆可选择。
如何处理缺失值?
查看完缺失值后,需要对缺失值进行处理,通常有两种做法:缺失值补充或者直接删除。
关于缺失值的补充,常用到的是插值处理或者均值处理。在实证过程中,通常研究样本是大样本,因此不建议采用缺失值补充,直接删除缺失值或许是个更好的选择。
drop if x1==.|x2==.
// 法一:直接删除x1和x2存在缺失值的情况,无需生成新的变量,直接根据“或”语句删除缺失值,较为简便。
gen missing=missing(x1 x2 x3)
keep if missing=0
// 法二:仅保留没有缺失值的数据。这是通过设置missing变量来删除存在缺失值的情况,思路在于生成missing变量,删除(x1 x2 x3)变量组中任一存在缺失值的情况,更加适用于变量多的复杂数据结构,方便检查,不易出错。