数据处理问题
老师,我最近在处理一个数据集。这是一个面板数据,近600个观察个体(id),近20年的记录。从整体上看,数据比较脏。数据表面中没有缺失值,但有大量的零值。可以肯定地说,其中有些零值应该为缺失值。
当很难区分哪些零值是真正的零,哪些零值实际上为缺失值时,一般如何处理?
a. 将零值统一改为缺失值?显然会存在系统性偏差。
b. 不进行处理?有变量的取值很大,”假”的零值肯定会对估算结果带来大的干扰。
c. 有些情况可以明显地判断出其为缺失值(而非零值),可以将这些零值变化缺失值,是否需要对这些缺失值进行补全? 通常的补全策略是什么?
我采取的策略是(时间跨度为1995-2010年):
第一类:存在一个缺失值
(1)A.B的情形,统一用A和B的平均值来补全中间的缺失值;
(2)1995年的系统缺失:由于该年没有进行统计,我们统一用1996年的值代替。
(3)对于2010年值的补全:统一用2009年的非缺省值代替。
第二类:存在两个缺失值
(1)A..BC情形,我们用A及B的平均值来补全第一个缺省值,如即(A+B)/2=x,第二个缺省值会按照同样的规则进行补全,即(x+C)/2。在此基础上,利用第一类中的(1)方法对A.B的情形进行更新处理。
(2)..A的情形,其中第一缺省值出现在1995年。我们用A代替1995年的缺省值。在此基础上,利用第一类中的(1)方法对A.B的情形进行更新处理。
(3)A..情形:其中第二个缺省值出现在2010年。我们用A代替2010年的缺省值。在此基础上,利用第一类中的(1)方法对A.B的情形进行更新处理。
余下来的情形是A…….B的情形(缺失值连续出现高于3次),如何对其修正?
另外,有些变量在时序上出现很大的波动,如一下从几万下降到几十,然后又增加到几万,能不能将中间的那一年看作是异常值?对于一个id在时序上的记录,如何排除异常值?或需要做怎样的处理?
因此,所问的问题可以归结为:缺失值的辨认(真的零值还是假的零值)、处理,以及异常值的处理。
能否提供相关建议。
谢谢。