孫玉環
(1.北京大學中國社會科學調查中心,北京 100871;2.東北財經大學統計學院,遼寧 大連 116025)
無回答是指抽樣調查中由于種種原因沒有能夠對被抽中的樣本單元的全部或部分進行回答,從而沒有獲得有關這些單元的全部或部分數據。按損失的信息范圍劃分,無回答可以分為單元無回答(unit non-response)和選項無回答(item non-response),前者指樣本單元沒有提供任何信息,后者指樣本單元雖然接受了調查,但是對其中某個或某些調查題目沒有回答[1],比如,被調查者對某些選項表示不知道或拒絕回答,訪員由于疏忽遺漏了某些選項,由于某種原因調查被中斷等。
選項無回答率的高低,是評價問卷調查數據質量、問卷題目難易程度以及訪問員調查工作質量的重要標準。不過由于綜合性社會調查項目往往覆蓋范圍廣、樣本量大、調查內容繁雜,而且選項無回答率的計算標準不統一,計算口徑多種多樣,在常用的SAS、SPSS、STATA等具有數據分析功能的軟件中,并沒有可以直接計算選項無回答率的過程。
本文將結合筆者從事大型社會調查項目數據質量核查和數據整理的經驗,首先給出選項無回答率的一般計算公式,然后借助于SAS系統靈活的編程功能,具體探討計算調查問卷選項無回答率的實現程序及技巧。
綜合性社會調查項目在數據采集、數據錄入和數據清理環節,一般來說,對于受訪者表示不知道或拒絕回答、訪問員因疏忽等原因出現的應填未填項以及因問題跳轉所產生的不適用等特殊情況,都會要求用一些特定的值來表示,比如,用“-1”表示不知道、“-2”表示拒絕回答、“-9”表示應填未填答、“-8”表示不適用。匯總后的調查數據庫經過上述處理后,理論上將不再存在空缺值。
在上述特殊情況中,受訪者表示不知道、拒絕回答以及因訪問員疏忽等原因出現的應填未填項,都屬于無回答的范疇。對于因問題跳轉所產生的不適用情況,雖然也表現為未回答,但這是由于受訪對象因不具備某些特征,而不再適合繼續回答某些問題。比如,當受訪對象確定為未成年人時,相應的了解婚姻狀況、工作狀況的題目將不再適用,也就沒有必要繼續詢問(問卷設計時,這種情況往往表現為題目的直接跳轉),因“不適用”而造成的數據空缺,不應計入無回答的統計范圍。
基于上述對選項無回答情況的界定,選項無回答率的計算口徑應為以去掉不適用情況后的全部樣本單元數為分母,以不知道、拒絕回答、應填未填三種無回答情況的樣本單元數合計為分子的結構相對數。記選項無回答率為p,樣本單元數為n,則選項無回答率的計算公式可定義如下:

