上回提要,現有 API 提供急症室等候時間,甚為方便,但其實仍有不少公開數據並不在 資料一線通 平台之上。某網媒在 2017 年分析醫管局數據,當時遇上甚多問題,兩年後的今日,毫無寸進,如在服務高峰期每日更新的公立醫院內科住院病床使用率、急症室首次求診人次,依舊只以令人頭痛萬分的 PDF 格式發佈,不過慶幸現時分析 PDF 檔案已比昔日方便得多。
數據收集 (Data Collection)
數據只以新聞稿附件形式在醫管局及政府新聞網發佈,而醫管局的檔案更是圖像 PDF(令人嘔血的例子),還好程式能夠讀取政府新聞網的文字 PDF檔,不然就要出動 OCR 了。第一步當然是用程式自動讀取新聞稿列表,再善用Regular Expression 從相關的新聞稿原始碼擷取附件網址並下載 PDF 檔案留待下一步處理。雖有一定規律,不過有時或有些例外情況,例如昨天的標題為 “HA appeals for public understanding for surge in demand”,字眼跟往日新聞稿完全大纜扯唔埋 (大概是 “Key statistics on service demand of A&E Departments and occupancy rates in public hospitals” 之類),那就只好手動下載了,所以還要找方法看檔案是否齊全,不能完全相信自動下載功能。
數據清理 (Data Cleaning)
這是最費時失事的一部分,也是最令人頭痛的一部分,往往佔了數據分析專案至少六成時間,只要數據清理得宜,後續分析工作就事半功倍,不然隨時 GIGO (Garbage In, Garbage Out) 亦不自知,故此切記要驗證數據是否準確無誤,例如有醫院曾更改其所屬聯網,若然 hard-code 了特定格式,就會出現很奇怪的結果。
分析 PDF 檔案實在可免則免,因為往往難以從中抽取數據,走位是家常便飯,之後要費神加以整理 (最早期的檔案太奇怪,最後要出動 Acrobat 匯出至 Excel)。幸好政府新聞網提供文字版本 PDF,故此還可用 Python 的 tabula-py 讀取 pdf 表格數據,雖然結果仍未算完美,但已減省不少功夫,然後再經過七七四十九下還原靚靚拳,就變成接近可供分析的資料。
正題
今回繼續用 R 做 Data Visualization,如果有甚麼建議,不妨留言交流一下~
- 急症室每日首次求診人次
有甚麼 Observation 嗎? 話說 3月18日剛創了今年新高,首次求診人次達 7,038,這數年最紅那點是在 2016年2月9日 (7,613人次),那日正是三年前的大年初二,想起甚麼了嗎?看了今天新聞嗎?
註:時間軸並非連續(因夏天大多沒有數據),以黑色實線區隔不同日期範圍
2. 內科住院病床於午夜時的佔用率
再看其他農曆新年,顏色都是偏綠,然後問了醫生友人,他說道不少病人都想出院回家過年,或者拒絕入院,或許幫助解釋這個現象。
註:時間軸並非連續(因夏天大多沒有數據),以黑色實線區隔不同日期範圍
然後要仔細看每間醫院歷年的內科住院佔用率變化,不過曾有議員說道,佔用率其實有點誤導,究竟如何決定基數 (例如加床怎計算)?
3. 經急症室轉入內科比率
若將每天經急症室轉入內科數字除以急症室每天首次求診數字 (純粹在此文留言看到這個東西),各醫院比率介乎 0.1 至 0.3 左右,背後又代表甚麼呢?
後續分析
其實還可以進行更多不同的分析,如研究求診人數與不同因素(如天氣)的關係,或是與等候時間的關係等等……繼續拋磚引玉~XD
資料來源: 政府為原始文字資料的版權擁有人,來源為「香港政府一站通」(www.gov.hk)
最後更新:2019.04.19