題目及變數說明,除了透過文字說明題目的內容,變革,訪問波次等資訊外,data的基本統計資訊對使用者來說也是相當重要的資訊。在系統設計之初,老師們變建議需要有次數分配等描述性統計值。但如何呈現一直是一個相當頭大的問題。
希望比照nesstar,利用bar chart的方式呈現,既清楚,頁面也活潑。但我對動態繪圖一點idea都沒有。
很幸運的,我發現谷哥大神提供了一個很好用的現成工具google charts ,只要讓 php按照它的格式建立語法,便可動態產生統計圖表。實驗了兩天,效果出奇的好。目前所有的單選題都可以產生bar chart了,連多期資料都可以利用分組的方式讓各期的分配呈現在一個表內。目前只剩下一些細部調整,例如圖表的高度需設計動態調整,避免部分選項或波次過多的題組bar過細無法閱讀。
目前規劃單選題一定會以此方式呈現資料分配,至於複選題、填充題則還在思考要如何呈現。也許只提供有效值跟missing的次數就好了。
華人家庭動態資料庫從1999年迄今,在台灣每年進行追蹤調查,記錄了台灣五千多個家庭過去十多年來的變化。但隨著資料的不斷累積,龐大的數據資料及複雜的樣本、問卷結構使得研究者的進入障礙越來越高。為了方便使用者操作,因此有了建立合併資料的構想。這裡記錄了我的工作歷程及相關資料。也歡迎有興趣的人跟我一起討論。
2013年6月27日 星期四
2013年6月19日 星期三
下載清單進化,細節持續微調
前一陣子,一直不願意面對的問題就是使用者下載清單。理智上知道需要用jQuery來處理會比較漂亮,功能及效能上也會比較好。但無奈我對js實在不熟,一直搞不定。所以只好放著回頭去處理資料。
前兩天帶著一顆怕受傷害的心,不太情願的再回來接觸我一直搞不定的jqgrid,這次居然出奇的順利,我搞定了。目前已將使用者下載記錄改為jqgrid,按時間排序的功能也ok。
未來考慮進一步修改「購物車」將變數選擇清單也改程jqgrid。
另外,這幾天也將介面進行小調整,讓一些連結更清楚,也將一些表格加上顏色。 畫面還是慘白,有點單調,不過還沒想到要如何美化。
產生資料檔的程序如果能在同一個頁面呈現就更完美了,不過目前還沒想到完整的解決方案。
產生檔案後,會停留在等待下載檔案的畫面,其實比較理想的狀況,應該在檔案下載後,頁面轉到首頁或userinfo頁面,這部分還待解決。
資料部分,目前已發現問題包含婚姻題組,部分題目不會顯示「訪問波次/原始題號」可能在當初鍵入DB時有所遺漏,待補充。
另外,工作題組部分題目的選項有變動,但似乎未完全recode,待檢查。
說明的內容是需要全部重新檢視的,只要有動過手腳的部分,都應該要完整說明。
次數分配需思考該如何呈現,單次的題目比較沒有問題,但對於多次詢問的題目,要如何呈現便是一個問題,呈現歷年合併結果似乎沒有任何意義,單期個別呈現要如何兼顧版面也是一個問題。
前幾天進行了多人同時使用的測試,沒有仔細檢測內容,不過從表頭看起來是沒有問題的。
前兩天帶著一顆怕受傷害的心,不太情願的再回來接觸我一直搞不定的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次,但其實,內容除了「年」不一樣之外,其餘內容完全相同。這部分感覺有些累贅,考慮修改成一次,另以文字說明變數命名規則就好。
另外發現,若使用者不選擇受訪者編號,將使資料產生不出來。目前初步修改購物車設定,不讓使用者刪除受訪者編號,另外,題目說明頁面也配合修正。但比較嚴謹的作法,應該要再產生檔案前再做一次檢查,如果不小心被刪掉了,則強制加回。
最後,選擇資料的語法大致為
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數值,原因不明。資料筆數四千多筆,看起來也還算正常,應該沒有很嚴重的多對多串連情形。不過實際狀況仍有待進一步確認。
總體來說,結果算是還不錯的,至少多了一組題組沒有讓我既有的程式直接掛點,讓我放下了半顆心中的大石頭。繼續測試及修正嚕!
資料的部分,發現RR2007年結婚未滿一年,但配偶工作沒有變化(或僅工作地改變)導致行職業、為誰工作,公司人數跳答missing。這部分查過問卷,當年訪問時已發現此問題,應有提醒訪員要追問這些題目,部分訪員有問,但key in時可能依照跳答邏輯走,所以資料沒有輸入,有十幾筆日後可補回。
另外配偶的出生年、哪裡人、最高教育程度、父親最高教育程度等資訊missing的比例相當高,不確定是我程式的問題,還是資料銜接上的問題導致missing。且跨年資料若沒有明確證據確認配偶為同一人,也很難補回。
其餘的部分還未詳細檢測,陸續找時間進行中。
再進行婚姻及配偶題組的資料處理過程中,也發現了先前受訪者工作題組處理的若干缺失,等系統穩定後,再回頭修正。
目前已將資料匯入NAS資料庫,進行測試修正。
題目的部分, 忘了之前的格式中,題目波次的題號應該與主問題table一致,導致部分題目無法顯示,需重新整理匯入中。
另外,測試堆疊形式輸出,發現不同年的調查資料會交叉串連,可能需於SQL語法中增加條件限制。
測試串連輸出部分,表頭可以正常顯示,題庫部分結構應該較無問題。婚姻及配偶部分,資料也都有抓到,初步目視應該是ok的。另外調查年出現9999數值,原因不明。資料筆數四千多筆,看起來也還算正常,應該沒有很嚴重的多對多串連情形。不過實際狀況仍有待進一步確認。
總體來說,結果算是還不錯的,至少多了一組題組沒有讓我既有的程式直接掛點,讓我放下了半顆心中的大石頭。繼續測試及修正嚕!
2013年4月9日 星期二
codebook修正完成、記憶體限制調高
今日完成codebook程式修正,加入了題號及備註資訊。目前大部分的題目都沒有備註資訊,僅以唯一的一題進行測試,可以正常寫入。
另外,今日測試選擇大量變數的情形,一次選擇三個題組中所有的單選題及單一填充題,系統發生記憶體不足的情形。先嘗試於script中釋放部分用不到的陣列,但效果有限。
嘗試利用ini_set動態調整記憶體設定無效。所以直接調整php.ini的全域設定,將原有記憶體設定調高一倍。目前此問題已解決。未來再視實際情形調整。
明日繼續測試其他題型的下載狀況。
另外,今日測試選擇大量變數的情形,一次選擇三個題組中所有的單選題及單一填充題,系統發生記憶體不足的情形。先嘗試於script中釋放部分用不到的陣列,但效果有限。
嘗試利用ini_set動態調整記憶體設定無效。所以直接調整php.ini的全域設定,將原有記憶體設定調高一倍。目前此問題已解決。未來再視實際情形調整。
明日繼續測試其他題型的下載狀況。
2013年4月8日 星期一
20130408進度及待處理問題
目前初步開發應該可以說到了一個階段,正進行一些測試,待完成後,在連同目前已知問題一併修正。
目前已知的部分包含:
1. codebook沒有填入「題號」及「備註」資訊。這兩個資訊將以「題」為單位,與其他欄位以「變數」為單位不同,需利用rowspan合併欄位,此部分還需調整。rowspan的系統支援度也需測試。
2. 串連資料可能帶入不存在的變數:按目前的處理邏輯,串連資料時,對於跨期變數,系統會根據選取年代,分別產生各年的欄位,但若某些變數並非每年都有,則可能產生不存在的變數。這些不存在的變數,雖然數值皆為missing,但卻容易造成使用者混淆,需修改程式排除。
3. 部分 format資訊不完整:測試過程中,發現部分變數的選項 label 不完整,初步認為是當初整理資料時的缺漏,並非系統缺失。仍待修正資料後再次測試。
4. 同時產生資料測試:尚未進行同時有兩位以上使用者產生資料的功能測試。此測試的重點在於了解伺服器記憶體是否能夠負荷,以及多人同時使用時,產生資料檔是否混淆。
5. 使用者下載記錄應設計分頁,避免頁面過長。
目前已知的部分包含:
1. codebook沒有填入「題號」及「備註」資訊。這兩個資訊將以「題」為單位,與其他欄位以「變數」為單位不同,需利用rowspan合併欄位,此部分還需調整。rowspan的系統支援度也需測試。
2. 串連資料可能帶入不存在的變數:按目前的處理邏輯,串連資料時,對於跨期變數,系統會根據選取年代,分別產生各年的欄位,但若某些變數並非每年都有,則可能產生不存在的變數。這些不存在的變數,雖然數值皆為missing,但卻容易造成使用者混淆,需修改程式排除。
3. 部分 format資訊不完整:測試過程中,發現部分變數的選項 label 不完整,初步認為是當初整理資料時的缺漏,並非系統缺失。仍待修正資料後再次測試。
4. 同時產生資料測試:尚未進行同時有兩位以上使用者產生資料的功能測試。此測試的重點在於了解伺服器記憶體是否能夠負荷,以及多人同時使用時,產生資料檔是否混淆。
5. 使用者下載記錄應設計分頁,避免頁面過長。
使用者資訊管理
關於未來的使用者,預計與SRDA共用會員帳號。所以不必另外開發帳戶控管系統。不過對於使用者的行為仍然需要記錄,因此仍然有部分使用者資訊需開發。
使用者功能的帳戶資訊提供使用者清單管理功能。共分為「已下載資料」及「未下載資料」兩部分。受訪者可於瀏覽變數階段隨時點選下載清單中的「儲存選擇清單」,為此份清單命名後,儲存(需先登入);若使用者未幫清單命名,系統會自動以當天日期命名。
使用者進入設定條件選項程序,於最後一步選擇串連方式後,系統也提供輸入清單描述的欄位。產生下載檔案後,系統將自動記錄下載清單。
未下載清單列表提供使用者重新載入編輯功能,使用者亦可將不需要的清單刪除。已下載清單列表同樣提供重新載入編輯功能,但無法刪除;若產生的檔案仍保留於系統中,可再次點選下載,不需重複產生。
產生下載資料檔後,檔案將於系統中保留七天。期間內,使用者可隨時點選通知email中的連結下載,或登入系統,由帳戶資訊中下載。七日後,檔案刪除,若仍須下載此檔,則需重新產生。
使用者功能的帳戶資訊提供使用者清單管理功能。共分為「已下載資料」及「未下載資料」兩部分。受訪者可於瀏覽變數階段隨時點選下載清單中的「儲存選擇清單」,為此份清單命名後,儲存(需先登入);若使用者未幫清單命名,系統會自動以當天日期命名。
使用者進入設定條件選項程序,於最後一步選擇串連方式後,系統也提供輸入清單描述的欄位。產生下載檔案後,系統將自動記錄下載清單。
未下載清單列表提供使用者重新載入編輯功能,使用者亦可將不需要的清單刪除。已下載清單列表同樣提供重新載入編輯功能,但無法刪除;若產生的檔案仍保留於系統中,可再次點選下載,不需重複產生。
產生下載資料檔後,檔案將於系統中保留七天。期間內,使用者可隨時點選通知email中的連結下載,或登入系統,由帳戶資訊中下載。七日後,檔案刪除,若仍須下載此檔,則需重新產生。
訂閱:
文章 (Atom)


