2014年6月20日 星期五

合併資料1999-2007資料處理說明─D01a

題目/變數:
D01a01「請問您目前結婚了嗎?」
D01a02「是在哪一年開始或發生的?」

資料處理說明:
  1. D01a01選項變動:RI1999, RI2000, RI2003, RII2000, RR2006, RCI2004, RCI2005為「未婚、同居、已婚、分居、離婚、喪偶、其他」七類。RR2007起,將原有的「已婚」進一步拆為「已婚(第一次結婚)、離婚再婚、喪偶再婚」共9類。整合後,成為「未婚、同居、已婚、已婚(第一次結婚)、離婚再婚、喪偶再婚、分居、離婚喪偶、其他」共10類。其中「已婚」選項為1999-2006使用,包含2007年(含)以後的「已婚(第一次結婚)、離婚再婚、喪偶再婚」三種情形。
  2. 2001~2005並未詢問此題,此五年資訊為利用問卷中的d01b題「請問從我們去年一月訪問您以後,您個人的婚姻狀況有沒有改變?」資訊進行回補。各年處理方式說明如下:
    (1) 2001:「沒有變化,仍然已婚」、「沒有變化,仍然單身」d01a01及d01a02以前一年資訊為準。若為「有變化,最近一年結婚、分居、離婚、喪偶」等情形,d01a01分別記錄為「已婚、分居、離婚、喪偶」,d01a02年代記錄為「民國89年」。
     (2) 2002:「沒有變化,仍然已婚」、「沒有變化,仍然單身」d01a01及d01a02以前一年資訊為準。若為「有變化,最近一年結婚、分居、離婚、喪偶」等情形,d01a01分別記錄為「已婚、分居、離婚、喪偶」,d01a02年代記錄為「民國90年」。
    (3) 2003:分為兩種情形,其中該年度新抽樣本使用RI2003進行訪問,已包含d01a01及d01a02變數資訊;唯1999及2000年樣本使用RR2003訪問,該份問卷並未詢問婚姻狀況,而是於rr2004問卷中詢問「請問從民國91年1月以後,您個人的婚姻狀況有沒有改變?」替帶回補。「沒有變化,仍然已婚」、「沒有變化,仍然單身」d01a01及d01a02以2002年資訊為準。若為「有變化,最近一年結婚、分居、離婚、喪偶」等情形,d01a01分別記錄為「已婚、分居、離婚、喪偶」,d01a02年代部分,因該題目一次詢問「近兩年」的變化情形,無法更精確區分發生年代,所以記錄為記錄為「民國92年」。
    (4) 2004:同樣分為兩種情形:2003年新抽樣本以該份問卷「請問從民國92年1月以後,您個人的婚姻狀況有沒有改變?」資訊進行回補,「沒有變化,仍然已婚」、「沒有變化,仍然單身」d01a01及d01a02以2003年資訊為準。若為「有變化,最近一年結婚、分居、離婚、喪偶」等情形,d01a01分別記錄為「已婚、分居、離婚、喪偶」,d01a02年代記錄為「民國92年」。1999及2000年樣本以「請問從民國91年1月以後,您個人的婚姻狀況有沒有改變?」替帶回補。「沒有變化,仍然已婚」、「沒有變化,仍然單身」d01a01及d01a02以2002年資訊為準。若為「有變化,最近一年結婚、分居、離婚、喪偶」等情形,d01a01分別記錄為「已婚、分居、離婚、喪偶」,d01a02年代部分,因該題目一次詢問「近兩年」的變化情形,無法更精確區分發生年代,所以仍記錄為「民國92年」。
    (5) 2005:「沒有變化,仍然已婚」、「沒有變化,仍然單身」d01a01及d01a02以前一年資訊為準。若為「有變化,最近一年結婚、分居、離婚、喪偶」等情形,d01a01分別記錄為「已婚、分居、離婚、喪偶」,d01a02年代記錄為「民國93年」。

3. 2006及2007詢問D01a01題,但並未包含D01a02題,D01a02資訊透過比對前後兩年婚姻狀態補充。若兩年婚姻狀態相同,d01a02以前一年的資訊記錄。若兩年婚姻狀態不同,代表婚姻狀態有變動,則2006的d01a02記錄為「民國94年」,2007的d01a02記錄為「民國95年」。

