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.