SPSS宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.3 重复个案的识别

在数据输入和数据处理工作中,经常会发生个案重复的情况。个案重复的情况有很多,例如,数据输入时可能会对同一个案输入两次以上;在同一个单位中会有两个同名职工,等等。

在SPSS 14.0 for Windows以后的版本中,新增了ldentify Duplicate Cases模块。该模块允许以任何方式定义、识别和剔除重复个案。

基本操作步骤为:

step 1 打开主对话框。

在数据编辑窗口,选择菜单“Data”→“ldentify Duplicate Cases”命令,打开“ldentify Duplicate Cases”(识别重复个案)对话框,如图4.7所示。

图4.7 “ldentify Duplicate Cases”(识别重复个案)对话框

step 2 定义重复个案。

在“ldentify Duplicate Cases”对话框中,左边列表框中显示的是数据文件的变量列表。在变量列表框中选择变量名,单击右向箭头按钮,将其移至“Define matching cases by”(定义匹配个案)窗口。

如果几个个案的变量值和“Define matching cases by”窗口中选择的变量相同,则这些个案视为重复个案。例如,在图4.7中,“Define matching cases by”窗口中选择的变量为“姓名”,即数据文件中只要姓名相同的个案均视为重复个案。若要搜寻100%匹配的个案,只需将所有变量都移动到“Define matching cases by”窗口即可。

step 3 Sort within matching groups by(匹配个案的排序)。

在“Sort within matching groups by”(匹配个案排序)窗口中,要求从变量列表框中选择变量移到该窗口。用户可以通过指定变量作为匹配个案的排列顺序的依据。在该窗口选择个案时,“Sort”窗口被激活,要求在该窗口选择排序方式:

◆ Ascending升序排列。

◆ Descending降序排列。

step 4 “Variables to Create”(创建新变量)窗口及选择项。

在“Variables to Create”窗口中设置首选个案的选项,“lndicator of primary cases”(指定首选个案)选择框中要求指定首选个案,选择该项后,下列选项将被激活:

◆ Last case in each group is primary每组中最后的个案为首选个案。单选框,选择该项,表示每组中的最后一个个案为首选个案。

◆ First case in each group is primary每组中第一个个案为首选个案。单选框,选择该项,表示每组中的第一个个案为首选个案。

◆ FiIter by indicator vaIues标记和过滤重复个案。此为多选项,选择该项,表示在数据编辑窗口中,会对所有的重复数据在个案的序号处作出标记。

用户应慎选“Filter by indicator values”选项,因为数据在录入过程中可能因录入产生错误,从而错判为重复数据。

“Variables to Create”窗口中另一选项为“Sequential count of matching case in each group”(各组匹配个案连续计数)。选择该项,表示对每一组的匹配个案进行连续计数。

step 5 执行识别操作。

单击对话框中“OK”按钮,执行个案重复识别过程。

在搜索重复个案后,原数据文件个案顺序会重新排列,重复个案排在最前面,并增加一默认变量名为PrimaryLast(PrimaryFirst)的数值型变量,变量值只取1(表示首选个案或者重复个案,其变量值标签为Primary Case)和0(表示匹配个案,其变量值标签为Duplicate Case)。

图4.8是重复个案识别后的数据编辑窗口,给出了前3个个案的显示结果。从图中可以看出,姓名为“周菲”的个案出现3次,前两个个案完全相同,疑是重复输入,第三个个案除姓名外,其他变量取值皆不相同,疑是错误输入。

图4.8 重复个案识别后的数据编辑窗口

表4.2为匹配个案的频数分析表。

表4.2 匹配个案的频数分析表

step 6 “Paste”得到的Syntax语句程序如下:

          /* 识别重复个案.
          SORT CASES BY 姓名(A) .
          MATCH FILES /FILE = * /BY 姓名
           /FIRST = PrimaryFirst /LAST = PrimaryLast.
          DO IF (PrimaryFirst).
          COMPUTE MatchSequence = 1 - PrimaryLast.
          ELSE.
          COMPUTE MatchSequence = MatchSequence + 1.
          END IF.
          LEAVE MatchSequence.
          FORMAT MatchSequence (f7).
          COMPUTE InDupGrp = MatchSequence > 0.
          SORT CASES InDupGrp(D).
          MATCH FILES /FILE = * /DROP = PrimaryFirst InDupGrp MatchSequence.
          VARIABLE LABELS PrimaryLast 'Indicator of each last matching case as
          Primary' .
          VALUE LABELS PrimaryLast 0 'Duplicate Case' 1 'Primary Case'.
          VARIABLE LEVEL PrimaryLast (ORDINAL).
          FREQUENCIES VARIABLES = PrimaryLast .
          EXECUTE.