選項無回答率的計算公式理解起來并不困難,在小規模調查項目中,依據計算公式,利用各個變量的頻數分布表,通過簡單計算即可得到。但在綜合性調查項目中,由于樣本量大、調查題目多、調查內容繁雜,往往還需要從不同角度反映和監測選項無回答率的高低,比如,既可能需要了解每一個選項在全部問卷中的平均無回答率,也可能需要了解每一份問卷在全部選項上的平均無回答率,有時出于比較和分析的目的,還可能需要計算按照訪員、地區等分組的各組選項無回答率,這時如果仍然直接依據公式來計算,就會變得十分困難。而綜合性社會調查項目中,計算選項無回答率是調查質量核查和質量控制的重要環節,實時、高效地提供準確、簡潔及具有可讀性的無回答率計算結果,是保證質量核查環節順利實施的前提。
SAS(Statistical Analysis System)是由美國北卡羅來納州州立大學1966年開發的大型集成軟件系統,由數十個專用模塊構成,具有完備的數據訪問、管理、分析和呈現及應用開發功能,尤其在數據處理和統計分析領域,SAS系統已經成為國際上的標準軟件系統。基于SAS系統編寫計算選項無回答率的程序,具有計算過程靈活、運算速度快、準確程度高、程序可重復驗證以及輸出結果可讀性強等優勢。
假設test.family為某入戶調查項目以SAS格式存儲的數據庫,數據庫中共有15個變量,其中hhno為戶編碼變量,itvid為訪員編碼變量,x_a1,x_a2,x_a3,x_a4,x_b1,x_b2,x_b3,x_b4為8個數值變量,x_a5,x_b5,y_a1,y_a2,y_a3為5個字符變量,共有有效觀測1000條。
該調查項目在訪問員填寫問卷和錄入員錄入數據時,對于拒絕回答等特殊情況已做了統一規定,即,不知道用“-1”表示、拒絕回答用“-2”表示、不適用用“-8”表示、應填未填答用“-9”表示,數據庫中不再有其他形式的空缺值。下面的SAS程序中,將直接基于這種特殊值的表示方法進行數據整理。
不同的研究目的,無回答率的計算口徑也會不同,具體可以分為問卷中選項的平均無回答率和選項在全部問卷上的平均無回答率。下面將具體探討這兩種計算口徑的無回答率的SAS實現程序。
2.2.1 問卷中選項的平均無回答率的計算
問卷中選項的平均無回答率,是指每一份問卷中有效回答選項占全部應回答選項的比重,對每一份問卷所關注選項的總體無回答情況進行實時測定和監控,是評價調查數據質量、評價訪員訪問工作質量和核發勞務報酬的依據。
(1)實現程序
程序的實現目標是計算test.family數據庫中每條觀測(每份問卷)在全部15個變量(選項)上的無回答率并存儲成EXCEL格式的數據庫。具體SAS實現程序如下:
【程序1】


(2)程序編寫技巧解析
在該SAS程序中,主要應用了以下編寫技巧:
①通過變量代換,將全部變量轉換成0/1變量。程序中首先通過變量值代換,把原始數據庫中的有效值代換為1,無回答情況代換為0(無回答情況包括不知道-1、拒絕回答-2和應填未填項-9),不適用情況(-8)代換為缺失(數值變量賦值為“.”,字符變量賦值為空),即將全部數據轉換成是非標志變量(0/1變量),該類變量的均值為n1/n,也就是取值為1的觀測數占全部觀測總數的比重。
②在對字符變量做變量值代換的過程中,利用y1(i)=y1(i)+0(即把字符型變量加上數值0),靈活地實現了把字符變量轉換成數值變量的過程。
③利用樣本統計函數中的均值函數mean,計算每一條觀測的全部非缺失0/1變量的均值,據此得到每一條觀測在全部選項上的回答率。SAS系統中均值函數的一般表達式為mean(of x1-xn)或mean(x1,x2,x3,…),用于計算列表變量中所有非缺失變量值的算術平均值[2]。在本程序中,由于不適用情況(-8)事先被賦值為缺失,并不參與函數運算,即相當于實現了選項無回答率計算公式中的分母(n全部-n不適用) 部分。對每一條觀測來說,全部非缺失0/1變量的均值為n1/n,即取值為1(選項有回答)的變量個數占全部變量總數(有回答和無回答選項數目的合計)的比重,相當于有回答率,用1減去有回答率即可得到無回答率。本程序中函數mean的靈活運用,避免了簡單地利用“判斷+計數”方式直接計算無回答率的過程,大大提高了程序的運行效率。
④利用樣本統計函數中的求和函數sum,計算每一條觀測的有效回答的選項個數。SAS系統中求和函數的一般表達式為sum(of x1-xn)或sum(x1,x2,x3,…),用于計算列表變量中所有非缺失變量值的合計[3]。在本程序中,由于已經把有效值代換為1、無回答情況代換為0、不適用情況代換為缺失,不適用(-8)情況不參與函數運算,此時求和的結果即等于有效值的個數。
⑤靈活應用數組語句(array)完成對多個變量重復相同數據處理的過程,簡化了程序。
⑥利用SAS輸出傳送系統(ODS),將以戶編碼和訪員編碼為標志變量的無回答率計算結果直接輸出為excel格式,便于后續質量核查工作的開展。
2.2.2 選項在全部問卷上的平均無回答率的計算
選項在全部問卷上的平均無回答率,是指某一選項在全部問卷中的有效回答觀測數占全部應回答觀測數的比重,用以反映受訪者回答該選項時的難易程度。無回答率過高的選項,既可能是由于題目本身不好理解或過于敏感,也可能是題目表述存在疏忽,在調查實施進程中,對于發現的無回答率總體平均水平特別高的選項,應該及時查找和分析原因,并采取補救措施,比如,更正問卷設計錯誤、改進提問技巧、提請訪問員關注等,盡可能提高每一個選項的回答率,從而提高調查數據質量。
(1)實現程序
程序的實現目標是計算test.family數據庫中 10個數值變量(選項)在全部1000條觀測(問卷)上的無回答率,并存儲成EXCEL格式的數據庫。具體SAS實現程序如下:
【程序2】