目前問題說明: 以上述方式處理後,d01a01在2001-2005年之間,仍有603個樣本(1,204次)呈現missing。主要的原因有二:
1. 訪問曾經中斷,導致沒有足夠的資訊可以比對。
2. 子女主樣本,未曾訪問過rci問卷。

2013年10月1日 星期二

第一階段初步完工

好一陣子沒有報告進度了。目前,系統已經進入初步完工測試階段。使用者帳號也已完成與SRDA資料庫的共用設定。目前,只要是SRDA一般會員,輸入帳號密碼後即可使用。

在下載的步驟方面,測試時發現,在下載資訊不完全的情形下,仍然可以進入產生合併資料程序,導致無法正確產生資料。因此,在產生資料之前新增了一個確認設定的步驟,除了讓使用者再次確認產生資料的設定外,也讓系統檢查是否所有需要的訊息都已具備了。

近日也修改了登入權限的設定,使用者登出後會自動導回登入畫面,讓系統的權限控管機制更為完備。

目前正在撰寫使用手冊,完成後,將釋出試用訊息,邀請更多人參與試用。

另外,也預計於11月下旬正式公開試用。

2013年6月27日 星期四

統計圖表解決方案

題目及變數說明,除了透過文字說明題目的內容,變革,訪問波次等資訊外,data的基本統計資訊對使用者來說也是相當重要的資訊。在系統設計之初,老師們變建議需要有次數分配等描述性統計值。但如何呈現一直是一個相當頭大的問題。
希望比照nesstar,利用bar chart的方式呈現,既清楚,頁面也活潑。但我對動態繪圖一點idea都沒有。
很幸運的,我發現谷哥大神提供了一個很好用的現成工具google charts ,只要讓 php按照它的格式建立語法,便可動態產生統計圖表。實驗了兩天,效果出奇的好。目前所有的單選題都可以產生bar chart了,連多期資料都可以利用分組的方式讓各期的分配呈現在一個表內。目前只剩下一些細部調整,例如圖表的高度需設計動態調整,避免部分選項或波次過多的題組bar過細無法閱讀。
目前規劃單選題一定會以此方式呈現資料分配,至於複選題、填充題則還在思考要如何呈現。也許只提供有效值跟missing的次數就好了。

2013年6月19日 星期三

下載清單進化,細節持續微調

前一陣子,一直不願意面對的問題就是使用者下載清單。理智上知道需要用jQuery來處理會比較漂亮,功能及效能上也會比較好。但無奈我對js實在不熟,一直搞不定。所以只好放著回頭去處理資料。
前兩天帶著一顆怕受傷害的心,不太情願的再回來接觸我一直搞不定的jqgrid,這次居然出奇的順利,我搞定了。目前已將使用者下載記錄改為jqgrid,按時間排序的功能也ok。
未來考慮進一步修改「購物車」將變數選擇清單也改程jqgrid。

另外,這幾天也將介面進行小調整,讓一些連結更清楚,也將一些表格加上顏色。 畫面還是慘白,有點單調,不過還沒想到要如何美化。
產生資料檔的程序如果能在同一個頁面呈現就更完美了,不過目前還沒想到完整的解決方案。

產生檔案後,會停留在等待下載檔案的畫面,其實比較理想的狀況,應該在檔案下載後,頁面轉到首頁或userinfo頁面,這部分還待解決。

資料部分,目前已發現問題包含婚姻題組,部分題目不會顯示「訪問波次/原始題號」可能在當初鍵入DB時有所遺漏,待補充。
另外,工作題組部分題目的選項有變動,但似乎未完全recode,待檢查。

說明的內容是需要全部重新檢視的,只要有動過手腳的部分,都應該要完整說明。

次數分配需思考該如何呈現,單次的題目比較沒有問題,但對於多次詢問的題目,要如何呈現便是一個問題,呈現歷年合併結果似乎沒有任何意義,單期個別呈現要如何兼顧版面也是一個問題。

前幾天進行了多人同時使用的測試,沒有仔細檢測內容,不過從表頭看起來是沒有問題的。

2013年6月6日 星期四

多對多串連測試

婚姻及配偶工作匯入之後,與受訪者工作題組便可進行多對多串連測試。結果不出我所料,因為原先的SQL語法未控制調查年,因此亂串一通。經過一個晚上的調整,目前已經修正。
最後,選擇資料的語法大致為

