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.