(2)程序編寫技巧解析
在該SAS程序中,主要應用了以下編寫技巧:
①讀入數據時,直接利用篩選條件“where&var^=-8”,將不適用的情況過濾掉,然后利用條件語句“if&var in(-1,-2,-9)then&var=.”,把無回答情況賦值為缺失值。
②利用計算變量基本描述統計量的均值過程(means過程),得到有效值和缺失值的個數,再依據選項無回答率的計算公式,構造變量p=nmiss/(n+nmiss),直接得到無回答率。
③因為需要逐一計算各個變量的無回答率,通過編寫和運用宏noanswer,避免了程序文本的大量重復。
④利用賦值語句var="&var",增加一個新的字符型變量,該變量的取值即為所計算出的無回答率的對應變量名,作為后續合并數據庫的標志變量。
⑤把append過程置于宏noanswer過程中,并在引用宏程序計算無回答率之前,首先建立一個空數據庫noanswer,作為執行宏程序時直接追加的基礎數據庫。這樣做的好處是,直接在宏程序中完成了變量無回答率計算結果的逐一追加,避免了待全部變量的無回答率計算完成后再合并數據庫的過程,提高了程序的利用效率和準確性。尤其是在綜合性調查項目中,出于不同的分析目的,往往可能需要不斷增加或減少某些分析變量,這時只需簡單的替換定義宏變量和引用宏程序過程中的文本即可完成,可以避免由于代換疏忽而出現漏合并或重復合并數據集的錯誤。
⑥利用SAS輸出傳送系統(ODS),將以變量名稱為標志變量的無回答率計算結果直接輸出為excel格式,便于后續質量核查工作的開展。
2.2.3 補充說明
程序2中只是給出了計算數值型變量(選項)在全部問卷上的平均無回答率的實現過程,如果需要計算字符型變量在全部問卷上的平均無回答率,可以仿照程序1中的方法,先把字符變量轉換為數值變量,然后再套用程序2即可。
除了上述兩種無回答率的計算口徑外,有時為了特定的分析和核查目的,還需要分訪員比較所完成問卷在全部變量(選項)上的平均無回答率、分區域比較各變量(選項)的平均無回答率等等,這時只要以上述兩個程序為基礎,靈活地增加分組語句(by語句)即可實現。
本文給出的兩個分別計算問卷中選項的平均無回答率和選項在全部問卷上的平均無回答率的SAS實現程序,凸顯了SAS系統在處理大規模復雜數據時的優勢,在樣本量大、調查題目多、調查內容繁雜的綜合性調查項目中具有很強的實踐應用價值。從中也可以看出,應用SAS系統不應只停留在對常用SAS過程語句的簡單運用上,還應該根據數據分析的需要,靈活地應用各種SAS函數、數據管理技巧以及宏編程技術等,提高程序的簡潔性、運算效率以及結果的可讀性和準確性。
[1]嚴潔.政治敏感問題無回答的處理:多重插補法的應用[J].華中師范大學學報(人文社會科學版),2010,49(2).
[2]朱世武.SAS編程技術教程[M].北京:清華大學出版社,2007.