select 變數 from [table] left join [table] on id=id and 調查年=調查年 where (樣本群) and (選擇年度);
不管是串連,還是堆疊,大致上都採用相同的語法從資料庫中撈資料。堆疊較簡單,撈出來的資料直接寫入檔案即可。至於串連,就必需再利用陣列進行調整。

測試的過程中,發現原先的程式有缺陷,導致無法正確選擇樣本群,另外若沒有選擇具跨期資料的變數也會產生錯誤,目前也已修正。

今天略維修正堆疊的codebook及資料結構,將每個多其資料檔都會產生一次的「調查年」變數刪減為一筆只會產生一個。
串連部分的codebook,現在設計是與資料檔一致,每個變數都會產生一列說明,也就是說,跨期資料若每年都有,就會產生N次,但其實,內容除了「年」不一樣之外,其餘內容完全相同。這部分感覺有些累贅,考慮修改成一次,另以文字說明變數命名規則就好。

另外發現,若使用者不選擇受訪者編號,將使資料產生不出來。目前初步修改購物車設定,不讓使用者刪除受訪者編號,另外,題目說明頁面也配合修正。但比較嚴謹的作法,應該要再產生檔案前再做一次檢查,如果不小心被刪掉了,則強制加回。

2013年5月31日 星期五

配偶婚姻及工作題組匯入

經過這一陣子斷斷續續的努力,婚姻及配偶工作題組終於初步完工了。在這裡必須強調「初步」因為跨年檢誤的部分並沒有很仔細的做完。主要的原因在於配偶是會變動的,所以在按照正常跳答邏輯將missing資料補回後,很難利用更長期的資料再進行修正。個別翻查問卷曠日廢時,且能補回的資訊也十分有限,所以決定先暫停了。


資料的部分,發現RR2007年結婚未滿一年,但配偶工作沒有變化(或僅工作地改變)導致行職業、為誰工作,公司人數跳答missing。這部分查過問卷,當年訪問時已發現此問題,應有提醒訪員要追問這些題目,部分訪員有問,但key in時可能依照跳答邏輯走,所以資料沒有輸入,有十幾筆日後可補回。
另外配偶的出生年、哪裡人、最高教育程度、父親最高教育程度等資訊missing的比例相當高,不確定是我程式的問題,還是資料銜接上的問題導致missing。且跨年資料若沒有明確證據確認配偶為同一人,也很難補回。
其餘的部分還未詳細檢測,陸續找時間進行中。

再進行婚姻及配偶題組的資料處理過程中,也發現了先前受訪者工作題組處理的若干缺失,等系統穩定後,再回頭修正。

目前已將資料匯入NAS資料庫,進行測試修正。
題目的部分, 忘了之前的格式中,題目波次的題號應該與主問題table一致,導致部分題目無法顯示,需重新整理匯入中。
另外,測試堆疊形式輸出,發現不同年的調查資料會交叉串連,可能需於SQL語法中增加條件限制。
測試串連輸出部分,表頭可以正常顯示,題庫部分結構應該較無問題。婚姻及配偶部分,資料也都有抓到,初步目視應該是ok的。另外調查年出現9999數值,原因不明。資料筆數四千多筆,看起來也還算正常,應該沒有很嚴重的多對多串連情形。不過實際狀況仍有待進一步確認。

總體來說,結果算是還不錯的,至少多了一組題組沒有讓我既有的程式直接掛點,讓我放下了半顆心中的大石頭。繼續測試及修正嚕!

2013年4月9日 星期二

codebook修正完成、記憶體限制調高

今日完成codebook程式修正,加入了題號及備註資訊。目前大部分的題目都沒有備註資訊,僅以唯一的一題進行測試,可以正常寫入。
另外,今日測試選擇大量變數的情形,一次選擇三個題組中所有的單選題及單一填充題,系統發生記憶體不足的情形。先嘗試於script中釋放部分用不到的陣列,但效果有限。
嘗試利用ini_set動態調整記憶體設定無效。所以直接調整php.ini的全域設定,將原有記憶體設定調高一倍。目前此問題已解決。未來再視實際情形調整。
明日繼續測試其他題型的下載狀況。